#IaC
9 편의 글
테라폼 기초 강좌 #8 모듈 기초: 리소스 묶음의 재사용과 레지스트리 모듈
모든 테라폼 디렉터리가 이미 모듈이라는 것에서 출발해, 변수를 입력으로 output을 출력으로 갖는 자식 모듈을 직접 만들고 module 블록으로 호출하는 방법을 정리합니다. 레지스트리의 검증된 모듈을 버전 고정과 함께 가져다 쓰는 법, 그리고 모듈을 나누는 기준과 과도한 분리의 경계까지 다루겠습니다.
테라폼 기초 강좌 #7 리소스 수명주기 제어: 교체 조건, create_before_destroy, prevent_destroy
어떤 속성 변경이 update로 끝나고 어떤 변경이 리소스 교체를 강제하는지 plan에서 읽어 내는 법을 정리합니다. 교체 순서를 뒤집어 중단을 줄이는 create_before_destroy, 운영 리소스의 삭제를 막는 prevent_destroy, 코드 밖 변경을 무시하는 ignore_changes, 그리고 -replace 플래그로 교체를 강제하는 방법까지 다루겠습니다.
테라폼 기초 강좌 #6 의존성과 반복: depends_on, count vs for_each, dynamic 블록
참조가 곧 의존성이 되어 생성 순서가 결정되는 원리와 depends_on이 필요한 예외 상황을 정리합니다. count로 리소스를 복제할 때 리스트 중간 제거가 일으키는 재생성 함정, 키 기반이라 안전한 for_each와의 선택 기준, 그리고 중첩 블록을 반복하는 dynamic 블록까지 다루겠습니다.
테라폼 기초 강좌 #5 state의 정체: tfstate 파일 구조와 plan이 변경을 계산하는 원리
terraform.tfstate 파일을 직접 열어 구조를 확인하고, plan이 코드, state, 실제 인프라 세 가지를 비교해 변경을 계산하는 원리를 정리합니다. state에 민감 정보가 평문으로 남는 문제와 커밋 금지 규칙, state list와 show, mv, rm 같은 조작 명령, state를 잃었을 때 일어나는 일까지 다루겠습니다.
테라폼 기초 강좌 #4 데이터 소스와 표현식: 만들지 않고 읽어 오기, 조건식과 for
테라폼이 만들지 않은 기존 리소스의 정보를 읽어 오는 data 블록을 최신 AMI 조회 예제로 다루고, 조건식으로 환경별 분기를 만들고 for 표현식과 스플랫으로 리스트와 맵을 가공하는 방법을 정리합니다. 자주 쓰는 내장 함수와 표현식 실험장인 terraform console까지 다루겠습니다.
테라폼 기초 강좌 #3 변수·출력·로컬 값: 하드코딩을 걷어내는 세 가지 도구
variable 블록으로 값을 코드 밖으로 빼내는 방법과 tfvars 파일, -var 플래그, 환경 변수라는 네 가지 입력 경로의 우선순위를 정리합니다. validation으로 잘못된 값을 입구에서 막고, output으로 결과를 꺼내고, locals로 내부 계산에 이름을 붙이는 것까지, 같은 코드로 여러 환경을 만드는 기반을 다지겠습니다.
테라폼 기초 강좌 #2 HCL 핵심 문법: 블록, 인수, 리소스 주소와 변경의 세 가지 모양
HCL의 뼈대인 블록과 인수의 구조, aws_s3_bucket.hello 같은 리소스 주소의 의미와 리소스끼리 참조하는 문법을 정리합니다. plan 출력의 기호를 읽으며 create, update, replace라는 변경의 세 가지 모양을 구분하고, fmt와 validate로 코드를 다듬는 습관까지 다루겠습니다.
테라폼 기초 강좌 #1 IaC와 테라폼: 콘솔 클릭 운영의 한계, 설치와 첫 apply
콘솔에서 클릭으로 만든 인프라가 재현 불가, 이력 부재, 리뷰 부재로 무너지는 과정을 짚고, 원하는 상태를 코드로 선언하는 IaC가 이 문제를 어떻게 푸는지 정리합니다. CloudFormation, CDK, Pulumi 사이에서 테라폼이 갖는 위치를 비교하고, 설치부터 S3 버킷 하나를 init, plan, apply로 만들었다가 destroy로 지우는 첫 사이클까지 다루겠습니다.
AWS 실전 #4 IaC: Terraform 입문
IaC가 필요한 이유, Terraform의 provider / resource / state 구조, S3 + DynamoDB backend로 팀 협업, 모듈로 환경 분리, 그리고 #1~#3의 인프라를 코드로 옮기는 흐름까지 정리합니다.