Terraform 종속성 명시하기

링키텍트·2025년 3월 31일

Terraform

목록 보기
2/2
post-thumbnail

에러

Terraform을 통해 EKS Cluster 생성 및 Add-on 설치 시에 아래와 같이 내가 방금 Terraform을 통해 생성한 EKS Cluster가 없다는 ERROR가 발생하여, Add-on 설치를 실패했다는 로그가 나온다.

Error: creating EKS Add-On (alin-test-cluster:vpc-cni): ResourceNotFoundException: No cluster found for name: alin-test-cluster.
│ {
│ RespMetadata: {
│ StatusCode: 404,
│ RequestID: "27b9e182-4dc9-4cd7-a2e9-efaa0a858699"
│ },
│ ClusterName: "alin-test-cluster",
│ Message_: "No cluster found for name: alin-test-cluster."
│ }

│ with aws_eks_addon.vpc_cni,
│ on main.tf line 39, in resource "aws_eks_addon" "vpc_cni":
│ 39: resource "aws_eks_addon" "vpc_cni" {

에러 원인

내 코드에서 Add-on 설치 부분을 보면 단순히 Cluster와 어떤 Add-on인지에 대해서만 명시되어 있다.
Terraform을 통한 EKS Cluster가 생성 되기 전 Add-on 설치가 먼저 이루어지는 바람에 Add-on 설치가 실패된 것이다.

###############################################################################
# EKS Add-on
################################################################################
resource "aws_eks_addon" "vpc_cni" {
  cluster_name  = var.eks_cluster_name
  addon_name    = "vpc-cni"
  addon_version = var.vpc_cni_version

}

해결 방법

depens_on 을 사용하여 EKS Cluster가 생성 된 후 Add-on이 설치될 수 있도록 한다.

###############################################################################
# EKS Add-on
################################################################################
resource "aws_eks_addon" "vpc_cni" {
  cluster_name  = var.eks_cluster_name
  addon_name    = "vpc-cni"
  addon_version = var.vpc_cni_version
  depends_on  = [aws_eks_cluster.eks_cluster]

}

Terraform 생성 로그를 보면 depens_on을 사용하여 종속성을 명시해준 이후에 Cluster 생성 후 Add-on이 설치되는 것을 확인할 수 있었다.



depends_on 에서 []의 의미

depens_on 이라는 블록을 사용하게 되면 Value에 중괄호 []를 사용하여 작성하게 되는데요.
이 중괄호는 여러 개의 리소스에 의존할 수 있기 때문에 리스트(Slice) 형태로 입력 받습니다.

depends_on = [
  aws_eks_cluster.eks_cluster,
  aws_iam_role.eks_role
]

위 코드와 같이 여러 개의 의존성을 가질 수 있다라고 알고 있으면 됩니다.

0개의 댓글