
데브옵스
속도 개선을 위한 노력 2탄: Github Actions로 CI/CD 전환하기
두줄요약
Github Actions로 CI/CD를 전환해 배포 속도와 협업 효율을 높인 사례를 소개했습니다. Terraform 캐시와 Terragrunt 최적화로 배포 시간을 크게 줄였습니다.
문제 상황
- Terraform 기반 인프라 코드가 늘어나며 AWS CodePipeline 배포에서 처리 속도 저하와 에러 빈도 증가
- Terraform init 과정의 모듈·프로바이더 다운로드로 디스크 부족과 러너 다운 현상 발생
원인 분석
- CodePipeline의 순차 실행 구조로 인한 병렬 처리 한계
- .terraform 디렉토리 증가와 캐시 부재로 인한 디스크·네트워크 부담
- 리소스 증설만으로는 Terraform 실행 비효율과 메모리 부족 문제 해소 어려움
해결 방법
- CI/CD를 Github Actions로 전환하고 self-hosted runner 활용
- Provider Cache Plugin 적용으로 프로바이더 재다운로드 최소화
- Terragrunt 도입으로 모듈 래핑, 자동 Backend 설정, 병렬 실행 제어
성능/운영 포인트
- Gradle 캐시와 최적화로 파이프라인 시간 20분 내외에서 3분 내외로 단축
- S3와 DynamoDB 기반 state 관리 및 locking으로 충돌 방지
- 승인 절차를 포함한 tf-plan, tf-apply 분리로 변경 안전성 확보
