본문으로 바로가기

AWS Terraform 태그 자동화, Terratags로 CI/CD에서 리소스 태그 관리 끝내기

설탕사과
설탕사과
조회수 176
요약

AWS 인프라의 리소스 태그 관리, 여러분도 늘 헷갈리시죠? 비용 관리, 보안, 운영 효율까지 좌우하는 태그지만, 대규모로 관리하다 보면 태그가 빠지는 일은 비일비재합니다. 오늘은 이런 고민을 단번에 해결할 수 있는 오픈소스 도구, Terratags를 소개합니다. 업체별 정책도 복잡하고, 팀마다 기준도 다르지만 이 도구 하나면 Terraform 환경에서 AWS 리소스 태그 일관성을 손쉽게 지킬 수 있습니다.

AWS 리소스 태그, 왜 꼭 관리해야 하나요?

클라우드를 오래 다뤄본 분들이라면 한 번쯤 태그 때문에 골머리를 앓아본 적 있을 거예요. 태그는 단순한 라벨이 아니라 ‘예산 배분’, ‘소유자 추적’, ‘보안 정책 적용’ 등 기업의 IT 운영에서 핵심 역할을 합니다. 하나라도 잘못 관리되면 비용 분석이 꼬이고, 보안 진단도 복잡해집니다. 특히 여러 팀이 동시에 작업할 땐 누락이나 중복이 빈번해져 수작업 검수가 일상이죠.

태그 일관성 깨지는 순간, 팀은 왜 힘들어질까?

실제 현장에서는 다음과 같은 문제가 자주 발생합니다.

  • 리소스마다 태그 기준이 달라 예산 보고가 어려워짐

  • 반복적·수동 검수로 작업 시간이 늘어남

  • 코드 내 태그 규칙 누락 시 보안 감사가 복잡해짐

  • CI/CD에선 자동 검증이 없으니 실수도 빈번

AWS에서 태그 정책도 제공하지만, Terraform으로 IaC(인프라 코드) 관리하는 팀에는 별도의 추가 관리가 꼭 필요합니다. 이런 맥락에서 Terratags가 등장했습니다.

Terratags란? Terraform에서 AWS 태그를 자동으로 체크하는 도구

Terratags는 오픈소스 CLI 프로그램입니다. Terraform 코드나 plan 결과물을 스캔해 AWS 리소스의 태그 기준을 미리 검사해 줍니다. 태그가 누락된 리소스는 즉시 리포트로 확인하고, 자동으로 수정 코드를 제안까지 해주기 때문에 CI/CD에 바로 적용할 수 있습니다. 설치부터 사용법까지 아주 직관적이어서 코딩 초보도 쉽게 도입 가능해요.

Terratags 주요 기능 한눈에 살펴보기

  • 태그 검증: 반드시 필요한 태그가 빠진 리소스를 즉시 검출

  • default_tags 인식: AWS Provider 설정의 기본 태그도 자동 반영

  • 모듈 상속 지원: 모듈이나 리소스별 태그 상속까지 한 번에 처리

  • 예외 규칙 설정: 특정 리소스는 태그 기준에서 제외 가능

  • HTML 리포트 생성: 태그 적합성 결과를 시각적으로 리포트로 제공

  • 자동 수정보안 추천: 코드 내 필요한 태그 자동 추가 제안

  • CI/CD 통합: 배포 파이프라인에 쉽게 연동 가능

실전 사용법 및 빠른 시작 가이드

맨 처음에는 Brew로 맥 환경에 쉽게 설치 가능합니다.

brew install terratags/tap/terratags

주요 옵션은 다음과 같습니다.

  • --config 필요한 태그 규칙을 저장한 설정 파일 지정(JSON/YAML)

  • --dir 분석할 Terraform 디렉토리 지정 (기본 current dir)

  • --plan Terraform plan JSON 파일 분석 지원

  • --report 결과 HTML 리포트 파일 경로 지정

  • --remediate 자동 수정 제안 활성화

  • --exemptions 예외 리소스 목록 파일 지정

