본문으로 건너뛰기
현장 노트

E7 · 컴투스플랫폼 · 2023.02 – 2026.02

복사해서 쓰던 인프라 코드를 하나로

운영 인프라를 코드로 옮기고, 중복을 걷어내 배포 시간 40% 단축

-40% 배포 시간

  • Terraform
  • Terragrunt
  • IaC
  • AWS
  • GCP
Terraform코드 복사본Terraform코드 복사본Terraform코드 복사본Terraform코드 복사본Terraform코드 복사본Terraform코드 복사본수정 필요수정 필요수정 필요수정 필요수정 필요수정공통 모듈보안 기본값dev다른 값stg다른 값prod다른 값-40%
하단 시계가 -40%로 줄어듭니다.

한 줄 요약

운영 중인 인프라를 코드로 옮기고 환경마다 복사하던 Terraform 코드를 Terragrunt 공통 구조로 묶어 배포 시간을 40% 줄였습니다.

배경

스타시드: 아스니아 트리거(AWS, 서버 50대·DB 20개) 등 운영 중인 인프라를 IaC(인프라를 코드로 관리하는 방식)로 옮겼습니다.

서머너즈워: 천공의 아레나 환경에서도 같은 방식의 구조 전환을 적용했습니다.

문제

개발·스테이징·운영 환경과 게임마다 거의 같은 Terraform 코드를 복사해서 쓰고 있었습니다.

하나를 바꾸면 여러 곳을 같이 고쳐야 했고, 환경마다 설정이 조금씩 달라졌습니다.

실행

Terragrunt(Terraform을 여러 환경에서 반복 없이 쓰게 해 주는 도구)로 구조를 바꿨습니다.

  • 공통 모듈과 공통 설정(상태 저장 위치, 클라우드 연결 설정)은 한 곳에서 상속
  • 환경별로는 다른 값만 둠

구조 예시(설명용)

infra/
├── modules/                 # 공통 모듈 (보안 기본값 포함)
│   ├── network/
│   ├── security-group/
│   └── server/
├── terragrunt.hcl           # 공통 설정 (상태 저장 위치 등)
└── game-a/
    ├── dev/
    │   └── terragrunt.hcl   # dev에서 다른 값만
    ├── stg/
    │   └── terragrunt.hcl
    └── prod/
        └── terragrunt.hcl

결과

배포 시간 40% 단축.

공통 모듈에 보안 기본값을 넣으면 모든 환경에 한 번에 적용되는 구조가 됐습니다.

관련 저장소

이어지는 경험

Open to work · 클라우드 인프라/보안