#DevOps

코드형 인프라(IaC)로 자동화에서 AI까지: OpenTofu와 ChatOps 도입기

코드형 인프라(IaC)로 자동화에서 AI까지: OpenTofu와 ChatOps 도입기
01

Summary

서버 증설도 이제는 슬랙에서 자연어로! LINE Plus SRE팀의 AI 기반 IaC 진화기

OpenTofu와 AI 에이전트를 결합해 1,500개 리소스를 자동화한 실전 GitOps 가이드

이 아티클은 파편화된 인프라 관리 환경을 OpenTofu와 Terragrunt를 이용해 IaC로 통합하고, 더 나아가 AI 에이전트를 활용해 관리 효율을 극대화한 여정을 다룹니다. 기존의 복잡한 리소스를 코드로 안전하게 이관하는 전략부터, 사람이 아닌 AI가 인프라 코드를 작성하고 배포하는 차세대 ChatOps 구현 사례까지 SRE 관점의 핵심 인사이트를 제공합니다.

  • 01OpenTofu와 Terragrunt를 결합해 환경별 중복 설정을 최소화한 DRY한 IaC 아키텍처 설계
  • 02기존 800개 이상의 VM, LB, DNS 리소스를 안전하게 코드화하기 위한 2단계 자동 import 전략 수립
  • 03웹 대시보드 사용자들을 위해 DOM 기반으로 HCL 코드를 즉시 생성해주는 Chrome 확장 프로그램 제작
  • 04Drift Check를 활용해 코드와 실제 인프라 간의 괴리를 실시간으로 감지하고 대응하는 알림 시스템 구축
  • 05MCP(Model Context Protocol)를 통해 AI 에이전트가 Slack에서 직접 인프라 코드를 생성하고 PR을 올리는 자동화 구현

RECOMMENDATION

인프라 운영 규모가 커지면서 수동 관리의 한계를 느끼는 엔지니어나, 단순한 IaC 도입을 넘어 AI를 활용한 차세대 운영 자동화를 꿈꾸는 조직에게 이 사례는 완벽한 기술적 이정표가 될 것입니다.

The Problem

여러 팀이 콘솔 대시보드, 개별 스크립트, 위키 문서 등 각기 다른 방식으로 인프라를 관리하면서 변경 이력 추적이 불가능하고, 운영 규모가 커짐에 따라 수동 작업에 따른 휴먼 에러와 관리 부담이 급증하는 문제에 직면했습니다.

The Solution

OpenTofu와 Terragrunt를 도입하여 약 1,500개의 리소스를 코드로 정의하고, PR 리뷰와 CI/CD 파이프라인을 통한 GitOps 기반 운영 체제를 구축했습니다. 특히 기존 리소스의 대량 import를 위한 자동화 스크립트와 웹 UI에서 HCL 코드를 추출하는 Chrome 확장 프로그램을 개발하고, 최종적으로 MCP 기반의 AI 에이전트를 Slack과 연결해 자연어 기반 인프라 관리를 구현했습니다.

The Result

모든 인프라 변경 이력이 투명하게 관리되고 Drift Check를 통해 수동 변경을 매일 감지할 수 있게 되었으며, AI 에이전트 도입으로 인프라 셀프서비스 환경을 구축하여 단순 반복 요청에 소요되던 시간을 획기적으로 단축했습니다.

Trade-off

단순한 인프라 변경도 코드 수정부터 머지까지의 절차를 반드시 거쳐야 하므로 초기에는 번거로움이 발생할 수 있으며, 팀 전체가 콘솔 직접 수정을 지양하는 엄격한 IaC 문화에 적응해야 하는 비용이 수반됩니다.

03

Key Concepts

Concept · 01

OpenTofu

HashiCorp Terraform의 오픈소스 포크 프로젝트로, 기존 Terraform의 기능을 유지하면서 오픈소스 라이선스 하에 인프라를 코드로 관리할 수 있게 해주는 도구입니다.

  • 기존 인프라 리소스를 HCL 코드로 선언하고 관리하는 기본 엔진으로 활용
  • Terraform 프로바이더와 높은 호환성을 바탕으로 사내 클라우드 서비스인 Verda와 연동
Concept · 02

Terragrunt

OpenTofu/Terraform을 더 얇고 효율적으로 사용할 수 있게 돕는 래퍼(Wrapper) 도구로, 코드 중복을 방지하고 구성을 계층화하는 데 특화되어 있습니다.

  • 환경별로 중복되는 모듈 호출이나 백엔드 설정을 root.hcl에 정의하여 DRY 원칙 실현
  • 7개 서비스의 복잡한 인프라 구조를 디렉토리 기반으로 체계적으로 관리
Concept · 03

Drift Check

코드로 정의된 인프라의 상태(Desired State)와 실제 클라우드 환경에 배포된 리소스의 상태(Actual State) 간의 차이를 감지하는 프로세스입니다.

  • 매일 자동 스캔을 실행하여 누군가 콘솔에서 수동으로 변경한 내역을 실시간 감지
  • 감지된 차이(Diff)를 Slack 알림으로 전송하여 인프라 형상 관리를 유지하는 안전장치로 사용