#Terraform
48 편의 글
테라폼 운영 강좌 #3 코드 품질과 테스트: tflint, pre-commit, terraform test
fmt와 validate 위에 tflint를 얹어 provider 지식 기반의 오류(존재하지 않는 인스턴스 타입 등)를 plan 전에 잡고, pre-commit 훅으로 커밋 시점에 자동화합니다. 테라폼 내장 테스트 프레임워크인 terraform test의 tftest 파일과 run·assert 구조를 모듈 테스트 예제로 익히고, plan 테스트와 apply 테스트의 비용 차이에 따른 사용 기준까지 정리하겠습니다.
테라폼 운영 강좌 #2 drift와 state 수술: 정기 감지, import 블록, removed 블록
코드 밖에서 일어난 변경을 정기 plan 워크플로와 -detailed-exitcode로 감지하는 체계를 만들고, drift에 대한 세 가지 대응(코드로 흡수, apply로 되돌림, ignore_changes)의 선택 기준을 정리합니다. 콘솔에서 태어난 리소스를 import 블록으로 편입하고 -generate-config-out으로 코드 초안을 뽑는 절차, state에서만 제거하는 removed 블록까지 다루겠습니다.
테라폼 운영 강좌 #1 협업 워크플로: PR에서 plan 리뷰, GitHub Actions로 apply
로컬 apply가 팀에서 만드는 권한 집중과 리뷰 부재 문제를 짚고, PR에는 plan을 코멘트로 남기고 병합하면 CI가 apply 하는 표준 워크플로를 GitHub Actions로 구성합니다. OIDC 역할 연결, plan 출력의 PR 코멘트 자동화, concurrency로 동시 apply를 막는 설정까지, 사람 손의 apply를 없애는 첫 단계를 만들겠습니다.
테라폼 실전 강좌 #10 도메인·HTTPS·완성: Route 53, ACM 검증, CloudFront와 provider alias
Route 53 호스티드 존을 데이터 소스로 연결하고 ACM 인증서를 DNS 검증 리소스 세 개의 관용구로 발급해 ALB에 HTTPS 리스너와 리다이렉트를 답니다. CloudFront용 인증서를 위해 provider alias로 us-east-1을 함께 쓰는 방법을 다루고, OAC로 닫힌 S3 버킷을 서빙하는 CDN과 별칭 레코드까지 연결해 열 편의 아키텍처를 완성하겠습니다.
테라폼 실전 강좌 #9 환경 분리: 워크스페이스의 한계, 디렉터리 구조, moved 리팩터링
워크스페이스 방식이 환경 분리에서 부딪히는 한계를 짚고, modules와 envs 디렉터리로 나누는 실무 표준 구조를 세웁니다. 단일 디렉터리로 자란 코드를 network, compute, data 모듈로 리팩터링하면서 moved 블록으로 재생성 없이 주소를 옮기고, dev와 prod가 같은 모듈을 다른 값으로 쓰는 구성을 완성하겠습니다.
테라폼 실전 강좌 #4 ALB와 Auto Scaling: launch template, 대상 그룹, 스케일링 정책
단일 EC2 인스턴스를 로드밸런서 뒤의 Auto Scaling 그룹으로 승격합니다. 인스턴스 정의를 launch template으로 옮기고, ALB와 대상 그룹, 리스너를 연결한 뒤 CPU 타깃 추적 스케일링 정책까지 겁니다. 검증용 단일 인스턴스를 코드에서 지워 IaC의 리소스 제거 흐름을 확인하고, 브라우저로 첫 응답을 받아보겠습니다.