Inflearn brand logo image

인프런 커뮤니티 질문&답변

kyun9151님의 프로필 이미지
kyun9151

작성한 질문수

바로쓰는 CI/CD on EKS

[시연] EKS Provisioning

S3버킷

작성

·

21

0

궁금한게 S3버킷 이름도 변경해야하나요..? 테라폼적용하는 과정에서 버킷 이름 충돌난다는 에러가 발생해서요

답변 3

0

Dewey Hong님의 프로필 이미지
Dewey Hong
지식공유자

좋은 질문 감사합니다! 🙌
제 강의에서 제공드린 모든 자원은 클러스터 이름을 기반으로 자동 생성되도록 되어 있습니다.

  • 같은 이름의 클러스터를 여러 분이 만들어도 대부분 문제는 없지만, AWS S3 버킷 이름은 전 세계적으로 고유해야 하기 때문에 그대로 사용하실 수 없습니다.

  • 해결 방법은 두 가지가 있습니다:

    1. project 기본값 변경

      project=topzone-eks
      =>
      project=doohee-eks
      
    2. 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

kyun9151님의 프로필 이미지
kyun9151
질문자

전체적으로 안되는 거 같은데 문제가 다음과 같은거 같아요 .... 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를 활용하면 충돌을 피할 수 있습니다.

관련된 정보와 유사한 문제 해결에 대한 자세한 답변은 다음의 링크를 참고하시면 도움이 될 것입니다:

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

kyun9151님의 프로필 이미지
kyun9151

작성한 질문수

질문하기