피드로 돌아가기
원문 읽기
LINE Engineering
Infrastructure코드형 인프라(IaC)로 자동화에서 AI까지: OpenTofu와 ChatOps 도입기
1,500개 리소스를 OpenTofu 기반 GitOps로 전환하여 인프라 제어권 확보
AI 요약
Context
다양한 팀이 콘솔, 스크립트, 매뉴얼 등 파편화된 방식으로 인프라를 관리함에 따라 운영 규모 확대 시 변경 이력 추적 불가 및 휴먼 에러 위험 증가. 리소스 상태의 명시적 정의와 변경 사항 리뷰 체계가 부재한 레거시 환경의 한계 노출.
Technical Solution
- OpenTofu와 Terragrunt 조합을 통한 리소스 정의 모듈화 및 환경별 설정 중복(DRY) 제거 설계
- 기존 운영 리소스의 안전한 마이그레이션을 위해 '조회 → 변환 → 연결 → Plan 검증' 단계의 자동화 import 스크립트 구축
- 네트워크 ID 등 표현 방식 차이로 인한 불필요한 변경 감지를 막기 위한 상태 정규화(Normalization) 프로세스 도입
- 리소스 유형별 의존 관계(예: LB-Listener-Pool)를 반영한 계층적 import 전략 수립
- 네이밍 패턴 및 메타데이터 기반 필터링을 통해 Kubernetes 관리 VM과 수동 생성 VM의 충돌 방지 로직 구현
- Drift Check 시스템 구축을 통한 코드와 실제 인프라 상태 간 불일치 자동 감지 및 알림 체계 마련
실천 포인트
1. 기존 리소스 import 전, 실제 상태와 코드 간의 표현 방식 차이를 해결할 정규화 규칙 정의
2. 관리 주체가 다른 리소스(예: K8s Auto-scaling VM)를 구분할 수 있는 필터링 조건 설정
3. Terragrunt 등을 활용해 공통 설정과 환경별 입력값을 분리하여 코드 중복 제거
4. Drift Check 도입으로 콘솔 직접 수정으로 인한 상태 불일치 방지 체계 구축