본문 바로가기

♻ Terraform(테라폼)/Terraform Modules

Terraform 리소스 값을 사용하기 위한 Module간 관계 정리

728x90
반응형

코드는 아래와 같다.

# 사용되는 Flow를 블로그에 정리.
module "subnet" {
  source = "./modules/subnet"  # 서브넷 모듈 소스 경로
  vpc_id = module.vpc.vpc_id  # VPC 모듈에서 VPC ID 가져오기
  route_table_id = module.vpc.route_table_id  # VPC 모듈에서 라우트 테이블 ID 가져오기
}

module.vpc.route_table_idmodule.vpc.vpc_id 값을 가져오는 흐름은 다음과 같습니다:

  1. modules/vpc/main.tf 파일에서 VPC와 라우트 테이블 리소스 정의
    • aws_vpc.main 리소스는 VPC를 생성하고, aws_route_table.main 리소스는 라우트 테이블을 생성합니다.
    • 이 리소스들은 각각의 ID를 출력 변수로 정의합니다 (vpc_idroute_table_id).
  2. 출력 변수 정의
    • modules/vpc/main.tf 파일에서 output 블록을 사용하여 aws_vpc.main.idaws_route_table.main.id 값을 출력 변수로 정의합니다.
    • output "vpc_id" { value = aws_vpc.main.id } output "route_table_id" { value = aws_route_table.main.id }
  3. main.tf 파일에서 모듈 호출
    • main.tf 파일에서 module "vpc" 블록을 사용하여 modules/vpc 모듈을 호출합니다.
    • 이 모듈 호출을 통해 modules/vpc/main.tf 파일에서 정의한 출력 변수들을 사용할 수 있게 됩니다.
  4. 모듈 출력 변수 사용
    • main.tf 파일에서 module.vpc.vpc_idmodule.vpc.route_table_id를 사용하여 modules/vpc 모듈에서 정의한 출력 변수 값을 가져옵니다.
    • module "vpc" { source = "./modules/vpc" } module "subnet" { source = "./modules/subnet" vpc_id = module.vpc.vpc_id route_table_id = module.vpc.route_table_id }

이 흐름을 통해 module.vpc.vpc_idmodule.vpc.route_table_id 값이 modules/vpc 모듈에서 정의된 출력 변수 값을 참조하게 됩니다.

 

- 끝 -

728x90
반응형