GitOps 자동화

지원 버전: Atlantis v0.28+, FluxCD v2.3+, Terraform Cloud 마지막 업데이트: 2026년 2월 21일

< 이전: ArgoCD 멀티클러스터 | 목차 | 다음: 스케일링 전략 >


개요

GitOps 자동화는 인프라와 애플리케이션 배포를 Git 기반 워크플로우로 통합하여 일관성, 감사 가능성, 협업 효율성을 극대화합니다. 이 문서에서는 Terraform 인프라 자동화를 위한 Atlantis와 Terraform Cloud, Kubernetes 배포를 위한 FluxCD, 그리고 AI/ML을 활용한 AIOps 전략을 다룹니다.

학습 목표

  • Atlantis를 EKS에 배포하고 PR 기반 Terraform 워크플로우 구성

  • Terraform Cloud의 워크스페이스 기반 인프라 관리 이해

  • FluxCD의 GitOps 패턴과 이미지 자동화 구현

  • AIOps를 통한 운영 자동화 전략 수립


1. Atlantis on EKS

Atlantis는 Terraform Pull Request Automation 도구로, PR을 통해 인프라 변경사항을 계획(plan)하고 적용(apply)하는 워크플로우를 자동화합니다.

1.1 Atlantis 아키텍처

┌─────────────────────────────────────────────────────────────────────┐
│                         GitHub/GitLab                                │
│  ┌─────────────┐    Webhook     ┌─────────────────────────────────┐ │
│  │  PR Created │ ──────────────▶│          Atlantis               │ │
│  │  PR Updated │                │  ┌─────────────────────────────┐│ │
│  │  PR Comment │                │  │   terraform plan/apply      ││ │
│  └─────────────┘                │  │   ┌───────────────────────┐ ││ │
│        ▲                        │  │   │  AWS Provider         │ ││ │
│        │ Plan/Apply             │  │   │  (Pod Identity)       │ ││ │
│        │ Output                 │  │   └───────────────────────┘ ││ │
│        │                        │  └─────────────────────────────┘│ │
│        └────────────────────────┤                                 │ │
│                                 │  Locks (DynamoDB/BoltDB)        │ │
│                                 └─────────────────────────────────┘ │
│                                            │                        │
│                                            ▼                        │
│                                 ┌─────────────────────────────────┐ │
│                                 │         AWS Resources           │ │
│                                 │   VPC, EKS, RDS, S3, etc.       │ │
│                                 └─────────────────────────────────┘ │
└─────────────────────────────────────────────────────────────────────┘

핵심 구성 요소:

구성 요소
역할

Webhook Receiver

GitHub/GitLab PR 이벤트 수신

Plan/Apply Engine

Terraform 명령 실행

Locking System

동시 PR 충돌 방지

State Management

Remote State 연동 (S3, Terraform Cloud)

1.2 Atlantis Helm 배포

values.yaml:

Helm 설치:

1.3 Webhook 구성

GitHub Webhook 설정:

  1. Repository Settings → Webhooks → Add webhook

  2. Payload URL: https://atlantis.example.com/events

  3. Content type: application/json

  4. Secret: Webhook Secret 값 입력

  5. Events 선택:

    • Pull request reviews

    • Pushes

    • Issue comments

    • Pull requests

GitLab Webhook 설정:

1.4 atlantis.yaml 프로젝트 구성

저장소 루트에 atlantis.yaml 파일을 생성하여 디렉토리별 워크플로우를 정의합니다.

1.5 Pod Identity for AWS 액세스

Atlantis가 Terraform apply를 실행하려면 AWS 리소스에 대한 권한이 필요합니다.

IAM Role Trust Policy:

IAM Policy (최소 권한 예시):

Pod Identity Association:

1.6 Multi-Repo 설정

여러 저장소에서 Atlantis를 사용할 때 server-side repo config로 일관된 정책을 적용합니다.

1.7 PR 기반 워크플로우

일반적인 워크플로우:

Atlantis 코멘트 명령어:

1.8 보안: Apply 제한

특정 사용자/팀만 apply를 실행하도록 제한합니다.

1.9 Locking 메커니즘

Atlantis는 동시에 같은 프로젝트를 수정하는 PR 충돌을 방지하기 위해 locking을 사용합니다.

Lock 상태 확인:


2. Terraform Cloud

Terraform Cloud는 HashiCorp가 제공하는 관리형 Terraform 실행 환경으로, Atlantis의 대안으로 사용할 수 있습니다.

2.1 Workspace 구성

계층별 Workspace 설계:

Workspace 설정 (Terraform으로 관리):

2.2 VCS 기반 워크플로우

GitHub Integration 설정:

워크플로우:

2.3 Run Triggers: 종속성 관리

Workspace 간 종속성을 설정하여 상위 인프라 변경 시 하위 workspace가 자동으로 트리거됩니다.

트리거 흐름:

2.4 Sentinel Policy

Sentinel은 Terraform Cloud의 Policy as Code 프레임워크입니다.

정책 예시들:

Policy Set 구성:

2.5 Remote State 공유

Workspace 간 state 참조를 통해 output 값을 공유합니다.

2.6 Atlantis vs Terraform Cloud 비교

기능
Atlantis
Terraform Cloud

호스팅

Self-hosted (EKS)

HashiCorp 관리형

비용

인프라 비용만

사용량 기반 과금

