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

최종 업데이트 날짜: 2021년 8월 9일

AWS Glue 작업이 실패하고 오류 "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 연결을 AWS Glue 작업이나 AWS Glue 크롤러와 함께 사용 중입니다.
  • AWS Glue 연결에 구성된 서브넷에 Amazon Simple Storage Service(Amazon 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 게이트웨이로 이동하는 경로가 있어야 합니다. 자세한 내용은 오류: S3 엔드포인트를 찾을 수 없거나 VPC의 subnetId에 대한 NAT 게이트웨이를 찾을 수 없음을 참조하세요. AWS Glue 작업이 퍼블릭 인터넷에 액세스해야 하는 경우, 서브넷을 NAT 게이트웨이를 사용하여 구성하고 이를 확인합니다.

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

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

  1. [Amazon VPC 콘솔(Amazon VPC console)]을 엽니다.
  2. 탐색 창에서 [엔드포인트(Endpoints)]를 선택합니다.
  3. [엔드포인트 생성(Create Endpoint)]을 선택합니다.
  4. [서비스 이름(Service Name)]으로 com.amazonaws.us-east-1.s3를 선택합니다. 유형 열에 Gateway라고 표시되어 있어야 합니다.
    참고:
    us-east-1을 선택한 AWS 리전으로 바꿔야 합니다.
  5. [VPC]에는 엔드포인트를 생성하고자 하는 VPC를 선택합니다.
  6. [라우팅 테이블 구성(Configure route tables)]의 경우, S3 VPC 엔드포인트로 이동하는 경로가 자동으로 추가됩니다.
  7. [정책(Policy)]의 경우, 기본 옵션인 [전체 액세스(Full Access)]를 그대로 두면 됩니다.
  8. [엔드포인트 생성(Create Endpoint)]을 선택합니다.

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

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

NAT 게이트웨이 설정

NAT 게이트웨이를 설정하려면 다음 단계를 따르세요.

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

  1. [Amazon VPC 콘솔(Amazon VPC console)]을 엽니다.
  2. 탐색 창에서 [NAT Gateways]를 선택합니다.
  3. [NAT 게이트웨이 생성(Create NAT gateway)]을 선택합니다.
  4. [이름(Name)]으로 생성하고자 하는 게이트웨이 이름을 입력합니다.
  5. [서브넷(Subnet)]에는 AWS Glue 연결에서 지정한 VPC의 퍼블릭 서브넷을 선택합니다.
  6. [연결 유형(Connectivity type)]의 경우, 퍼블릭 NAT 게이트웨이를 생성하기 위한 기본 옵션 [퍼블릭(Public)]을 그대로 두면 됩니다.
  7. [NAT 게이트웨이 생성(Create NAT gateway)]을 선택합니다.

게이트웨이를 설정한 뒤에는 다음과 같은 단계를 따라야 합니다.

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

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

  1. 탐색 창에서 [라우팅 테이블(Route Tables)]을 선택합니다.
  2. 수정하고자 하는 서브넷과 연결된 라우팅 테이블을 선택합니다.
  3. [작업(Actions)]을 선택한 다음 [경로 편집(Edit Routes)]을 선택합니다.
  4. [경로 편집(Edit routes)] 페이지에서 [경로 추가(Add route)]를 선택합니다.
  5. 표시되는 새 경로에서 다음과 같은 작업을 수행합니다.
    [대상(Destination)]에 0.0.0.0/0을 입력합니다.
    [대상(Target)]으로 [NAT 게이트웨이(NAT Gateway)]를 선택한 다음 생성한 NAT 게이트웨이를 선택합니다. 참고: 이러한 옵션을 선택해야만 인터넷 바운드 트래픽과 같은 서브넷 트래픽이 모두 NAT 게이트웨이로 전송됩니다.
  6. [변경 사항 저장(Save changes)]을 선택합니다.

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


이 문서가 도움이 되었나요?


결제 또는 기술 지원이 필요하세요?