Terraform

테라폼 운영 강좌 #3 코드 품질과 테스트: tflint, pre-commit, terraform test
4 분 소요

테라폼 운영 강좌 #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 블록
4 분 소요

테라폼 운영 강좌 #2 drift와 state 수술: 정기 감지, import 블록, removed 블록

코드 밖에서 일어난 변경을 정기 plan 워크플로와 -detailed-exitcode로 감지하는 체계를 만들고, drift에 대한 세 가지 대응(코드로 흡수, apply로 되돌림, ignore_changes)의 선택 기준을 정리합니다. 콘솔에서 태어난 리소스를 import 블록으로 편입하고 -generate-config-out으로 코드 초안을 뽑는 절차, state에서만 제거하는 removed 블록까지 다루겠습니다.

테라폼 운영 강좌 #1 협업 워크플로: PR에서 plan 리뷰, GitHub Actions로 apply
4 분 소요

테라폼 운영 강좌 #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
5 분 소요

테라폼 실전 강좌 #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 리팩터링
5 분 소요

테라폼 실전 강좌 #9 환경 분리: 워크스페이스의 한계, 디렉터리 구조, moved 리팩터링

워크스페이스 방식이 환경 분리에서 부딪히는 한계를 짚고, modules와 envs 디렉터리로 나누는 실무 표준 구조를 세웁니다. 단일 디렉터리로 자란 코드를 network, compute, data 모듈로 리팩터링하면서 moved 블록으로 재생성 없이 주소를 옮기고, dev와 prod가 같은 모듈을 다른 값으로 쓰는 구성을 완성하겠습니다.

테라폼 실전 강좌 #8 ECS Fargate 배포: 태스크 정의, 서비스, ALB 뒤에서의 전환
4 분 소요

테라폼 실전 강좌 #8 ECS Fargate 배포: 태스크 정의, 서비스, ALB 뒤에서의 전환

user_data 방식의 한계를 짚고 컴퓨팅 계층을 컨테이너로 세대교체합니다. ECS 클러스터와 Fargate 태스크 정의, 실행 역할과 태스크 역할의 구분, ip 타입 대상 그룹을 가진 서비스를 만들고, 같은 ALB 뒤에서 EC2와 컨테이너를 나란히 돌리다 리스너 전환으로 갈아타는 과정까지 코드로 진행하겠습니다.

테라폼 실전 강좌 #7 IAM 코드화: 인스턴스 역할, 최소 권한, GitHub Actions OIDC
4 분 소요

테라폼 실전 강좌 #7 IAM 코드화: 인스턴스 역할, 최소 권한, GitHub Actions OIDC

aws_iam_policy_document 데이터 소스로 신뢰 정책과 권한 정책을 작성하고, 인스턴스 프로파일로 EC2에 역할을 부여해 SSM Session Manager 접속과 시크릿 읽기를 완성합니다. 최소 권한을 리소스 ARN 단위로 좁히는 방법과, GitHub Actions가 액세스 키 없이 AWS 역할을 맡는 OIDC 연동까지 코드로 만들겠습니다.

테라폼 실전 강좌 #6 시크릿 관리: SSM vs Secrets Manager, write-only 인수
4 분 소요

테라폼 실전 강좌 #6 시크릿 관리: SSM vs Secrets Manager, write-only 인수

시크릿 보관소로 SSM Parameter Store와 Secrets Manager를 비용과 기능으로 비교해 선택 기준을 세우고, 테라폼 1.11의 ephemeral 리소스와 write-only 인수로 DB 비밀번호가 plan과 state 어디에도 남지 않는 구성을 만듭니다. 애플리케이션이 시크릿을 런타임에 읽는 경로까지 설계해 지난 편의 평문 문제를 구조적으로 풀겠습니다.

테라폼 실전 강좌 #5 RDS와 S3: 데이터 계층 코드화와 안전장치
4 분 소요

테라폼 실전 강좌 #5 RDS와 S3: 데이터 계층 코드화와 안전장치

DB 서브넷 그룹과 보안 그룹 체이닝으로 격리된 PostgreSQL RDS를 프라이빗 서브넷에 만들고, gp3 스토리지와 백업, prevent_destroy 안전장치까지 설정합니다. 정적 자산용 S3 버킷을 퍼블릭 차단과 함께 구성하고, 임시로 변수에 둔 DB 비밀번호가 state에 평문으로 남는 문제를 확인해 다음 편의 과제로 넘기겠습니다.

테라폼 실전 강좌 #4 ALB와 Auto Scaling: launch template, 대상 그룹, 스케일링 정책
4 분 소요

테라폼 실전 강좌 #4 ALB와 Auto Scaling: launch template, 대상 그룹, 스케일링 정책

단일 EC2 인스턴스를 로드밸런서 뒤의 Auto Scaling 그룹으로 승격합니다. 인스턴스 정의를 launch template으로 옮기고, ALB와 대상 그룹, 리스너를 연결한 뒤 CPU 타깃 추적 스케일링 정책까지 겁니다. 검증용 단일 인스턴스를 코드에서 지워 IaC의 리소스 제거 흐름을 확인하고, 브라우저로 첫 응답을 받아보겠습니다.

테라폼 실전 강좌 #3 EC2와 보안 그룹: SG 체이닝 설계와 user_data 부팅
4 분 소요

테라폼 실전 강좌 #3 EC2와 보안 그룹: SG 체이닝 설계와 user_data 부팅

보안 그룹을 CIDR가 아니라 보안 그룹 참조로 연결하는 체이닝 설계를 ALB, EC2 2계층으로 구성하고, 최신 AL2023 AMI를 데이터 소스로 조회해 user_data로 웹 서버까지 부팅되는 EC2 인스턴스를 프라이빗 서브넷에 올립니다. SSH 포트를 열지 않는 이유와 Session Manager 접속 계획까지 정리하겠습니다.

테라폼 실전 강좌 #2 VPC 네트워크 코드화: 서브넷 2 AZ, 라우팅, NAT 게이트웨이
4 분 소요

테라폼 실전 강좌 #2 VPC 네트워크 코드화: 서브넷 2 AZ, 라우팅, NAT 게이트웨이

myapp 인프라의 토대인 VPC를 코드로 세웁니다. 퍼블릭·프라이빗 서브넷을 두 AZ에 for_each로 만들고, 인터넷 게이트웨이와 라우팅 테이블로 트래픽 경로를 정의하며, 프라이빗 서브넷의 아웃바운드를 책임질 NAT 게이트웨이를 비용 절충과 함께 배치합니다. 네트워크 output까지 정리해 다음 편의 컴퓨팅 계층을 받을 준비를 마치겠습니다.