반응형
Terraform & Configuration file
- 테라폼은
IaC(Infra as a Code)
Tool로구성 파일(configuration file)
을선언적(declarative)
으로 작성함으로서 인프라를 관리 할 수 있게 해줍니다. - 구성 파일은 테라폼에게 설치할 플러그인, 생성할 인프라, 가져올 데이터 등을 알려줍니다.
- 구성 파일은 테라폼 네이티브 언어인
HCL(Hashicorp Configuration Language)
과JSON
으로 작성 할 수 있습니다. 각각.tf
,.tf.json
의 확장자를 갖으며 평문(plain text)으로 저장됩니다. - 테라폼은
CDKTF(Cloud Development Kit for Terraform)
을 지원합니다. Typescript, Python, Java, Go, C#으로 인프라를 정의하면 CDKTF는 JSON으로 작성된 테라폼 구성 파일로 변환합니다.
HCL(Hashicorp Configuration Language)
HCL은
Arguments
와Blocks
이라는 2가지 중심 구문(key syntax)으로 이루어져 있습니다.Arguments
일종의 Attribute를 의미합니다.
image_id = "abc123"
Blocks
블럭은 다른 컨텐츠의 컨테이너로
Blcok Type
과 Block Type에 따른Block Label
으로 구성됩니다.블럭의 본문(Block body)
는{
,}
로 구분되며 Arguments과 Blocks이 중첩되어 있을 수 있습니다.<BLOCK TYPE> "<BLOCK LABEL>" "<BLOCK LABEL>" { # Block body <IDENTIFIER> = <EXPRESSION> # Argument <NESTED BLOCK> { <IDENTIFIER> = <EXPRESSION> # Argument } }
Block Type은
resource
,data
,provider
,terraform
,variable
등이 될 수 있습니다.
Style Conventions
- 테라폼은 다른 사용자가 작성한 파일이나 모듈관의 일관성을 위해 권장되는
스타일 컨벤션(style conventions)
이 존재합니다.terraform fmt
를 실행하면 스타일 컨벤션을 손쉽게 적용할 수 있습니다.
참고
반응형
'IaC > Terraform' 카테고리의 다른 글
[Terraform] Variable 입력 변수 (0) | 2022.09.03 |
---|---|
[Terraform] Error: Incompatible provider version (0) | 2022.08.23 |
[Terraform] Provider, Resource, Data Source, Variable, Output, Locals, Module (0) | 2022.08.11 |
[TF] terraform으로 aws ec2 만들기 (0) | 2021.11.05 |
[IaC/TF] Terraform 설치 (0) | 2021.11.04 |