본문 바로가기

♻ Terraform(테라폼)/Terraform Modules

모듈을 활용한 재사용 가능한 인프라 생성

테라폼의 핵심은 바로 모듈을 활용한 재사용 이라고 할 수 있다.

- 모듈의 간단한 사용 방법은 아래와 같다.

만약 Root 폴더에 asg.tf 라는 파일이 존재하고 Root 폴더에 asg.tf에 정의된 값을 활용하여 module.asg 폴더 안에 main.tf에 정의된 리소스를 실행시킨다고 가정할 경우 아래의 flow를 따라서 동작한다. (매우 간단하지만 실제로 해보지 않으면 헷갈림, 머리가 나빠서 그런거 같기도...)

Root폴더의 실행파일.tf → 실행하는 Resource의 variables.tf와 맵핑 → 실행하는 Resource의 main.tf의 var.{resource_name} 으로 선언 되어 있어야 한다.

- 그리고 asg.tf 파일의 내용을 보면 아래와 같다.

module "asg" {
  source              = "../module.asg"
  private_subnet_id   = module.vpc.private_subnet_id
  private_subnet_id-a = module.vpc.private_subnet_id-a
  public_subnet       = module.vpc.public_subnet_id
  vpc_id              = module.vpc.vpc_id
}

- 여기서 반복적인 이야기 이지만, module.vpc.private_subnet_id 값을 위의 코드처럼 사용하기 위해서는 module.vpc 폴더의 output.tf에 해당 리소스가 사전에 정의 되어 있어야 한다.

- 아래의 그림은 모듈에 대한 간단한 설명을 그림으로 표현한 것이다.