728x90
[Terraform] 의존성 관리 (depends_on)
Terraform은 선언형이기 때문에, 리소스에 종속성이 있으면
Terraform 엔진이 파악 후 순서대로 작업을 진행한다.
그러나 종속성이 없는 리소스지만, 종속성 선언이 필요한 경우엔 depends_on 인수를 사용하여
명시적으로 종속성을 선언해줄 수 있다.
암시적 종속성
- 눈으로 보이지 않는 종속성
- 예를 들어 VPC를 사용하는 EC2 인스턴스를 선언하면, 암시적으로 VPC를 먼저 생성 후 인스턴스를 생성한다.
명시적 종속성
- 사용자가 명시적으로 선언하는 종속성
- 예를 들어 s3 버킷과 인스턴스는 관계가 없으므로, s3 객체에 접근을 해 데이터를 가져와야 할 경우 명시적으로 종속을 선언해줘야 한다.
🔎 depends_on
명시적 종속성을 선언하는 경우 depends_on 을 사용하여 명시한다.
아래와 같이 NAT를 생성하기 전 IGW 생성이 선행되어야하기 때문에 명시적으로 종속성을 선언해준다.
resource "aws_eip" "eip" {
vpc = true
}
resource "aws_nat_gateway" "nat" {
allocation_id = aws_eip.eip.id
subnet_id = aws_subnet.subnet_a.id
tags = {
Name = "NAT-gw"
}
depends_on = [aws_internet_gateway.gw]
}
참고
반응형
'📚 IaC > Terraform' 카테고리의 다른 글
[Terraform] 데이터 소스(Data Source) (0) | 2023.09.19 |
---|---|
[Terraform] RDS 생성 (0) | 2023.07.28 |
[Terraform] LoadBalancer 생성 (0) | 2023.07.04 |
[Terraform] Key-Pair 생성 후 EC2 인스턴스 SSH 접속 (0) | 2023.07.03 |
[Terraform] AWS Custom VPC 생성 (0) | 2023.06.28 |