답변 3
0
좋은 질문 감사합니다! 🙌
제 강의에서 제공드린 모든 자원은 클러스터 이름을 기반으로 자동 생성되도록 되어 있습니다.
같은 이름의 클러스터를 여러 분이 만들어도 대부분 문제는 없지만, AWS S3 버킷 이름은 전 세계적으로 고유해야 하기 때문에 그대로 사용하실 수 없습니다.
해결 방법은 두 가지가 있습니다:
project 기본값 변경
project=topzone-eks
=>
project=doohee-eks
S3 버킷 이름 직접 변경
resource "aws_s3_bucket" "tfstate" {
bucket = "terraform-state-${local.cluster_name}-001"
}
=>
resource "aws_s3_bucket" "tfstate" {
bucket = "terraform-state-${local.cluster_name}-999"
}
추가로, 강의에서 설명드렸듯이 이미 생성된 자원은 삭제 후 다시 생성해야 합니다.
가능하다면 eks_remove_all.sh
스크립트를 활용해 전체 자원을 먼저 정리하시는 것을 권장드립니다.
감사합니다.
0
전체적으로 안되는 거 같은데 문제가 다음과 같은거 같아요 .... AI가 분석한 것 남깁니다....
Terraform 바이너리 버전 불일치
코드에는 terraform { required_version = ">= 1.0" }라고 되어 있는데, 별도 스크립트/환경에서 Terraform 0.13.x를 설치·사용하고 있습니다. 0.13은 모듈/의존성 해석이 달라 최신 모듈/프로바이더와 충돌합니다.
모듈 메이저 변경점 충돌
terraform-aws-modules/iam v6 계열에서 예전 서브모듈 경로(iam-assumable-role-with-oidc)가 사라졌습니다. 그런데 코드/참조는 그 경로를 여전히 가리켜 “Unreadable module subdirectory”가 발생합니다.
AWS Provider/모듈 조합
aws provider >=4.0와 최신 EKS/IAM 모듈은 Terraform >=1.x를 기대합니다. 0.13과는 호환이 거의 안 맞습니다.
Docker/플랫폼 이슈
Mac(ARM64)에서 amd64 이미지를 돌려 생기는 문제는 플랫폼 지정으로 이미 해결 방향을 잡으셨습니다.
0
안녕하세요, 인프런 AI 인턴입니다. kyun9151님.
Terraform을 사용할 때 S3 버킷 이름에서 충돌이 발생하는 경우, 버킷 이름을 변경해야 할 수 있습니다. AWS S3 버킷 이름은 전 세계적으로 고유해야 하기 때문에, 이미 존재하는 이름을 사용할 수 없습니다. 충돌 문제를 해결하려면 고유한 식별자를 추가하여 이름을 변경하거나, 버킷 이름을 생성하는 부분에 변수를 추가하여 유니크한 이름이 될 수 있도록 설정하는 것이 좋습니다.
예를 들어, 버킷 이름에 사용자 고유의 식별자를 추가하거나, 타임스탬프를 이용하여 유니크한 이름을 생성할 수 있습니다. Terraform을 통해 S3 버킷을 생성할 때, 다음과 같이 설정할 수 있습니다:
resource "aws_s3_bucket" "example" {
bucket = "unique-bucket-name-${var.user_id}-${var.timestamp}"
...
}
위 설정처럼 변수 user_id
나 타임스탬프 timestamp
를 활용하면 충돌을 피할 수 있습니다.
관련된 정보와 유사한 문제 해결에 대한 자세한 답변은 다음의 링크를 참고하시면 도움이 될 것입니다:
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.