Terraform 등 IaC 도구와 버전관리, 테스트 전략을 경험 기반으로 서술
자동 스케일링을 위한 인프라 코드는 Terraform으로 관리하는 방식을 경험했습니다. 상태 파일을 S3에 저장하고 DynamoDB로 잠금 처리해 여러 사람이 동시에 작업해도 충돌이 안 생기도록 구성했습니다. 버전 관리는 인프라 코드도 애플리케이션 코드와 같은 Git 저장소에서 PR 기반으로 관리했는데, 변경 이력이 남아 롤백 근거가 명확해지는 게 가장 큰 장점이었습니다. 테스트 전략은 terraform plan 결과를 PR 단계에서 자동으로 출력하고, 예상치 못한 리소스 삭제가 포함되어 있으면 머지를 차단하는 방식을 썼습니다. 자동화 프로세스는 GitHub Actions로 `plan → review → apply` 파이프라인을 구성했고, 스케일링 정책은 CloudWatch 지표를 트리거로 해서 인스턴스 수가 자동 조정되도록 설정했습니다. 운영 중 한 번 스케일 아웃 후 비용이 급증한 경험이 있었는데, 최대 인스턴스 수 제한을 Terraform 변수로 관리하게 된 계기였습니다.