AWS Glue 작업 또는 AWS Glue 크롤러가 ‘VPC S3 endpoint validation failed for SubnetId’ 오류와 함께 실패합니다.
간략한 설명
다음 조건에 해당하는 경우 ‘VPC S3 endpoint validation failed for SubnetId’ 오류가 발생합니다.
AWS Glue는 AWS Glue 연결의 서브넷에 탄력적 네트워크 인터페이스를 생성하여 데이터 소스와 Amazon S3에 연결합니다. 탄력적 네트워크 인터페이스에는 서브넷 내 IP 주소 범위의 프라이빗 IP 주소가 할당됩니다. 퍼블릭 IP 주소가 없기 때문에 AWS Glue는 인터넷을 사용하여 VPC 내의 데이터 소스나 Amazon S3에 직접 연결할 수 없습니다. 자세한 내용은 데이터 스토어에 대한 네트워크 액세스 설정을 참조하십시오.
해결 방법
라우팅 테이블에 Amazon S3 VPC 게이트웨이 엔드포인트나 NAT 게이트웨이로의 경로가 있도록 AWS Glue 연결의 서브넷을 구성합니다. 자세한 내용은 오류: Could Not Find S3 Endpoint or NAT Gateway for subnetId in VPC을 참조하십시오.
AWS Glue 작업에서 퍼블릭 인터넷에 액세스해야 하는 경우 NAT 게이트웨이로 서브넷을 구성했는지 확인하십시오.
S3 VPC 게이트웨이 엔드포인트 설정
다음 단계를 완료하십시오.
- Amazon VPC 콘솔을 엽니다.
- 탐색 창에서 Endpoints(엔드포인트)를 선택합니다.
- Create endpoint(엔드포인트 생성)를 선택합니다.
- Service name(서비스 이름)에서 com.amazonaws.us-east-1.s3을 선택합니다.
참고: us-east-1을 자신의 AWS 리전으로 바꿉니다.
- Type(유형) 열에서 Gateway(게이트웨이)를 선택합니다.
- VPC에서 엔드포인트를 생성하려는 VPC를 선택합니다.
참고: Configure route tables(라우팅 테이블 구성)의 경우, S3 VPC 엔드포인트에 대한 경로가 자동으로 추가됩니다.
- Policy(정책)의 경우 기본 옵션인 Full Access(전체 액세스)를 유지합니다.
- Create endpoint(엔드포인트 생성)를 선택합니다.
자세한 내용은 게이트웨이 엔드포인트를 참조하십시오.
리소스 기반 정책을 사용하는 경우 AWS Glue 작업 또는 크롤러의 AWS Identity and Access Management(IAM) 역할이 필요한 S3 리소스에 액세스하도록 허용합니다.
NAT 게이트웨이 설정
NAT 게이트웨이를 설정하기 전에 탄력적 IP 주소를 할당해야 합니다.
또한 AWS Glue 연결에 사용하는 VPC에는 하나 이상의 퍼블릭 서브넷이 있어야 합니다. 자세한 내용을 보려면 예시: 프라이빗 서브넷 및 NAT에 서버가 있는 VPC를 참조하십시오.
다음 단계를 완료하십시오.
- Amazon VPC 콘솔을 엽니다.
- 탐색 창에서 NAT gateways(NAT 게이트웨이)를 선택합니다.
- Create NAT gateway(NAT 게이트웨이 생성)를 선택합니다.
- 이름에 생성하려는 게이트웨이의 이름을 입력합니다.
- Subnet(서브넷)의 경우, AWS Glue 연결에서 지정한 VPC의 퍼블릭 서브넷을 선택합니다.
- Connectivity type(연결 유형)의 경우 기본 옵션인 Public(퍼블릭)을 유지합니디.
- Create NAT gateway(NAT 게이트웨이 생성)를 선택합니다.
게이트웨이를 설정한 후 AWS Glue 연결의 서브넷과 연결된 라우팅 테이블을 수정합니다. 그런 다음 NAT 게이트웨이에 경로를 추가합니다.
다음 단계를 완료하십시오.
- 탐색 창에서 Route tables(라우팅 테이블)을 선택합니다.
- 수정하려는 서브넷과 연결된 라우팅 테이블을 선택합니다.
- Actions(작업)을 선택한 다음, Edit routes(경로 편집)를 선택합니다.
- Edit routes(경로 편집) 페이지에서 Add route(경로 추가)를 선택합니다.
- 모든 서브넷 트래픽을 NAT 게이트웨이로 전송하도록 새 경로를 구성합니다.
목적지에 0.0.0.0/0을 입력합니다.
Target(대상)에서 NAT gateway(NAT 게이트웨이)를 선택한 다음 NAT 게이트웨이를 선택합니다.
- Save changes(변경 사항 저장)를 선택합니다.
- AWS Glue 연결을 테스트합니다.
- AWS Glue 작업 또는 AWS Glue 크롤러를 다시 실행합니다.