피드로 돌아가기
I built a carbon linter for Terraform PRs — here's the full stack
Dev.toDev.to
Infrastructure

Terraform PR 단계의 Carbon Linter 도입으로 탄소 배출량 최대 97.7% 절감

I built a carbon linter for Terraform PRs — here's the full stack

Grafikui2026년 5월 4일4intermediate

Context

기존 클라우드 지속 가능성 도구는 3개월 단위의 사후 빌링 데이터에 의존하여 인프라 설계 변경 시점이 이미 지나친 후 보고하는 한계 존재. 리소스 배포 전 의사결정 단계에서 탄소 배출량을 제어할 수 있는 Shift-left 접근 방식의 부재로 인한 탄소 낭비 지속.

Technical Solution

  • terraform show -json plan 출력을 파싱하여 배포 전 인프라 변경 사항을 정량적으로 분석하는 GitHub Action 기반 Pipeline 구축
  • CCF v3 표준을 준수하여 CPU 사용률, 메모리 전력 소모량, PUE, Grid Intensity를 결합한 정적 결정론적 탄소 계산 공식 적용
  • Region별 Grid Carbon Intensity 차이(us-east-1 384.5g vs eu-north-1 8.8g)를 활용한 최적 리전 추천 알고리즘 구현
  • post-suggestions: true 설정을 통한 PR Diff 내 inline suggestion 제공으로 코드 수정 및 커밋 과정의 마찰 최소화
  • .greenops.yml 설정 파일을 통한 Carbon Budget 강제화 및 Violation 발생 시 Exit Code 1 반환으로 Merge Block 처리
  • Cloud Credentials 없이 Plan 파일만 처리하는 Air-gapped 구조 설계로 SOC 2 보안 환경 대응

- IaC Pipeline 내에 비용 및 탄소 배출량 검증 단계를 추가하여 인프라 비용 최적화 자동화 - 리전 선택 시 단순 지연시간(Latency) 외에 Grid Carbon Intensity 지표를 설계 기준에 포함 - 인프라 변경 제약 사항을 코드화하여(`.greenops.yml` 형태) 팀 전체의 가드레일로 운영

원문 읽기