토픽 25 / 192·애자일과 DevOps
IaC (Infrastructure as Code)
IaC (Infrastructure as Code)
인프라 구성(서버, 네트워크, 스토리지)을 코드로 정의하고 버전 관리하여 자동 프로비저닝하는 방법론
접근 방식
- •선언적(Declarative): 최종 상태를 정의, 도구가 현재→목표 상태 변환. Terraform, CloudFormation
- •명령적(Imperative): 수행 절차를 순서대로 기술. Ansible(절차적 측면), Pulumi
주요 도구
- •Terraform: 멀티클라우드, HCL 언어, 상태 파일 관리, Plan/Apply
- •Ansible: 에이전트리스(SSH), YAML 플레이북, 구성 관리 + 배포
- •Pulumi: 범용 프로그래밍 언어(Python, TS) 사용, Terraform 대안
장점: 재현성(동일 환경), 버전 관리, 자동화, 드리프트 감지
단점: 학습 곡선, 상태 관리 복잡, 시크릿 관리 필요
비교: Terraform(선언적/멀티클라우드) vs Ansible(명령적/구성관리) vs Pulumi(범용언어)
연관: DevOps, CI/CD, 클라우드, 컨테이너