
인프랩 IaC 구축기 (Part 1)
두줄요약
인프랩의 IaC가 AWS CDK·Terraform·Terragrunt를 거쳐 Pulumi로 전환한 배경을 정리했습니다. TypeScript, 테스트, IDE 지원을 기반으로 운영 가능한 IaC 환경을 구축했습니다.
문제 상황
- 인프라 구성 증가와 조직 분화에 따른 수동 관리 방식의 한계
- 재구축 용이성, 정책 검증, 구성 실수 자동 확인을 목표로 한 IaC 환경 필요
원인 분석
- AWS CDK의 CloudFormation 계층으로 인한 Drift 탐지·해결 신뢰성 문제
- Terraform HCL의 제한적인 IDE 지원, 조건문 가독성 저하, 확장 어려움
- Terragrunt 의존성·캐시·실행 출력 복잡도와 Terratest 통합 테스트 중심의 한계
해결 방법
- TypeScript 기반 Pulumi로 전환해 범용 언어 생태계와 IDE 자동 완성·타입 힌팅 활용
- Pulumi Mock 기반 단위 테스트와 테스트 픽스처 기반 통합 테스트 구성
- Automation API, Nx, AWS S3 State, Secrets Manager 캐싱, Slack 실행 알림 적용
선택 이유
- 일반 프로그래밍 방식의 코드 추상화와 패키지·테스트 도구 활용 가능성
- IaC 외부 리소스 Import와 요구사항별 확장 구현 용이성
- TypeScript 제네릭을 통한 전 영역 타입 힌팅과 향후 개선 지속성 기대



