코드형 인프라 이란
코드를 통한 인프라 관리
**Infrastructure as Code(IaC)**는 수동 구성 대신 기계가 읽을 수 있는 구성 파일을 사용하여 인프라를 관리하고 배포하는 접근 방식입니다.
장점
- 버전 관리 — Git의 인프라, 변경 이력
- 재현성 — 어디서나 동일한 환경
- 자동화 — 수동 작업 없이 빠른 배포
- 문서화 — 코드가 문서 역할
IaC 도구
- Terraform — 클라우드 중립, 선언적
- AWS CloudFormation — AWS용
- Pulumi — 일반 언어로 IaC (Python, TypeScript)
- Ansible — 구성 관리
선언적 vs 명령적
- 선언적 (Terraform): 원하는 상태 기술
- 명령적 (스크립트): 달성 단계 기술
실천 방법
- 원격 스토리지에 상태 저장
- 코드 재사용을 위한 모듈
- 자동 적용을 위한 CI/CD
- 정책 및 검사 (OPA, Sentinel)
Terraform 예제
resource "aws_instance" "web" {
ami = "ami-0c55b159cbfafe1f0"
instance_type = "t2.micro"
}