250x250
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- 스프링 폼
- CHECK OPTION
- 연결리스트
- 동적sql
- 지연로딩
- PS
- 유니크제약조건
- SQL프로그래밍
- 힙
- dfs
- 백트래킹
- querydsl
- 일대다
- eager
- 다대일
- JPQL
- 연관관계
- 데코레이터
- 다대다
- 비관적락
- 이진탐색
- shared lock
- 스토어드 프로시저
- fetch
- BOJ
- 낙관적락
- execute
- FetchType
- 즉시로딩
- exclusive lock
Archives
- Today
- Total
흰 스타렉스에서 내가 내리지
Terraform 에서 모듈 간 데이터를 전달 예시 본문
728x90
# 개요
모듈 간 데이터를 전달하는 것을 통해 코드를 재사용 가능케 하고 인프라 구성을 보다 효율적으로 관리할 수 있다.
# 예시
1. VPC 모듈과 서브넷 모듈
먼저, VPC 를 생성하는 모듈에서 VPC 의 ID 를 output 으로 정의하고, 이 값을 서브넷을 생성하는 모듈에서 받아서 사용한다고 가정해보자.
VPC 모듈 (vpc/main.tf)
resource "aws_vpc" "main" {
cidr_block = "10.0.0.0/16"
}
output "vpc_id" {
value = aws_vpc.main.id
}
위 코드는 VPC 를 생성하고, VPC 의 ID 를 output 으로 노출시킨다.
이 output 값을 다른 모듈에서 참조할 수 있다.
서브넷 모듈 (subnet/main.tf)
resource "aws_subnet" "main" {
vpc_id = var.vpc_id
cidr_block = "10.0.1.0/24"
}
variable "vpc_id" {
description = "The ID of the VPC where the subnet will be created"
type = string
}
이 서브넷 모듈은 `vpc_id` 라는 변수를 기대하고 있으며, 이를 통해 서브넷을 생성할 VPC 를 저장하게 된다.
상위 Terraform 구성 파일 (main.tf)
이제 이 두 모듈을 함께 사용하는 상위 구성 파일을 작성한다.
module "vpc" {
source = "./vpc"
}
module "subnet" {
source = "./subnet"
vpc_id = module.vpc.vpc_id
}
여기서 `module.vpc.vpc_id` 는 VPC 모듈에서 정의한 `output` 을 참조하고 있다.
VPC 모듈에서 `output` 으로 노출된 VPC ID 가 서브넷 모듈에서 사용되면서, VPC 와 서브넷이 서로 연결되게 된다.
# 흐름 요약
- VPC 모듈 : VPC 를 생성하고, 해당 VPC 의 ID 를 output 으로 설정한다.
- 서브넷 모듈 : VPC ID 를 인자로 받아 서브넷을 생성할 때 그 VPC 에 연결되도록 설정한다.
- 상위 구성 파일 : VPC 모듈에서 생성된 VPC ID 를 서브넷 모듈에 전달하여 VPC 와 서브넷이 연결된 인프라를 구성한다.
'DevOps' 카테고리의 다른 글
Terraform output - 리소스의 속성이나 값을 외부로 노출 (0) | 2024.09.20 |
---|---|
Terraform Functions - 테라폼에서 사용하는 함수 (1) | 2024.09.20 |
Terraform variables - 코드를 효율적으로 쓰기 (0) | 2024.09.20 |
클라우드 엔지니어와 DevOps 엔지니어의 차이점은? (1) | 2024.09.16 |
tfstate 파일이 실제 인프라와 일치하지 않을 때 - import (1) | 2024.09.06 |