AWS Glue 테스트 연결 실패

최종 업데이트 날짜: 2019년 11월 7일

AWS Glue에서 실패한 테스트 연결 문제를 해결하려면 어떻게 해야 합니까?

​해결 방법

다음과 같은 일반적인 문제를 확인합니다.

네트워킹 문제

  • JDBC 데이터 스토어에 대한 연결 확인: AWS Glue는 연결 서브넷에서 프라이빗 IP 주소를 사용하여 탄력적 네트워크 인터페이스를 생성합니다. 즉, AWS Glue는 퍼블릭 인터넷을 사용하여 데이터 스토어에 연결할 수 없습니다. 데이터 스토어가 VPC 외부에 있는 경우(예: 온프레미스 데이터 스토어 또는 퍼블릭 호스트 이름이 있는 Amazon Relational Database Service(Amazon RDS) 리소스), 서브넷의 라우팅 테이블에 퍼블릭 서브넷의 NAT 게이트웨이에 대한 경로가 있어야 합니다. 그렇지 않으면 연결 시간이 초과됩니다. 데이터 스토어가 VPC에 있는 경우 연결의 보안 그룹과 네트워크 ACL(액세스 제어 목록)이 데이터 스토어에 대한 트래픽을 허용하는지 확인합니다.
  • 연결의 보안 그룹 확인: 연결과 연결된 보안 그룹 중 하나에 모든 TCP 포트에 대해 열려 있는 자기 참조 인바운드 규칙이 있어야 합니다. 마찬가지로 보안 그룹 중 하나가 모든 아웃바운드 트래픽에 개방되어 있어야 합니다. 자기 참조 규칙을 사용하여 VPC로의 아웃바운드 트래픽을 제한할 수 있습니다. 자세한 내용은 JDBC 데이터 스토어에 연결하도록 VPC 설정을 참조하십시오.
  • 무료 IP 주소 수 확인: 서브넷의 무료 IP 주소 수는 작업에 지정된 DPU(데이터 처리 단위) 수보다 커야 합니다. 이렇게 하면 AWS Glue가 지정된 서브넷에 탄력적 네트워크 인터페이스를 생성할 수 있습니다.
  • 서브넷이 Amazon Simple Storage Service(Amazon S3)에 액세스할 수 있는지 확인: Amazon S3 엔드포인트를 제공하거나 서브넷의 라우팅 테이블에 NAT 게이트웨이에 대한 경로를 제공합니다. 자세한 내용은 오류: S3 엔드포인트를 찾을 수 없거나 VPC의 서브넷 ID에 대한 NAT 게이트웨이를 찾을 수 없음을 참조하십시오.

인증 문제

  • 올바른 IAM 역할 선택: 테스트 연결에 선택하는 AWS Identity and Access Management(IAM) 역할은 AWS Glue와 신뢰 관계를 맺고 있어야 합니다. 이를 위한 쉬운 방법은 AWSGlueServiceRole 정책이 연결된 서비스 연결 역할을 선택하는 것입니다.
  • 연결 암호가 AWS Key Management Service(AWS KMS)로 암호화된 경우: 연결의 IAM 역할이 키에 대해 kms: Decrypt 작업을 허용하는지 확인합니다. 자세한 내용은 AWS Glue에서 암호화 설정을 참조하십시오.
  • 연결 로그 확인: 테스트 연결의 로그는 /aws-glue/testconnection/output 아래에 Amazon CloudWatch Logs에 있습니다. 로그에서 오류 메시지를 확인합니다.
  • SSL 설정 확인: 데이터 스토어에 지정된 사용자에 대한 SSL 연결이 필요한 경우 콘솔에서 연결을 생성할 때 [Require SSL connection]을 선택해야 합니다. 데이터 스토어가 SSL을 지원하지 않는 경우 이 옵션을 선택하지 마십시오.
  • JDBC 사용자 이름 및 암호 확인: JDBC 데이터 스토어에 액세스하는 사용자에게 충분한 액세스 권한이 있어야 합니다. 예를 들어 AWS Glue 크롤러에는 SELECT 권한이 필요합니다. 데이터 스토어에 쓰는 작업에는 INSERT, UPDATE 및 DELETE 권한이 필요합니다.
  • JDBC URL 구문 확인: 구문 요구 사항은 데이터베이스 엔진에 따라 다릅니다. 자세한 내용은 데이터 스토어에 JDBC 연결 추가를 참조하고 JDBC URL에서 예제를 검토하십시오.

추가 문제 해결

  • 연결 유형: 올바른 연결 유형을 선택해야 합니다. 연결 유형으로 Amazon RDS 또는 Amazon Redshift를 선택하면 AWS Glue가 VPC, 서브넷 및 보안 그룹을 자동으로 채웁니다.
  • DNS 문제: DNS 문제를 배제하려면 데이터 스토어의 퍼블릭 또는 프라이빗 IP 주소를 AWS Glue 연결을 위한 JDBC URL로 사용합니다. 이렇게 하면 더 이상 도메인 이름을 사용하지 않으므로 [Require SSL connection]을 선택 취소해야 합니다.
  • 호환되지 않는 드라이버: 호환되지 않는 드라이버로 인해 연결이 실패할 경우 실패한 연결 이름과 함께 작업 속성의 추가 JAR 파일로 올바른 드라이버를 제공합니다. (연결 이름을 작업 속성으로 지정하면 AWS Glue는 VPC 및 서브넷과 같은 연결의 네트워킹 설정을 사용합니다.) 그런 다음 작업 속성에서 제공한 JAR 파일을 사용하여 Apache Spark 데이터 프레임을 수동으로 생성하여 기본 AWS Glue 데이터 스토어 드라이버를 재정의합니다. 데이터 프레임을 생성한 후 선택적으로 AWS Glue 동적 프레임으로 변환할 수 있습니다. 자세한 정보는 fromDF를 참조하십시오.
  • JDBC 데이터 스토어에 공개적으로 액세스할 수 있는 경우: MySQL Workbench 및 JDBC URL을 사용하여 데이터 스토어에 연결합니다. 또는 연결에 사용된 것과 동일한 서브넷 및 보안 그룹에 대한 SSH 액세스 권한이 있는 Amazon Elastic Compute Cloud(Amazon EC2) 인스턴스를 시작합니다. 그런 다음 SSH를 사용하여 인스턴스에 연결하고 다음 명령을 실행하여 연결을 테스트합니다.
$ dig hostname
$ nc -zv hostname port

이 문서가 도움이 되었습니까?

AWS에서 개선해야 할 부분이 있습니까?


도움이 필요하십니까?