AWS DMS 엔드포인트 연결 실패 문제를 해결하려면 어떻게 해야 합니까?
AWS Database Migration Service(AWS DMS) 엔드포인트에 연결할 수 없고 테스트 연결에 실패합니다. 연결 문제를 해결하고 싶습니다.
간략한 설명
복제 인스턴스에서 원본 또는 대상 엔드포인트로의 연결을 테스트할 때 연결 문제와 기본 데이터베이스 문제라는 두 가지 유형의 오류가 발생할 수 있습니다. 테스트를 성공적으로 완료하려면 먼저 이러한 문제를 해결해야 합니다.
해결 방법
연결 문제
복제 인스턴스와 소스 또는 대상 간의 연결 문제로 인해 오류가 발생한 경우 다음과 비슷한 오류가 표시됩니다.
- "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."
- "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."
- "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.xxxxx.us-east-1.rds.amazonaws.com' (22) ODBC general error."
기본 데이터베이스 오류
데이터베이스 권한 또는 인증 오류와 같은 기본 데이터베이스 오류로 인해 오류가 발생한 경우 다음과 비슷한 오류가 표시됩니다.
- "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."
참고: AWS DMS 소스 및 대상 엔드포인트를 생성한 후 AWS DMS 복제 인스턴스에서 엔드포인트로의 연결을 테스트하는 것이 모범 사례입니다. AWS DMS 마이그레이션 작업을 시작하기 전에 테스트를 완료하십시오. 그렇지 않으면 엔드포인트와의 연결 문제로 인해 작업이 실패할 수 있습니다.
AWS 호스팅 리소스의 연결 문제 해결
원본 또는 대상 데이터베이스와 복제 인스턴스 간의 연결을 설정할 수 있는지 확인합니다. 사용 사례와 네트워크 인프라에 따라 원본 또는 대상 데이터베이스를 퍼블릭 서브넷 또는 프라이빗 서브넷의 복제 인스턴스에 연결합니다. 자세한 내용은 복제 인스턴스의 네트워크 설정을 참조하십시오.
참고: AWS DMS 버전 3.4.7 이상에서는 Virtual Private Cloud(VPC) 엔드포인트를 사용하도록 AWS DMS를 구성해야 합니다. 또는 특정 Amazon Web Services와 상호 작용하는 모든 소스 및 대상 엔드포인트에 대한 퍼블릭 경로를 사용해야 합니다. AWS DMS 엔드포인트 테스트가 이전 버전에서는 성공했지만 이후 버전에서는 실패하는 경우, VPC 엔드포인트를 AWS DMS 소스 및 대상 엔드포인트로 구성을 참조하십시오.
복제 인스턴스 구성 확인
복제 인스턴스에서 구성에 다음이 포함되어 있는지 확인합니다.
- 보안 그룹에 있는 원본 또는 대상 데이터베이스의 포트가 있는 IP 주소에 대한 아웃바운드 규칙입니다. 기본적으로 보안 그룹의 아웃바운드 규칙은 모든 트래픽을 허용합니다. 보안 그룹은 상태 저장이므로 인바운드 규칙을 기본값에서 수정할 필요가 없습니다.
- 네트워크 ACL의 원본 또는 대상 데이터베이스 포트가 있는 IP 주소에 대한 아웃바운드 규칙입니다. 기본적으로 네트워크 액세스 제어 목록(ACL)의 아웃바운드 규칙은 모든 트래픽을 허용합니다.
- 네트워크 ACL에 있는 소스 또는 대상 데이터베이스의 임시 포트가 있는 IP 주소에 대한 인바운드 규칙입니다. 기본적으로 네트워크 ACL의 인바운드 규칙은 모든 트래픽을 허용합니다.
원본 또는 대상 데이터베이스 구성 확인
원본 또는 대상 데이터베이스에서 구성에 다음이 포함되어 있는지 확인합니다.
- 복제 인스턴스의 IP 주소 또는 복제 인스턴스 서브넷 그룹의 CIDR(Classless Inter-Domain Routing)에 대한 인바운드 규칙입니다. 인바운드 규칙에는 보안 그룹의 원본 또는 대상 데이터베이스 포트가 포함되어야 합니다. 보안 그룹은 상태 저장이므로 아웃바운드 규칙을 기본값에서 수정할 필요가 없습니다.
참고: IP 주소 및 CIDR을 찾으려면 서브넷 그룹의 IP 주소 및 CIDR 결정 섹션을 참조하십시오. - 복제 인스턴스의 IP 주소 또는 복제 인스턴스의 서브넷 그룹 CIDR에 대한 인바운드 규칙입니다. 인바운드 규칙에는 네트워크 ACL의 원본 또는 대상 데이터베이스 포트가 포함되어야 합니다. 허용된 IP 주소 및 포트에 대한 명시적인 거부 규칙이 없는지 확인합니다.
- 네트워크 ACL에 임시 포트가 있는 복제 인스턴스의 서브넷 그룹 IP 주소 또는 CIDR에 대한 아웃바운드 규칙입니다. 기본적으로 네트워크 ACL의 아웃바운드 규칙은 모든 트래픽을 허용합니다.
- 복제 인스턴스의 서브넷 그룹 CIDR을 허용하도록 네트워크를 구성하는 것이 모범 사례입니다. 복제 인스턴스의 IP 주소는 페일오버 또는 호스트 교체 이벤트 중에 변경됩니다.
서브넷 그룹의 IP 주소 및 CIDR 확인
인바운드 및 아웃바운드 규칙을 설정하려면 서브넷 그룹의 IP 주소와 CIDR을 확인합니다. AWS DMS 콘솔 또는 AWS CLI를 사용할 수 있습니다.
참고: AWS Command Line Interface(AWS CLI) 명령을 실행할 때 오류가 발생하면 AWS CLI의 오류 해결을 참조하십시오. 또한 최신 AWS CLI 버전을 사용하고 있는지 확인하십시오.
AWS DMS 콘솔
다음 단계를 완료하십시오.
- AWS DMS 콘솔을 엽니다.
- 탐색 창에서 복제 인스턴스를 선택합니다.
- 복제 인스턴스의 이름을 선택합니다.
- 세부 정보에서 복제 인스턴스의 퍼블릭 IP 주소, 프라이빗 IP 주소, 복제 서브넷 그룹을 복사합니다.
- 복제 서브넷 그룹에서 링크를 선택하여 서브넷 그룹 페이지에 액세스합니다. 서브넷 그룹에 있는 각 서브넷의 이름을 복사합니다.
- 각 서브넷의 CIDR을 확인하려면 Amazon Virtual Private Cloud(Amazon VPC) 콘솔을 엽니다.
- 서브넷 탭에서, 5단계에서 기록한 서브넷을 검색합니다. 각 서브넷에 대해 CIDR을 기록해 둡니다.
AWS CLI
각 서브넷의 CIDR을 확인하려면 describe-subnets 명령을 실행합니다.
aws ec2 describe-subnets --filters Name=subnet-id,Values="$(aws dms describe-replication-instances --filters "Name=replication-instance-id,Values=replication-instance-name" --query "ReplicationInstances[*].ReplicationSubnetGroup.Subnets[*].SubnetIdentifier" --output text | sed -e 's/\t/,/g')" --query "Subnets[*].{SubnetId:SubnetId,CidrBlock:CidrBlock}" --output table
참고: replication-instance-name을 복제 인스턴스의 이름으로 바꾸십시오.
복제 인스턴스의 IP 주소를 확인하려면 describe-replication-instances 명령을 실행합니다.
aws dms describe-replication-instances --filters "Name=replication-instance-id,Values=replication-instance-name" --query "ReplicationInstances[*].{ReplicationInstancePublicIpAddresses:ReplicationInstancePublicIpAddresses,ReplicationInstancePrivateIpAddresses:ReplicationInstancePrivateIpAddresses}" --output table
참고: replication-instance-name을 복제 인스턴스의 이름으로 바꾸십시오.
연결 문제 해결(온프레미스 리소스)
원본 또는 대상 데이터베이스가 온프레미스로 호스팅되는 경우 다음을 확인합니다.
- 데이터베이스가 AWS DMS 복제 인스턴스에서 들어오는 연결을 허용합니다. 확인하려면 네트워크 관리자에게 문의하십시오.
- 방화벽이 원본 또는 대상 데이터베이스와의 통신을 차단하지 않습니다.
- DNS 구성이 올바르게 설정되었는지 확인합니다. DNS 확인이 필요한 경우 Amazon Route 53 Resolver를 사용합니다. Amazon Route 53 Resolver를 사용하여 온프레미스 이름 서버를 사용하여 엔드포인트를 확인하는 방법에 대한 자세한 내용은 자체 온프레미스 이름 서버 사용을 참조하십시오.
-또는-
AWS CLI를 통해 새 DMS 인스턴스를 생성하여 고객 DNS 이름 서버 (--dns-name-servers)를 사용하여 DNS 문제를 해결합니다. 기본적으로 AWS DMS 인스턴스는 Amazon에서 제공한 DNS를 사용하여 문제를 해결합니다. 원본 또는 대상이 사용자 지정 DNS를 사용하도록 구성된 경우 AWS DMS 엔드포인트에 오류가 발생할 수 있습니다. 자세한 내용은 create-replication-instance를 참조하십시오.
Amazon Elastic Compute Cloud(Amazon EC2) 인스턴스의 네트워크 구성이 연결 문제가 있는 AWS DMS 복제 인스턴스와 동일한지 확인합니다. 네트워크 연결 문제를 해결하려면 먼저 새 Amazon EC2 인스턴스에서 다음 명령을 실행합니다.
telnet database_IP_address_or_DNS port_number
참고: database_IP_address_or_DNS를 AWS DMS 소스 또는 대상 엔드포인트에 지정된 데이터베이스의 IP 주소 또는 도메인 이름으로 바꾸십시오. port_number를 AWS DMS 소스 또는 대상 엔드포인트에 지정된 데이터베이스의 포트 번호로 바꾸십시오.
그리고 나서 다음 명령을 실행합니다.
nslookup domain_name
참고: domain_name을 AWS DMS 소스 또는 대상 엔드포인트에 지정된 데이터베이스의 도메인 이름으로 바꾸십시오.
기본 데이터베이스 오류 해결
기본 데이터베이스 오류를 해결하려면, 다음 엔드포인트 구성이 올바르게 설정되었는지 확인하십시오.
- 사용자 이름
- 암호
- ServerName은 온프레미스 데이터베이스 또는 Amazon Relational Database Service(Amazon RDS) 엔드포인트의 DNS 또는 IP로 설정됩니다.
- 포트
- 데이터베이스 이름
참고: MySQL 소스 또는 대상의 데이터베이스 이름을 지정하지 마십시오.
AWS Secrets Manager에서 이러한 필드를 지정한 경우 보안 암호를 사용하여 AWS 데이터베이스 마이그레이션 서비스 엔드포인트에 액세스를 참조하십시오.
소스 또는 대상 데이터베이스와 관련된 기본 데이터베이스 오류는 해당 데이터베이스 설명서의 해결 방법을 참조하십시오. AWS DMS 콘솔에서 받은 오류 코드 및 오류 메시지를 사용하십시오.
자세한 내용은 소스 또는 대상 데이터베이스의 오류, 추적, 경보 또는 기타 로그를 확인하십시오.
데이터베이스 액세스 오류의 경우, 특정 소스 또는 대상에 대해 AWS DMS에 필요한 권한을 확인하십시오.
SSL로 소스 및 대상 엔드포인트의 연결을 암호화하는 방법에 대한 자세한 내용은 AWS Database Migration Service에서 SSL 사용을 참조하십시오.
관련 정보
AWS DMS를 사용할 때 Amazon S3 엔드포인트 연결 테스트 실패 문제를 해결하려면 어떻게 해야 합니까?
Amazon Redshift를 대상 엔드포인트로 사용하는 AWS DMS 작업의 연결 실패 및 오류 문제를 해결하려면 어떻게 해야 합니까?
- 언어
- 한국어

관련 콘텐츠
- 질문됨 6달 전