AZ-104 시험 합격 전략 | Azure Repos 이론 마스터

작성자: azure | 작성일: 2026년 07월 01일 | 조회: 0 | 좋아요: 0

⚙️
ASSOCIATE LEVEL

Microsoft Azure Administrator Associate (AZ-104)

DevOps 및 CI/CD 핵심 이론 강의

🎓 TODAY'S LECTURE

코드형 인프라 (IaC) 배포를 위한 Azure Pipelines 활용

ARM 템플릿 및 Bicep을 활용한 Azure 리소스 자동화 배포 전략

코드형 인프라 (IaC)는 수동 구성으로 인한 오류 가능성을 줄이고, 배포 일관성을 보장하며, 환경 간의 드리프트를 방지하는 DevOps의 핵심 원칙입니다. Azure Pipelines와 IaC를 결합하면 Azure 리소스 프로비저닝 및 업데이트 프로세스를 완벽하게 자동화하여, 빠르고 반복 가능하며 신뢰할 수 있는 인프라 배포를 실현할 수 있습니다. 이는 개발 및 운영 팀의 효율성을 극대화하고, 서비스 출시 시간을 단축하는 데 필수적인 전략입니다.

💡 KEY CONCEPTS

1 코드형 인프라 (Infrastructure as Code, IaC)

IaC는 코드를 사용하여 인프라를 프로비저닝하고 관리하는 방식을 의미합니다. 이를 통해 수동 구성의 위험을 제거하고, 버전 제어를 통해 인프라 변경 이력을 추적하며, 환경 간 일관성을 유지할 수 있습니다. Azure에서는 주로 Azure Resource Manager (ARM) 템플릿 또는 Bicep을 사용하여 IaC를 구현하며, 개발자가 애플리케이션 코드를 관리하듯이 인프라를 정의하고 배포할 수 있도록 지원합니다.

2 Azure Resource Manager (ARM) 템플릿 및 Bicep

ARM 템플릿은 Azure에서 인프라 및 구성을 정의하기 위한 JSON 기반의 선언적 템플릿 언어입니다. 모든 Azure 리소스를 템플릿으로 정의하여 단일 배포 작업으로 관리할 수 있게 합니다. Bicep은 ARM 템플릿을 위한 추상화 계층으로, 더 간결하고 가독성 높은 구문을 제공하며, ARM 템플릿으로 컴파일됩니다. 이들은 Azure Pipelines에서 Azure 리소스 배포 작업을 자동화하는 데 핵심적인 도구입니다.

3 Azure Pipelines를 통한 IaC 배포 파이프라인

Azure Pipelines는 CI/CD (지속적 통합/지속적 배포) 기능을 제공하여 IaC 템플릿을 빌드, 테스트 및 배포하는 프로세스를 자동화합니다. Git 저장소(예: Azure Repos 또는 GitHub)에 저장된 ARM 템플릿이나 Bicep 파일을 감지하여, 코드가 커밋될 때마다 자동으로 인프라를 프로비저닝하거나 업데이트할 수 있습니다. 이를 통해 개발 및 운영 팀은 빠르고 안정적인 인프라 변경 관리를 수행할 수 있으며, 배포의 일관성과 반복성을 보장합니다.

🛠️ REAL-WORLD SCENARIO

클라우드 기반 전자상거래 서비스 인프라 자동 배포 시나리오: 한 전자상거래 기업이 개발 환경, 테스트 환경, 그리고 프로덕션 환경의 인프라를 일관되고 신속하게 프로비저닝하고 관리하고자 합니다. 수동 배포로 인한 인적 오류와 환경 불일치 문제를 해결하기 위해 IaC와 Azure Pipelines를 도입하기로 결정했습니다.

