JDBC나 ODBC 드라이버를 사용하여 Athena에 연결할 때 "An error occurred while communicating with Amazon Athena"(“Amazon Athena와 통신하는 동안 오류 발생”)라는 오류를 해결하려면 어떻게 해야 하나요?

3분 분량
0

Java Database Connectivity(JDBC)나 Open Database Connectivity(ODBC) 드라이버를 가지고 Amazon Athena를 사용할 때 연결 시간 초과 문제가 발생합니다. 또는 내 비즈니스 인공 지능 도구에서 Athena 쿼리 결과를 볼 수 없습니다.

해결 방법

이 오류의 가장 일반적인 원인은 사용자가 JDBC나 ODBC 드라이버를 설치한 호스트와 Athena 또는 AWS Glue 엔드포인트 간의 연결입니다.

이 오류를 해결하려면, 설치된 호스트에 있는 드라이버와 Athena 또는 AWS Glue 간의 연결을 확인하세요.

**참고:**다음 단계에서는 vpce-NAME의 **NAME(이름)**을 사용자의 VPC 엔드포인트 이름으로 바꾸세요.

Athena와의 연결

Athena에 제대로 연결되었는지 확인하려면, 다음 사항을 염두에 두세요.

  • 사용자의 호스트는 Athena 공개 서비스 엔드포인트나 Athena 비공개 엔드포인트를 사용하여 Athena에 연결할 수 있습니다. 엔드포인트 설정에 대한 자세한 내용은 Command line options(명령줄 옵션)Boto3 documentation(Boto3 문서)을 참조하세요.
  • Athena는 포트 443을 사용하여 호스트에 연결합니다.
  • Athena의 스트리밍 API는 포트 444를 사용하여 쿼리 결과를 스트리밍합니다. JDBC나 ODBC 드라이버를 사용하는 경우, Athena는 이 포트를 사용하여 쿼리 결과를 클라이언트 호스트에 있는 드라이버로 스트리밍합니다. 따라서, JDBC나 ODBC 드라이버를 사용하여 Athena에 연결할 때는 이 포트의 차단을 해제해야 합니다. 이 포트가 차단되면, 사용자가 쿼리를 실행할 때 사용자의 비즈니스 인공 지능 도구가 제한 시간을 초과하거나 쿼리 결과를 표시하지 못할 수 있습니다.

Athena 엔드포인트 연결

Athena 엔드포인트는 athena.us-east-1.amazonaws.com과 유사해 보입니다. 사용자가 명령에 엔드포인트를 입력할 때는 엔드포인트의 대상 AWS Region을 업데이트해야 합니다.

엔드포인트의 연결을 테스트하려면, 사용자의 운영 체제(OS)에 따라 다음 명령을 실행하세요.

**참고:**이 명령을 사용하여 포트 444에 대한 연결을 테스트할 수도 있습니다.

Windows

telnet athena.us-east-1.amazonaws.com 443

-또는-

Test-NetConnection -Computer_Name athena.us-east-1.amazonaws.com -Port 443

Linux 또는 macOS

nc -v athena.us-east-1.amazonaws.com 443

프라이빗 DNS용 가상 프라이빗 클라우드(VPC) 엔드포인트를 사용하는 경우, 이 명령에서 사용자의 엔드포인트 시작 부분에 vpce-NAME 을 추가하세요. 예를 들어, 프라이빗 DNS에는 athena.us-east-1.vpce.amazonaws.com대신 vpce-NAME.athena.us-east-1.vpce.amazonaws.com을 입력하세요. NAME(이름)을사용자 VPC의 이름으로 바꾸세요. 프라이빗 DNS에 대한 자세한 내용은 Connect to Amazon Athena using an interface VPC endpoint(인터페이스 VPC 엔드포인트를 사용하여 Amazon Athena에 연결)Control access to VPC endpoints using endpoint policies(엔드포인트 정책을 사용하여 VPC 엔드포인트에 대한 액세스 제어)를 참조하세요.

또한 ODCB](https://docs.aws.amazon.com/athena/latest/ug/connect-with-odbc.html)나JDBC 드라이버의[모범 사례를 준수해야 합니다. 예를 들어, 두 드라이버 모두 포트 444를 열어 두어야 합니다.

AWS Glue에 대한 연결

JDBC나 ODBC 드라이버에 설치한 호스트와 AWS Glue 간의 연결을 확인해야 합니다. 사용자의 호스트는 AWS Glue 공개 서비스 엔드포인트나 AWS Glue 비공개 서비스 엔드포인트를 사용하여 AWS Glue에 연결할 수 있습니다. 자세한 내용은 AWS Glue service endpoints(AWS Glue 서비스 엔드포인트)를 참조하세요. Athena는 AWS Glue Data Catalog를 사용하여 사용자 계정의 Amazon S3 데이터에 대한 테이블 메타데이터를 저장하고 검색합니다. 따라서, 사용자의 드라이버는 AWS Glue 카탈로그에 성공적으로 연결되어야 테이블 메타데이터 정보를 얻을 수 있습니다.

AWS Glue 공개 서비스 엔드포인트를 사용하는 경우, 다음 예제와 비슷한 명령을 사용하여 연결을 테스트하세요.

**참고:**사용자의 운영 체제에 따라 포트 연결을 확인하려면 Test-NetConnection이나 nc를 사용해야 할 수도 있습니다.

telnet glue.us-east-1.amazonaws.com 443

AWS Glue VPC 인터페이스 엔드포인트를 사용하는 경우, 다음 예제와 비슷한 명령을 사용하여 연결을 테스트하세요.

**참고:**엔드포인트의 프라이빗 DNS를 해제했다면, 다음 명령을 사용하세요.

telnet vpce-NAME.glue.us-east-1.vpce.amazonaws.com 443

관련 정보

ODBC나 JDBC 드라이버를 사용하여 Amazon Athena에 연결

AWS 공식
AWS 공식업데이트됨 10달 전
댓글 없음

관련 콘텐츠