본문으로 건너뛰기
BigTree108

Azure 클라우드 및 DevOps

코드로 관리하는 인프라, 하루에도 여러 번 배포하는 파이프라인, 기본 거부 방식의 보안 기준, 예측 가능하게 유지되는 비용입니다. 당사가 클라우드 환경을 구축하는 방식이자 당사 자체를 운영하는 방식입니다.

DevOps 업무 자체

  • 파이프라인. GitHub Actions에서 빌드, 테스트, 보안 스캔, 배포를 수행하며, 저장된 시크릿 대신 페더레이션 자격 증명을 사용하고 모든 액션을 해시로 고정합니다.
  • 코드형 인프라. 모든 것을 Terraform으로 관리하며, 적용 전에 plan을 검토하고, 정기적인 드리프트 감지로 누군가 수동으로 변경한 내용을 보고합니다.
  • 데이터베이스 배포. 스키마 변경을 파이프라인에서 실행되는 버전 관리 마이그레이션으로 처리하므로 스키마 없이 코드만 배포되는 일이 발생할 수 없습니다.
  • 모니터링과 알림. 로그, 메트릭, 트레이스를 하나의 워크스페이스에 모으고, 개발자가 조치할 수 있는 경우에만 알림이 사람에게 전달됩니다.
  • 비용 관리. 적정 규모의 요금제, 부하가 급격히 변하는 곳에는 사용량 기반 요금, 누군가 실제로 읽는 월간 청구서입니다.

구축에 사용하는 기술

모든 리소스를 Terraform으로 정의하고 페더레이션 자격 증명으로 GitHub Actions에서 배포합니다. 당사 환경에서도, 귀사 환경에서도 포털에서 클릭으로 만들어 낸 것은 없습니다.

  • 컴퓨팅

    API와 40개의 예약 작업에는 .NET 10 isolated worker의 Azure Functions를 사용하고, 데이터베이스 배포와 EF Core 마이그레이션은 Container Apps Jobs로 실행합니다.

  • 데이터

    행 수준 보안과 Key Vault의 고객 관리형 키로 보호하는 Always Encrypted 열을 갖춘 Azure SQL을 사용하며, 문서와 서명된 PDF는 Blob Storage에 보관합니다.

  • 프런트엔드

    포털과 이 사이트, 두 개의 Static Web Apps를 엄격한 Content Security Policy로 제공하며, 크롤러에 HTML이 필요한 곳은 프리렌더링합니다.

  • ID 관리

    사람과 그룹에는 Entra ID, 모든 워크로드에는 사용자 할당 관리 ID, GitHub Actions에는 OIDC를 사용합니다. 파이프라인에 장기 자격 증명이 없습니다.

  • 관측성

    Application Insights와 Log Analytics, 그리고 Teams 메시지로 팀에 전달되는 알림 규칙을 사용합니다. 개발자가 조치할 수 있는 신호만 알림이 됩니다.

  • 거버넌스

    리소스 그룹 정책, 관리 잠금, 삭제 방지, 진단 설정을 모두 Terraform으로 정의하고 각 규칙 옆에 그 이유를 기록합니다.

비용 관리 원칙

당사의 엔지니어링 원칙은 우선순위를 고정된 순서로 정합니다. 비용이 먼저이고, 다음이 보안, 최신성, 성능입니다. 아키텍처를 설계하기 전에 비용 상한을 정하고, 모든 설계 결정을 그에 비추어 검토합니다. 실무에서는 부하가 급변하는 곳에 상시 가동 서버 대신 사용량 기반 요금을, 벤더가 권하는 등급이 아니라 적정 규모의 데이터베이스 등급을, 유료 온콜 제품 대신 구독에 이미 포함된 서비스로 구성한 알림을 사용한다는 뜻입니다.

보안 기준

  • 방화벽은 기본적으로 차단하며, SQL은 Functions 서브넷에서만 접근할 수 있습니다.
  • 시크릿은 Key Vault에만 존재하며 관리 ID를 통해 읽습니다.
  • 개인 정보와 금융 정보 열은 Always Encrypted로 보호되므로 데이터베이스 관리자도 읽을 수 없습니다.
  • 액션과 컨테이너 이미지는 해시로 고정하고, 의존성 업데이트는 검토를 거친 풀 리퀘스트로 반영하며, 보안 권고는 무조건 업그레이드 대상입니다.
  • CodeQL은 푸시마다 실행하고, Terraform plan은 적용 전에 검증하며, 드리프트는 정해진 주기로 감지합니다.

당사의 클라우드 실적

20개가 넘는 CI/CD 파이프라인을 구축하고, 2주 단위 릴리스를 매일 배포로 전환하고, 릴리스 시간을 4시간에서 25분으로 줄였으며, 한 플랫폼의 Azure 지출을 30% 절감했습니다. 수치는 당사 납품 이력에 따른 것입니다.

즉흥이 아닌 의도적인 채용

DevOps는 당사가 의도적으로 채용하는 직무입니다. 채용 공고 이력에 DevOps 엔지니어와 DevOps 전담 기술 면접관이 포함되어 있어, 후보자는 체크리스트를 읽는 비전문가가 아니라 실제로 그 일을 하는 사람이 평가합니다.

Azure 환경을 코드로 관리하고 비용을 줄이고 싶으십니까?

구독에 대한 읽기 권한 또는 어떤 것이 어디에서 실행되는지에 대한 설명을 보내 주십시오. 영업일 기준 1일 이내에 서면 평가와 계획을 받으실 수 있습니다.