AWS DMS 엔드포인트 연결 실패 문제를 해결하려면 어떻게 해야 합니까?

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

AWS Database Migration Service(AWS DMS) 엔드포인트에 연결할 수 없습니다. 테스트 연결이 실패하는 이유는 무엇이며 이러한 연결 문제를 해결하려면 어떻게 해야 합니까?

해결 방법

AWS DMS 소스 및 대상 엔드포인트를 생성한 후에는 AWS DMS 마이그레이션 작업을 시작하기 전에 AWS DMS 복제 인스턴스에서 엔드포인트로의 연결을 테스트하는 것이 모범 사례입니다. 연결을 테스트하면 엔드포인트와의 연결 문제로 인해 작업이 실패하지 않는지 확인할 수 있습니다.

AWS DMS 복제 인스턴스를 소스 및 대상 엔드포인트에 연결하려면 AWS DMS 복제 인스턴스에서 사용하는 보안 그룹에 특정 포트에 대한 엔드포인트의 IP 주소에 대한 아웃바운드 규칙이 포함되어야 합니다. 복제 인스턴스에 대한 보안 그룹의 아웃바운드 규칙이 올바르면 소스 또는 대상 데이터베이스에서 인바운드 네트워크 또는 보안 구성을 확인합니다. 자세한 내용은 규칙 추가, 제거 및 업데이트를 참조하십시오.

데이터베이스에 대한 액세스가 거부되어 오류가 발생한 경우 다음과 비슷한 오류가 표시될 수 있습니다.

Test Endpoint failed: Application-Status: 1020912, Application-Message: Cannot connect to ODBC provider Network error has occurred, Application-Detailed-Message: RetCode: SQL_ERROR SqlState: 08001 NativeError: 101 Message: [unixODBC]FATAL: password authentication failed for user "dmsuser" ODBC general error.
Test Endpoint failed: Application-Status: 1020912, Application-Message: Cannot connect to ODBC provider ODBC general error., Application-Detailed-Message: RetCode: SQL_ERROR SqlState: HY000 NativeError: 2005 Message: [unixODBC][MySQL][ODBC 5.3(w) Driver]Unknown MySQL server host 'mysql1.chulbfpmdg0x.us-east-1.rds.amazonaws.com' (22) ODBC general error.

이러한 오류를 해결하려면 다음 엔드포인트 세부 정보가 올바르게 설정되었는지 확인하십시오.

  • 사용자 이름 및 암호
  • ServerName(DB 인스턴스 엔드포인트 이름)
  • 포트

네트워크 구성이나 시간 초과로 인해 오류가 발생한 경우 다음과 비슷한 오류가 표시될 수 있습니다.  

Test Endpoint failed:
    Application-Status: 1020912, Application-Message: Failed to connect Network error has occurred, Application-Detailed-Message: RetCode: SQL_ERROR SqlState: HYT00 NativeError: 0 Message: [unixODBC][Microsoft][ODBC Driver 13 for SQL Server]Login timeout
    expired ODBC general error.
Test Endpoint failed: Application-Status: 1020912, Application-Message: Cannot connect to ODBC provider Network error has occurred, Application-Detailed-Message: RetCode: SQL_ERROR SqlState: 08001
    NativeError: 101 Message: [unixODBC]timeout expired ODBC general error.

이러한 오류를 해결하려면 엔드포인트의 데이터베이스 엔진에 대한 NativeError 해결 방법을 확인하십시오.

AWS에서 소스 또는 대상 데이터베이스를 호스팅함

먼저, 데이터베이스에 AWS DMS 복제 인스턴스의 IP 주소에서 수신되는 트래픽을 허용하는 보안 그룹 구성이 있는지 확인합니다.

복제 인스턴스의 퍼블릭 및 프라이빗 IP 주소를 확인하려면 다음 단계를 따르십시오.

  1. AWS DMS 콘솔을 열고 탐색 창에서 [Replication instances]를 선택합니다.
  2. 복제 인스턴스의 이름을 선택합니다.
  3. [Details] 섹션에서 복제 인스턴스의 퍼블릭 IP 주소프라이빗 IP 주소를 확인할 수 있습니다. 또는 describe-replication-instances를 실행하여 복제 인스턴스의 IP 주소를 확인할 수 있습니다.

프라이빗 IP 주소

aws dms describe-replication-instances
    --filters Name=replication-instance-id,Values=<DMS replication instance name> "ReplicationInstances[*].ReplicationInstancePrivateIpAddress" --output=text

퍼블릭 IP 주소

aws dms describe-replication-instances --filters Name=replication-instance-id,Values=<DMS replication instance name> "ReplicationInstances[*].ReplicationInstancePublicIpAddress" --output=text

그런 다음 Amazon Virtual Private Cloud(Amazon VPC)에 대한 네트워크 ACL(액세스 제어 목록) 규칙이 소스 또는 대상 데이터베이스와 복제 인스턴스에 대한 수신 트래픽을 제한하지 않는지 확인합니다(예: 명시적 거부 규칙). 마지막으로 데이터베이스와 연결된 서브넷의 라우팅 테이블에 퍼블릭 또는 프라이빗 네트워크 트래픽을 허용하는 필수 항목이 있는지 확인합니다.

온프레미스에서 소스 또는 대상 데이터베이스를 호스팅함

네트워크 관리자에게 문의하여 AWS DMS 복제 인스턴스에서 들어오는 연결을 허용하도록 데이터베이스가 설정되어 있는지 확인하십시오. DNS 구성이 올바르게 설정되었는지, 소스 또는 대상 데이터베이스와의 통신을 차단하는 방화벽이 없는지 확인합니다.

네트워크 연결에서 병목 현상을 식별할 수 없는 경우, 동일한 VPC에 AWS DMS 복제 인스턴스와 동일한 네트워크 구성을 사용하여 새 Amazon Elastic Compute Cloud(Amazon EC2) 인스턴스를 생성합니다. 새 테스트 EC2 인스턴스에서 다음 명령을 실행하여 네트워크 연결 문제를 추가로 해결합니다.

telnet <IP address of host database server> <port number>
nslookup <Fully qualified domain name for the database server>
tracert <IP address of host database server>