Terraform에서 사용하는 HCL의 기본 형태는 다음과 같다.
resource "aws_vpc" "main" {
cidr_block = "10.0.0.0/16"
tags = {
Name = "prod-vpc"
}
}
resource: terraform의 어떤 요소를 사용할 것인지를 정의
aws_vpc: provider가 바라보고 있는 서비스의 상품
위의 변수는 aws에서 제공하는 VPC를 만들기 위한 terraform 코드라는 것을 알 수 있다.
main: terraform 코드 내에서 서비스에 대한 식별자
이는 terraform 코드 내에서 서로의 형상에 접근을 하기 위한 하나의 식별자에 해당한다.
예) 위의 VPC의 id에 접근 ⇒ aws_vpc.main.ip
예) 위의 VPC의 arn 접근 ⇒ aws_vpc.main.arn
위의 형태를 기본으로 하여서 가각의 형상을 쉽게 만들거나 서로 연결하도록 할 수 있다.
resource "aws_key_pair" "bastion" {
key_name = "bastion"
public_key = <public_key>
}