아키텍처 구성 및 활용:
1. **소스 제어 (Source Control)**: Azure Repos (Git) 또는 GitHub에 모든 ARM 템플릿(혹은 Bicep 파일)을 환경별로 구분된 폴더 구조로 관리하며, `dev`, `test`, `prod` 브랜치에 각각 최신 인프라 정의를 저장합니다.
2. **CI/CD 파이프라인 (Azure Pipelines)**:
* **YAML 파이프라인 정의**: `azure-pipelines.yml` 파일은 IaC 템플릿의 빌드, 유효성 검사, 배포 단계를 정의합니다.
* **환경 변수 관리**: 각 환경(개발, 테스트, 프로덕션)에 따라 다른 매개변수(예: 리소스 그룹 이름, SKU, 지역)를 `Variable Groups` 또는 파이프라인 변수로 관리합니다.
* **Build Stage**: Bicep 파일을 사용하는 경우, 이 단계에서 `az bicep build` 명령을 사용하여 Bicep 파일을 ARM 템플릿 JSON으로 컴파일하고, ARM 템플릿의 구문 유효성을 검사한 후(`az deployment group validate`), 템플릿 파일과 매개변수 파일을 파이프라인 아티팩트로 게시합니다.
* **Release/Deployment Stages**: `dev` 브랜치에 변경 사항이 푸시되면 개발 환경에 자동으로 배포하고, 개발 환경 배포 성공 후 수동 승인 (Approval Gate)을 거쳐 테스트 환경으로 배포합니다. 프로덕션 환경 배포 전에는 `What-If` 작업을 수행하여 실제 변경 사항을 미리 확인하고, 관리자 그룹의 승인이 완료된 후에 배포를 진행합니다. `Azure Resource Group Deployment` 태스크를 사용하여 게시된 ARM 템플릿을 각 환경의 매개변수와 함께 배포합니다.
3. **인프라 변경 관리**: 새로운 Azure 리소스가 필요하면 개발자가 해당 리소스에 대한 ARM 템플릿(또는 Bicep 파일)을 작성하고 Git에 커밋합니다. CI/CD 파이프라인이 자동으로 변경 사항을 감지하여 개발, 테스트, 프로덕션 환경에 순차적으로 새로운 인프라를 배포하며, 모든 인프라 변경은 Git 커밋으로 기록되어 추적 가능하며 문제가 발생할 경우 롤백이 가능합니다.

모범 사례 (Best Practice):
* **모듈화된 템플릿 사용**: 재사용 가능한 ARM 템플릿 모듈 또는 Bicep 모듈을 만들어 복잡성을 줄이고 관리 효율성을 높입니다.
* **템플릿 매개변수화**: 환경별로 달라지는 값은 매개변수로 분리하여 템플릿의 재사용성을 극대화합니다.
* **환경 분리**: 개발, 테스트, 프로덕션 환경을 물리적으로 분리된 리소스 그룹 또는 구독에 배포하여 격리합니다.
* **Gate 및 승인 프로세스**: 중요한 환경(특히 프로덕션)으로의 배포에는 반드시 수동 승인 (Manual Approval) 및 자동화된 Gate (예: Azure Monitor 알림)를 설정하여 무단 또는 위험한 변경을 방지합니다.
* **What-If 작업 사용**: 프로덕션 환경 배포 전에 `What-If` 기능을 사용하여 배포가 기존 리소스에 미칠 영향을 사전에 검토합니다.
* **Service Principal 및 RBAC**: Azure Pipelines가 Azure 리소스에 접근할 때는 최소 권한 원칙(Least Privilege)에 따라 Service Principal을 생성하고 필요한 RBAC (Role-Based Access Control) 역할을 부여합니다.
* **시크릿 관리**: 민감한 정보는 Azure Key Vault에 저장하고, 파이프라인에서는 Key Vault에서 동적으로 가져와 사용합니다.

🎯 EXAM TIPS
📌

ARM 템플릿과 Bicep의 비교: ARM 템플릿(JSON)과 Bicep의 장단점 및 사용 시나리오를 이해해야 합니다. Bicep이 더 간결하고 읽기 쉬우며, ARM 템플릿으로 트랜스컴파일된다는 점이 중요합니다.

📌

Azure Pipelines의 IaC 배포 태스크: `Azure Resource Group Deployment` 태스크의 기능과 매개변수(특히 `deploymentMode`: `Incremental` vs `Complete`)를 정확히 알고 있어야 합니다. `What-If` 기능의 활용법도 중요합니다.

📌

배포 파이프라인의 보안 및 승인: Service Principal을 사용한 권한 관리, Azure Key Vault를 통한 시크릿 관리, 그리고 `Approval Gates`를 이용한 배포 통제 방법이 AZ-104 시험에서 자주 다루는 보안 및 거버넌스 관련 질문과 연관됩니다.

🏷️ 관련 Azure 서비스

Azure ReposAzure PipelinesAzure Resource Manager (ARM)Azure Key VaultAzure Active Directory (Azure AD)

📚 Azure 자격증 합격을 위한 데일리 이론 강의

매일 새로운 강의 노트가 업데이트됩니다 | 더 많은 자료 보기 →