AWS Glue 오류 “VPC S3 endpoint validation failed for SubnetId” 문제를 해결하려면 어떻게 해야 하나요?

3분 분량
0

“JobRunId:jr_xx failed to execute with exception VPC S3 endpoint validation failed for SubnetId. Reason: Could not find S3 endpoint or NAT gateway for subnetId”라는 오류와 함께 AWS Glue 작업이 실패했습니다. -또는- “VPC S3 endpoint validation failed for SubnetId. Reason: Could not find S3 endpoint or NAT gateway for subnetId”라는 오류와 함께 AWS Glue Crawler가 실패했습니다.

간략한 설명

다음 조건에 모두 해당하는 경우, 이 오류가 발생합니다.

  • AWS Glue 작업 또는 AWS Glue 크롤러와 AWS Glue 연결을 사용하고 있습니다.
  • AWS Glue 연결을 위해 구성된 서브넷에는 Amazon Simple Storage Service(S3) Virtual Private Cloud(VPC) 엔드포인트 또는 NAT 게이트웨이가 설정되어 있지 않습니다.

AWS Glue는 AWS Glue 연결에 지정된 서브넷에 탄력적 네트워크 인터페이스를 생성합니다. 이러한 탄력적 네트워크 인터페이스는 데이터 소스와 Amazon S3에 연결하는 데 사용됩니다. 탄력적 네트워크 인터페이스에는 지정된 서브넷 내 IP 주소 범위의 프라이빗 IP 주소가 할당됩니다. 퍼블릭 IP 주소를 사용하지 않기 때문에 AWS Glue는 인터넷을 직접 사용하여 VPC 내의 데이터 소스 또는 Amazon S3에 연결할 수 없습니다. 자세한 내용은 데이터 스토어에 대한 네트워크 액세스 설정을 참조하세요.

해결 방법

AWS Glue 연결을 위해 구성된 서브넷에 Amazon S3 VPC 게이트웨이 엔드포인트 또는 서브넷의 라우팅 테이블에 NAT 게이트웨이에 대한 경로가 있는지 확인하세요. 자세한 내용은 Error: Could Not Find S3 Endpoint or NAT Gateway for subnetId in VPC을 참조하세요. AWS Glue 작업에서 퍼블릭 인터넷에 액세스해야 하는 경우, 서브넷이 NAT 게이트웨이로 구성되어 있는지 확인하세요.

S3 VPC 게이트웨이 엔드포인트 설정

S3 VPC 게이트웨이 엔드포인트를 설정하려면, 다음 단계를 따르세요.

  1. Amazon VPC 콘솔을 엽니다.
  2. 탐색 창에서 엔드포인트를 선택합니다.
  3. 엔드포인트 생성을 선택합니다.
  4. 서비스 이름com.amazonaws.us-east-1.s3를 선택합니다. 유형 열에 게이트웨이라고 표시되는지 확인하세요.
    참고:
    us-east-1을 선택한 AWS 리전으로 바꿔야 합니다.
  5. VPC에서 엔드포인트를 생성하려는 VPC를 선택합니다.
  6. 라우팅 테이블 구성의 경우, S3 VPC 엔드포인트에 대한 경로가 자동으로 추가됩니다.
  7. 정책의 경우 기본 옵션인 전체 액세스를 그대로 두세요.
  8. 엔드포인트 생성을 선택합니다.

자세한 내용은 게이트웨이 엔드포인트를 참조하세요.

보다 제한적인 정책을 설정하는 경우, AWS Glue 작업 또는 AWS Glue 크롤러의 AWS Identity and Access Management(IAM) 역할이 필요한 S3 버킷 및 객체에 액세스할 수 있도록 허용해야 합니다.

NAT 게이트웨이 설정

참고: 탄력적 IP 주소를 생성해야 NAT 게이트웨이를 설정할 수 있습니다. 할당에 대한 자세한 내용은 탄력적 IP 주소 할당을 참조하세요.

NAT 게이트웨이를 설정하려면, 다음과 같이 하세요.

참고: AWS Glue 연결에 사용되는 VPC에 하나 이상의 퍼블릭 서브넷이 있어야 합니다. 더 자세한 내용을 보려면, 퍼블릭 및 프라이빗 서브넷이 있는 VPC(NAT)를 참조하세요.

  1. Amazon VPC 콘솔을 엽니다.
  2. 탐색 창에서 NAT 게이트웨이를 선택합니다.
  3. NAT 게이트웨이 생성을 선택합니다.
  4. 이름에 생성하려는 게이트웨이의 이름을 입력합니다.
  5. 서브넷의 경우, AWS Glue 연결에서 지정한 VPC의 퍼블릭 서브넷을 선택합니다.
  6. 연결 유형의 경우, 기본 옵션인 퍼블릭을 그대로 두고 퍼블릭 NAT 게이트웨이를 생성할 수 있습니다.
  7. NAT 게이트웨이 생성을 선택합니다.

게이트웨이를 설정한 후에는 다음을 수행해야 합니다.

  • AWS Glue 연결에 지정된 서브넷과 연결된 라우팅 테이블을 수정합니다.
  • 생성된 NAT 게이트웨이에 경로를 추가합니다.

라우팅 테이블을 수정하고 NAT 게이트웨이에 경로를 추가하려면 다음과 같이 하세요.

  1. 탐색 창에서 라우팅 테이블을 선택합니다.
  2. 수정하려는 서브넷과 연결된 라우팅 테이블을 선택합니다.
  3. 작업을 선택한 다음, 경로 편집을 선택합니다.
  4. 경로 편집 페이지에서 경로 추가를 선택합니다.
  5. 나타나는 새 경로에서 다음을 수행하세요.
    대상 주소0.0.0.0/0을 입력합니다.
    대상에서 NAT 게이트웨이를 선택한 다음, 생성한 NAT 게이트웨이를 선택합니다. 참고: 이러한 옵션을 선택해야만 인터넷 바운드 트래픽과 같은 서브넷 트래픽이 모두 NAT 게이트웨이로 전송됩니다.
  6. 변경 사항 저장을 선택합니다.

서브넷에서 S3 VPC 엔드포인트 또는 NAT 게이트웨이를 설정한 후 각 AWS Glue 연결을 테스트하세요. 테스트 연결에 성공한 후 AWS Glue 작업 또는 AWS Glue 크롤러를 다시 실행합니다.


관련 정보

Amazon S3용 Amazon VPC 엔드포인트

AWS 공식
AWS 공식업데이트됨 2년 전