콘텐츠

인프랩 IaC 구축기 (Part 1)

스토리 · 인프런 테크 · 2024.02.01

인프랩 데브옵스 팀이 AWS CDK, Terraform, Terragrunt를 거쳐 최종적으로 Pulumi에 정착하게 된 여정을 소개하는 글입니다. IaC는 인프라 관리를 자동화하고 소프트웨어 개발 방법론을 적용할 수 있는 강력한 도구입니다. 인프랩은 서비스 규모가 커짐에 따라 효율적인 협업과 자동화를 위해 IaC 도입을 결정했습니다. 기존에 사용했던 Terraform와 Terragrunt는 HCL이라는 도메인 특화 언어를 사용하여 IDE의 도움(자동 완성, 타입 힌팅 등)을 받기 어렵고, 코드 가독성이 떨어지며, 테스트를 수행하기 까다롭다는 한계가 있었습니다. 또한 .terragrunt-cache 디렉토리 관리와 느린 동작 속도 등 운영상의 어려움도 있었습니다. 이러한 문제를 해결하기 위해 인프랩은 범용 프로그래밍 언어를 지원하는 Pulumi를 도입했습니다. Pulumi는 TypeScript와 같은 언어를 사용하여 IDE의 강력한 기능을 활용할 수 있고, 기존 프로그래밍 생태계(패키지 관리자, 테스팅 프레임워크 등)를 그대로 사용할 수 있다는 큰 장점이 있습니다. 현재 인프랩은 Pulumi Automation API와 Nx를 활용하여 스택 간 종속성을 관리하고, Jest를 이용한 단위 테스트까지 구성하며 더욱 견고한 IaC 환경을 구축해 나가고 있습니다.