코드는 아래처럼 바로 실행 가능합니다.

terratags -config config.yaml -dir ./infra

예시 config.yaml 예시:

required_tags:
  - Name
  - Environment
  - Owner
  - Project

실행하면 누락된 리소스와 누락된 태그까지 정확하게 보여줍니다. 리포트를 HTML로 시각화하거나, 예외 리소스가 설정된 경우 별도 분류도 가능합니다. 자세한 옵션과 실제 예제는 공식 문서에서 더 확인할 수 있습니다.

Terratags의 핵심 구조와 내부 동작 원리

Terratags의 코드는 골격이 명확합니다.

  • main.go: CLI 실행점, 설정 로드 및 전체 검증 흐름 관리

  • validator.go: 규칙 기반 태그 검증 및 예외 처리, HTML 리포트 생성, 자동 수정 코드 추천

  • parser.go: HCL(하시코프) 파싱으로 태그/리소스 추출

  • aws_taggable_resources.go: 태그 지원이 가능한 모든 AWS 리소스 목록 관리

  • provider.go: Terraform Provider 설정의 default_tags 추출

  • config.go: 필수 태그/예외 규칙 관리

이 덕분에 Terraform 구조만 알고 있으면 누구나 빠르게 수정하거나 기능을 추가할 수 있어요.

개발자 성장 스토리: Go와 AI의 만남, 그리고 도입 팁

Terratags는 개발자가 AWS와 Terraform을 사용하다 태그 관리 문제로 직접 만든 솔루션입니다. 초반엔 파이썬으로 개발을 했지만, Go 언어에 도전하며 구조적인 파싱과 파일 핸들링을 Amazon Q 같은 AI 개발 보조툴까지 이용해 구현했습니다.

특히 MkDocs로 문서화해 깔끔한 사용법 페이지를 GitHub Pages에서 무료로 공개하는 등 개인 프로젝트로 시작했지만, 현업에서 바로 쓸 만큼 완성도가 높아졌어요. 개발 초보라도 AI가 코드를 추천하고 구체적인 사용 예를 제공해 빠르게 결과물을 낼 수 있습니다.

마지막으로, 테스트 자동화와 명확한 예시를 늘 병행하며 AI의 한계를 극복했다는 점이 인상적인데요. 어떤 도구도 제대로 쓰려면 직접 써보고 검증하는 과정이 꼭 필요하다는 메시지입니다.

Terratags의 앞으로의 기능 확장과 기대되는 점

Terratags는 현재 AWS 위주지만, 앞으로 Azure, GCP 등 주요 클라우드까지 지원을 늘릴 계획입니다. 사용자 맞춤 태그 값 검증, 다양한 CI/CD 시스템 전용 플러그인 개발 등 커뮤니티 의견을 반영해 지속적으로 발전하고 있습니다.

AWS Terraform 태그 자동화, Terratags를 써야 하는 이유

직접 써보면 왜 필요한지 단박에 느낄 수 있습니다. 리소스마다 태그가 빠져 분석과 보안 점검이 꼬이는 경험, 누구나 한 번쯤은 겪으셨을 거예요. Terratags는 설치부터 사용까지 쉽고, 코드를 직접 수정할 필요 없이 자동으로 태그 기준을 지킬 수 있습니다. 대형 팀이나 복잡한 환경에서는 CI/CD 파이프라인에 바로 연동해 태그 컴플라이언스를 강화할 수 있죠.

마지막으로, Terraform과 AWS를 함께 쓴다면 반드시 한번 도입해 보시길 추천합니다. 오픈소스라 커스터마이즈도 자유롭고, 공식 문서와 깃허브 라이브러리까지 친절하게 제공돼 있어 누구나 쉽게 시작할 수 있습니다.

더 궁금하다면 공식 깃허브와 문서를 참고해 주세요!

여러분만의 태그 컴플라이언스 관리, 지금부터 쉽고 빠르게 Terratags와 함께 시작해보세요!


참고:

https://manuchandrasekhar.medium.com/terratags-enforce-tags-on-your-aws-terraform-configuration-b50f18abdd82