핵심 요약
Crossplane 2.0 1년 production. Terraform과 동시 운영, AWS·GCP·Cloudflare 리소스 ~420개 관리. 드리프트 자동 감지·복구, GitOps native, Argo CD 통합이 결정적. 단 Composition 학습 곡선 가파름.
1. 핵심 차이 — 선언 vs 명령
| 항목 | Terraform | Crossplane |
|---|---|---|
| 실행 모델 | CLI 명령(plan/apply) | K8s controller 지속 reconcile |
| State 저장 | S3/Cloud | K8s etcd |
| 드리프트 감지 | plan 시점 | 자동, 즉시 |
| 멀티 환경 | workspace | namespace |
2. Composition 패턴 — 추상화
Crossplane의 Composition으로 "회사 표준 EKS 클러스터" 같은 추상 객체 정의. 개발자는 한 줄로 사용 — 보안·tagging·monitoring 자동.
# 개발자가 작성
apiVersion: company.example.com/v1
kind: WebApp
metadata:
name: my-app
spec:
environment: prod
region: ap-northeast-2
# Composition이 내부적으로 EKS + RDS + ALB + IAM 생성
3. 운영 데이터
| 지표 | Terraform | Crossplane |
|---|---|---|
| 배포 빈도 | 주 3회 | 주 22회 |
| 드리프트 발견 시간 | 다음 plan(수일) | 5분 이내 |
| 개발자 학습 시간 | 2주 | 4주(Composition) |
4. 채택 기준
- K8s 깊이 사용 + GitOps 정착 — Crossplane
- Multi-cloud + ad-hoc 변경 잦음 — Terraform
- Self-service 추상화 필요 — Crossplane Composition 압승
- state 외부 의존 무서움 — Crossplane(K8s native)
5. 함정
- Provider 성숙도 — AWS provider 안정적이나 GCP·Azure는 가끔 누락 기능
- Composition versioning — 변경 시 기존 인스턴스 영향, semver 정책 필수
- K8s overhead — etcd 부담, 대규모 리소스(~10K) 시 namespace 분리
- Cost preview 부재 — Terraform plan 같은 사전 비용 추정 부족, Infracost 통합 권장

댓글 0