Azure 인프라 GitOps, Terraform + Atlantis로 쉽게!
by DD
8개월 전
조회수 4
Terraform과 Atlantis를 활용하여 Azure 인프라를 GitOps 방식으로 관리한다.
Pull Request 기반 워크플로우를 통해 인프라 변경을 코드 리뷰에 통합한다.
Docker 기반 Atlantis 서버 구축 및 GitHub Webhook 연동으로 자동화한다.
Atlantis 아키텍처 및 GitOps 워크플로우
Atlantis는 Terraform을 위한 Pull Request 자동화 도구이다. 구체적으로 GitHub Webhook을 통해 PR 이벤트를 감지하고, terraform plan 및 apply를 자동 실행한다. 따라서 코드 리뷰와 인프라 변경을 통합하여 GitOps를 구현한다.
Directory vs Workspace 기반 환경 분리
Atlantis는 Directory 기반과 Workspace 기반 환경 분리 전략을 제공한다. Directory 기반은 완전 격리를 보장하지만, 코드 중복이 발생할 수 있다. 반면, Workspace 기반은 코드 중복을 줄이지만, 상태 격리에 주의해야 한다.
Terraform State 관리 및 브랜치 보호
Azure Storage Account를 사용하여 Terraform State를 안전하게 관리한다. 구체적으로 Storage Account는 Blob Lease 기반 State Lock을 자동 지원한다. 따라서 동시 apply 실행을 방지하고, GitHub 브랜치 보호 규칙을 통해 안전한 GitOps 환경을 구축한다.