Infrastructure as Code(코드형 인프라)는
서버, 네트워크, 데이터베이스 등 인프라 리소스를 수동으로 설정하지 않고, 코드로 정의하여
버전 관리와 자동화가 가능하도록 하는 개념이다.
이전에는 서버를 만들려면 콘솔에서 클릭하고 설정해왔지만
IaC를 사용하게되면 YAML, JSON, HCL 같은 파일에 서버 설정 명시 후
실행하면 인프라가 구성됨.
자동화
반복적인 수동 설정 작업 없이 인프라를 한 번에 구축 가능
버전 관리
코드처럼 Git 등으로 변경 사항 추적 가능
일관성
같은 코드로 여러 환경(dev, staging, prod)을 동일하게 재현 가능
협업 용이
인프라 설정을 코드로 공유하고 리뷰 가능
resource "aws_instance" "web" {
ami = "ami-0c55b159cbfafe1f0"
instance_type = "t2.micro"
}
위 예시 코드는 AWS에 t2.micro 타입의 EC2 인스턴스를 생성하는 Terraform 구성 코드로
• resource는 만들 리소스의 종류 (EC2 인스턴스),
• "aws_instance"는 AWS의 인스턴스 리소스
• "web"은 이 리소스의 논리적 이름
• ami는 사용할 Amazon 머신 이미지 ID,
• instance_type은 인스턴스의 스펙(t2.micro는 프리 티어에서 자주 사용하는 스펙)
이 파일을 terraform apply 명령어로 실행하면,
Terraform이 AWS에 API 요청을 보내 실제 인프라를 자동으로 생성하게 된다.