AWS Glue 개발 엔드포인트를 생성하거나 연결할 때 발생하는 문제를 해결하려면 어떻게 해야 합니까?

최종 업데이트 날짜: 2019년 9월 24일

AWS Glue 개발 엔드포인트를 생성하거나 연결하는 데 문제가 있습니다.

간략한 설명

AWS Glue 개발 엔드포인트와 관련된 대부분의 문제는 다음 범주 중 하나에 속합니다. 다음 순서로 문제 해결:

  1. AWS Identity and Access Management(IAM) 역할 및 권한
  2. 네트워킹
  3. SSH 키

​해결 방법

IAM 역할 및 권한

  1. AWSGlueServiceRole이 IAM 정책에 연결되어 있고 정책이 AWS Glue가 이 역할("svc: glue.amazonaws.com")을 맡도록 허용하는지 확인합니다.
  2. VPC에서 개발 엔드포인트를 생성할 수 없는 경우 IAM 정책이 다음 작업을 허용하는지 확인하십시오.
    ec2: DescribeVpcAttribute
    ec2: DescribeSubnets
    ec2: DescribeSecurityGroups
    ec2: DescribeNetworkInterfaces
    ec2: DeleteNetworkInterface
    ec2: CreateNetworkInterface
    ec2: DescribeRouteTables
    ec2: DescribeVpcEndpoints
  3. 개발 엔드포인트가 원본 및 대상에 Amazon Simple Storage Service(Amazon S3)를 사용하는 경우 IAM 정책이 다음 작업을 허용하는지 확인합니다.
    s3: ListBucket
    s3: GetObject
    s3: ListBucket
    s3: PutObject
    s3: DeleteObject
  4. Python 라이브러리 및 종속 jar에 대해 Amazon S3 경로를 지정한 경우 IAM 정책이 두 경로 모두에 대한 액세스를 허용하는지 확인합니다.
  5. AWS Glue 데이터 카탈로그를 Apache Hive 메타스토어로 사용하는 경우 IAM 정책이 "glue: CreateDatabase" 작업을 허용하고 명시적 거부를 포함하지 않는지 확인하십시오. 자세한 내용은 계정 내에서 요청의 허용 또는 거부 결정을 참조하십시오.

여전히 개발 엔드포인트에 연결할 수 없는 경우 네트워킹 설정 문제를 해결합니다.

네트워킹

VPC에서 개발 엔드포인트를 생성한 경우:

  1. 사용자 지정 DNS를 사용하는 경우 서브넷에서 사용 가능한 각 IP 주소에 A 레코드PTR 레코드가 있어야 합니다.
  2. enableDnsHostnamesenableDnsSupport 속성이 true로 설정되어 있는지 확인합니다. 자세한 내용은 VPC에서 DNS 설정을 참조하십시오.

엔드포인트에 대한 서브넷과 연결된 라우팅 테이블 및 보안 그룹을 확인합니다.

  1. 라우팅 테이블에 Amazon S3 엔드포인트로 라우팅하는 경로가 있는지 확인합니다.
  2. 라우팅 테이블에 인터넷 게이트웨이에 대한 경로가 있는지 확인합니다. 이는 로컬 시스템에서 개발 엔드포인트에 액세스하는 데 필요합니다.
  3. 보안 그룹에 모든 TCP 포트에 대한 자기 참조 인바운드 규칙이 있는지 확인합니다.
  4. 보안 그룹에 모든 트래픽을 허용하는 아웃바운드 규칙 또는 자기 참조 보안 그룹에 대한 아웃바운드 규칙이 있는지 확인합니다. 자세한 내용은 개발 엔드포인트에 대한 네트워크 설정을 참조하십시오.

SSH를 사용하여 개발 엔드포인트에 연결하는 데 문제가 있는 경우:

  1. 연결에 사용 중인 시스템에서 포트 22를 허용하는 인바운드 규칙이 보안 그룹에 있는지 확인합니다.
  2. VPC에서 개발 엔드포인트를 시작할 때 AWS Glue는 프라이빗 주소를 사용합니다. VPC 외부에서 SSH를 사용하여 엔드포인트에 연결하려고 하면 서브넷에 인터넷 게이트웨이와 경로가 있더라도 연결이 실패합니다. 이 문제를 해결하려면 탄력적 IP 주소를 개발 엔드포인트에 연결합니다.
    참고: 탄력적 IP 주소를 사용하여 연결하려면 서브넷에 인터넷 게이트웨이에 대한 경로가 있어야 합니다. 프라이빗 서브넷의 개발 엔드포인트에 연결하려면 먼저 SSH를 사용하여 접속 호스트에 연결합니다. 그런 다음 SSH를 사용하여 개발 엔드포인트에 연결합니다.

SSH를 사용하여 개발 엔드포인트에 여전히 연결할 수 없는 경우 SSH 키를 확인하십시오.

SSH 키

다음은 SSH 키 관련 문제를 해결하기 위한 단계입니다. SSH를 사용하여 개발 엔드포인트에 연결하는 데 문제가 있는 경우 이 문서의 네트워킹 단원을 참조하십시오.

  1. 프라이빗 키의 확장명이 .pem인지 확인합니다. 예를 들어 키 파일이 id_rsa인 경우 이름을 id_rsa.pem으로 바꿉니다. 프라이빗 키에 .pem 확장명이 없는 경우 다음과 같은 오류 메시지를 수신합니다. "Connection blocked because server only allows public key authentication. Please contact your network administrator."
  2. .ppk 파일을 .pem으로 변환하는 데 문제가 있는 경우 Windows 및 Linux에서.pem 파일을.ppk로 또는 반대로 변환하려면 어떻게 해야 합니까?의 단계를 따르십시오.
  3. 개발 엔드포인트를 생성하는 데 문제가 있는 경우 퍼블릭 키에 공백이나 줄 바꿈 문자가 없는지 확인하십시오. PuTTYgen으로 생성된 퍼블릭 키에는 종종 이러한 문자가 포함됩니다. 이 문제를 해결하려면 퍼블릭 키를 텍스트 편집기에 복사합니다. 그런 다음 공백과 줄 바꿈 문자를 제거합니다. 이렇게 하면 전체 SSH 키가 한 줄에 표시됩니다. 수정된 키를 사용하여 개발 엔드포인트를 생성합니다.