- 테라폼 HCL 구조는 Block 단위로 구성되며, 다양한 Block Type에 대해 살펴보겠습니다.
**<BLOCK TYPE> "<BLOCK LABEL>" "<BLOCK LABEL>" {
# Block body
<IDENTIFIER> = <EXPRESSION> # Argument
}**
1) Provider
- 테라폼은 2000개가 넘는 다양한 Provider 플러그인을 사용하여 API와 상호 작용합니다.
- 테라폼으로 생성할 인프라 공급자를 지정하기 위해 Provider Block을 통해 선언합니다.
provider "aws" {
access_key = "MY_ACCESS_KEY_HERE"
secret_key = "MY_SECRET_KEY_HERE"
region = "ap-northeast-2"
}
2) Resource
- 테라폼을 통해 생성할 자원을 생성하기 위해 Resource Block을 통해 선언합니다.
- Resource 유형은 “
Provider_resource
” 형태로 표현하고, 테라폼 내에서 사용할 이름을 지정합니다.
- 해당 Provider에서 사용할 수 있는 Agument를 1개 이상 정의합니다.
resource "aws_instance" "example" {
ami = "ami-01711d925a1e4cc3a"
instance_type = "t2.micro"
}
- 위 예시 코드를 보면 Resource 유형은 AWS 공급자의 EC2 인스턴스이며(aws_instance) 이름은 “example” 입니다.
- ami와 instance_type에 대한 Argument를 선언하였습니다.
3) Variable