VCS 통합

GitHub, GitLab, Bitbucket

GitHub, GitLab, Bitbucket, Azure DevOps

State 관리

외부 (S3, etc.)

내장

Policy as Code

커스텀 스크립트

Sentinel (내장)

Cost Estimation

외부 도구 필요

내장

Run Triggers

atlantis.yaml depends_on

네이티브 지원

Private Registry

미지원

지원

팀 관리

Git 권한 의존

RBAC 내장

감사 로그

커스텀 구현

내장

복잡도

높음 (직접 운영)

낮음 (관리형)

유연성

높음 (완전 커스텀)

중간 (정해진 워크플로우)

선택 가이드:

  • Atlantis 추천: 완전한 통제가 필요하거나, 비용 최적화가 중요하거나, 특수한 워크플로우가 필요한 경우

  • Terraform Cloud 추천: 관리 오버헤드를 줄이고 싶거나, Sentinel 정책이 필요하거나, 팀이 빠르게 시작해야 하는 경우


3. FluxCD

FluxCD는 Kubernetes 네이티브 GitOps 도구로, Git 저장소를 진실의 원천(Source of Truth)으로 사용하여 클러스터 상태를 동기화합니다.

3.1 ArgoCD vs FluxCD 비교

기능
ArgoCD
FluxCD

아키텍처

단일 컨트롤러 + UI

다중 컨트롤러 (GitOps Toolkit)

UI

풍부한 웹 UI

CLI 중심, Weave GitOps UI (별도)

CRD

Application, AppProject

GitRepository, Kustomization, HelmRelease

Helm 지원

네이티브

HelmRelease CRD

이미지 자동화

argocd-image-updater (별도)

Image Automation Controller (내장)

Multi-tenancy

AppProject 기반

Namespace 기반

알림

Notification Controller

Notification Controller

설치 복잡도

Helm 단일 설치

Bootstrap 명령어

리소스 사용량

중간

낮음

학습 곡선

낮음 (UI 기반)

중간 (CLI 기반)

커뮤니티

CNCF Graduated

CNCF Graduated

주요 사용 사례

애플리케이션 배포 중심

인프라 + 애플리케이션 통합 관리

선택 가이드:

  • ArgoCD: UI가 중요하거나, 개발팀이 직접 배포를 관리하거나, 빠른 시작이 필요한 경우

  • FluxCD: 이미지 자동화가 핵심이거나, 여러 소스 타입을 통합 관리하거나, 리소스 효율성이 중요한 경우

3.2 FluxCD 설치

Bootstrap (GitHub 연동):

Bootstrap 결과 구조:

3.3 HelmRelease CRD

FluxCD로 ArgoCD 자체를 배포하는 예시입니다.

3.4 Kustomization for 환경 오버레이

디렉토리 구조:

Flux Kustomization CRD:

3.5 Image Automation Controller

새로운 컨테이너 이미지가 푸시되면 자동으로 매니페스트를 업데이트하고 Git에 커밋합니다.

이미지 정책 설정:

이미지 업데이트 자동화:

매니페스트에 마커 추가:

자동화 흐름:

3.6 Source Controller

다양한 소스 타입을 지원합니다.

3.7 Notification Controller


4. AIOps 전략

AIOps(Artificial Intelligence for IT Operations)는 AI/ML을 활용하여 운영 작업을 자동화하고 최적화합니다.

4.1 LLM 기반 PR 리뷰

GitHub Copilot for PRs:

Claude Code Review 통합:

4.2 메트릭 기반 YAML 자동 수정

실제 사용량 메트릭을 기반으로 HPA 설정을 자동으로 조정합니다.

CronJob으로 실행:

4.3 트래픽 이상 탐지 및 자동 대응

4.4 Progressive Delivery with Argo Rollouts

4.5 AIOps 한계 및 휴먼 인 더 루프

AIOps의 한계:

영역
한계
대응 방안

컨텍스트 이해

비즈니스 컨텍스트 부족

Human 승인 게이트 추가

엣지 케이스

학습되지 않은 상황 대응 불가

Fallback 정책 정의

책임 소재

자동화 결정의 책임 불명확

감사 로그 및 승인 기록

오탐/미탐

False Positive/Negative

임계값 튜닝 및 모니터링

비용

LLM API 비용

Rate limiting, 캐싱

Human-in-the-Loop 패턴:

Guardrails 구현:


요약

GitOps 자동화 도구 선택 가이드

요구사항
추천 도구

Terraform PR 자동화 (Self-hosted)

Atlantis

Terraform 관리형 서비스

Terraform Cloud

K8s 배포 + UI 중심

ArgoCD

K8s 배포 + 이미지 자동화

FluxCD

멀티 소스 통합 관리

FluxCD

AIOps 시작

Argo Rollouts + Analysis

핵심 포인트

  1. Atlantis: PR 기반 Terraform 워크플로우로 인프라 변경 협업 강화

  2. Terraform Cloud: 관리형 서비스로 운영 부담 감소, Sentinel 정책 활용

  3. FluxCD: 이미지 자동화로 완전한 GitOps 파이프라인 구축

  4. AIOps: AI 지원 자동화는 항상 Human-in-the-Loop와 Guardrails 필수


참고 자료


< 이전: ArgoCD 멀티클러스터 | 목차 | 다음: 스케일링 전략 >

마지막 업데이트