테라폼(Terraform) IaC: State 잠금과 S3 백엔드 모듈화

💡 핵심 요약 (Executive Summary)

본 가이드는 terraform 핵심 가이드 및 실전 아키텍처의 핵심 개념, 실전 구성 명령어 및 아키텍처 베스트 프랙티스를 다룹니다. 클라우드 네이티브 및 인프라 엔지니어링 실무에 즉시 활용 가능하도록 체계적으로 정리했습니다.

📑 Table of Contents
Pages
Concept
  • Provider with RBAC
  • Module화 구성
  • main.tf
  • variables.tf
  • outputs.tf
  • state 기반 비교 및 업데이트


멀티 프로바이더 관리시 추천하는 Directory 규칙 예시

bash
project-root/
│
├── main.tf               # 주요 Terraform 설정 파일
├── variables.tf          # 공통 변수 정의
├── outputs.tf            # 공통 출력값 정의
│
├── providers/            # 프로바이더 설정 디렉토리
│   ├── aws/              # AWS 관련 설정 및 모듈
│   │   ├── main.tf
│   │   ├── variables.tf
│   │   ├── outputs.tf
│   │   └── modules/      # AWS 전용 모듈
│   │       ├── vpc/
│   │       │   ├── main.tf
│   │       │   ├── variables.tf
│   │       │   └── outputs.tf
│   │       ├── ec2/
│   │       │   ├── main.tf
│   │       │   ├── variables.tf
│   │       │   └── outputs.tf
│   │       └── ...       # 추가 AWS 모듈
│   ├── cloudflare/       # Cloudflare 관련 설정 및 모듈
│   │   ├── main.tf
│   │   ├── variables.tf
│   │   ├── outputs.tf
│   │   └── modules/      # Cloudflare 전용 모듈
│   │       ├── dns/
│   │       │   ├── main.tf
│   │       │   ├── variables.tf
│   │       │   └── outputs.tf
│   │       └── ...       # 추가 Cloudflare 모듈
│   ├── kubernetes/       # Kubernetes 관련 설정 및 모듈
│   │   ├── main.tf
│   │   ├── variables.tf
│   │   ├── outputs.tf
│   │   └── modules/      # Kubernetes 전용 모듈
│   │       ├── deployments/
│   │       │   ├── main.tf
│   │       │   ├── variables.tf
│   │       │   └── outputs.tf
│   │       ├── services/
│   │       │   ├── main.tf
│   │       │   ├── variables.tf
│   │       │   └── outputs.tf
│   │       └── ...       # 추가 Kubernetes 모듈
│   ├── helm/             # Helm 관련 설정 및 모듈
│   │   ├── main.tf
│   │   ├── variables.tf
│   │   ├── outputs.tf
│   │   └── modules/      # Helm 전용 모듈
│   └── kubevirt/         # KubeVirt 관련 설정 및 모듈
│       ├── main.tf
│       ├── variables.tf
│       ├── outputs.tf
│       └── modules/      # KubeVirt 전용 모듈
│
└── environments/         # 환경별 구성 (dev, staging, prod)
    ├── dev/
    │   ├── main.tf
    │   └── backend.tf
    ├── staging/
    │   ├── main.tf
    │   └── backend.tf
    └── prod/
        ├── main.tf
        └── backend.tf
기존 인프라를 HCL로 마이그레이션
GCP: Terraformer
Reference & Guidelines (NOTE)

terraformer는 GCP를 위하여 설계되었으나, AWS용 공식문서가 존재한다.

AWS: Terraformer with AWS
Cloudflare: CF-Terraforming

Comments

Leave a Reply

Your email address will not be published. Required fields are marked *