본문으로 이동
DevOps팀의 Terraform 모험
문서

DevOps팀의 Terraform 모험

이규원 컬리 · 컬리 기술 블로그

원문 보기

AI 핵심 요약

서비스와 스테이지·QA 환경이 늘면서 반복 작업과 실수가 잦아지자, 컬리 DevOps팀은 우선 비운영 환경에 Terraform을 도입하고 운영 환경 확장을 염두에 둔 모듈·환경 코드 구조를 설계했다. 태그는 `locals`와 `merge`로 재사용하고, Launch Template의 선택적 EBS 설정은 `dynamic` block과 객체 타입 변수로 표현해 환경 코드의 반복을 줄였다. 처음에는 환경을 생성하는 자동화에 집중했지만, tfstate가 실제 인프라와 코드의 동기화 및 리소스 메타데이터를 관리한다는 점을 놓친 설계를 재검토해 상태 파일을 별도 S3 버킷에서 관리하고 DevOps팀이 코드와 상태를 우선 관리하기로 했다. 적용 과정에서는 리소스 의존성과 순환 참조, 수동 변경 후 코드 동기화, plan 검증 없는 병합이 주요 위험으로 드러났으며, Terraform 도입에는 코드 작성뿐 아니라 상태 관리와 팀의 리뷰·운영 원칙이 함께 필요하다는 교훈을 얻었다.

  • Terraform 도입 전에는 반복되는 환경 생성과 운영으로 인한 실수, 관리 복잡도를 구체적인 문제로 정의한다.
  • 모듈 코드는 재사용 가능한 리소스 구성을, 환경 코드는 환경별 설정을 담당하도록 역할을 나눈다.
  • 반복되는 태그는 `locals`와 `merge`로 묶고, 선택적 중첩 설정은 `dynamic` block과 객체 타입 변수로 표현할 수 있다.
  • tfstate는 단순한 결과 파일이 아니라 실제 리소스와 코드의 동기화 및 의존성 정보를 관리하므로 원격 저장소와 접근 정책을 신중히 설계한다.
  • `terraform plan` 결과를 코드 리뷰와 배포 전에 확인하고, 리소스 의존성과 수동 변경 후 코드 동기화 방식을 팀에서 합의한다.

소개

사실은 낭만이 아닌 헬이었다

비슷한 학습 자료

컨퍼런스 NDC

● 설문조사: https://forms.gle/TQYXnccrhoT3WVpc7 ↓ 아래를 펼쳐, 세션 상세정보를 확인하세요! ● 발표분야: 프로그래밍 ● 발표자: 클로버게임즈 김희도 ● 권장 대상: 서버프로그래머, 시스템엔지니어, Devops, SRE ● 키워드: #Devops #Infrastructure as Code #Terraform 본 NDC 발표 동영상(이하 “저작물”이라 합니다)에 대한 저작권 (2차적저작물작성권 및 편집저작물작성권 포함)은 해당 저작물의 저작자(발표자 포함) 또는 (주)넥슨코리아 (이하 “권리자”라 합니다)에게 귀속되며, 권리자의 허락 없이 이를 상업적으로 이용하거나 무단으로 도용, 편집, 2차적저작물을 작성, 공중송신, 배포할 수 없습니다.

데브옵스 · 인프라

컨퍼런스 엔지니어링데이 2025

- 네이버 사내 기술 교류 행사인 NAVER ENGINEERING DAY(4월)에서 발표되었던 세션을 공개합니다. ----- [발표 내용] NAVER Cloud Platform Service Overview - Cloud Platform & Service Overview - Cloud Service Map Overview - SaaS solution on NAVER Cloud Platform Overview & Concept of Terraform - Position of Terraform in IaC - Basic Concept of Terraform - Key Workflow of Terraform - Key Commands of Terraform(init/plan/apply/import) - Terraform Extra Keywords(backend/output) Implementation of NAVER Cloud Platform IaC(with NC...

데브옵스 · 인프라 클라우드

컨퍼런스 엔지니어링데이 2025

Awesome Terraform Overview HCL Deep Dive & Terraform Expansion

컨퍼런스 엔지니어링데이 2025

- 네이버 사내 기술 교류 행사인 NAVER ENGINEERING DAY(7월)에서 발표되었던 세션을 공개합니다. ----- [발표 내용] Up & Running Terraform - Position of Terraform in IaC - Basic Concept of Terraform - Key Workflow of Terraform - Key Commands of Terraform(init/plan/apply/import) - Terraform Extra Keywords(backend/output) HCL(Hashicorp Configuration Language) Deep Dive - Overview of HCL(Hashicorp Configuration Language) - Terraform Elements & Expressions - Terraform Functions - Execute External Program with Terraform Expan...

데브옵스 · 인프라

문서 김동석

생산성, 안정성, 보안성을 모두 달성하기 위해선 ‘Pipeline’을 어떻게 설정해야 할까요? 다양하고 복잡한 토스뱅크의 배포 ‘Pipeline’를 안전하게 운영하기 위한 노력을 소개합니다.

데브옵스 · 인프라

문서 딜리버리프로덕트 김태훈

진정한 통테를...

소프트웨어 테스트

문서 이규원

Redis 테스트를 진행했습니다.

데이터베이스 소프트웨어 테스트