Ongoing service disruptions
For the most recent update on ongoing service disruptions affecting the AWS Middle East (UAE) Region (ME-CENTRAL-1), refer to the AWS Health Dashboard. For information on AWS Service migration, see How do I migrate my services to another region?
Amazon RDS DB 인스턴스에 연결할 때 발생하는 문제를 해결하려면 어떻게 해야 합니까?
Amazon Relational Database Service(Amazon RDS) DB 인스턴스에 연결할 수 없는 이유를 해결하고 싶습니다.
간략한 설명
Amazon RDS DB 인스턴스에 대한 연결을 차단하는 일반적인 이유는 다음과 같습니다.
- DB 인스턴스가 사용 가능, 스토리지 최적화 또는 백업 중 이외의 상태입니다.
- DB 인스턴스에 연결하기 위한 소스에 보안 그룹, 네트워크 액세스 제어 목록(ACL) 또는 로컬 방화벽에 권한 부여 액세스 권한이 없습니다.
- DB 인스턴스에 연결할 때 잘못된 DNS 이름 또는 엔드포인트를 사용했습니다.
- 다중 AZ DB 인스턴스가 장애 조치되었고 보조 DB 인스턴스가 인바운드 연결을 허용하지 않는 서브넷 또는 라우팅 테이블을 사용합니다.
- 사용자 인증이 올바르지 않습니다.
해결 방법
연결 문제를 해결하려면 다음 작업 중 하나 이상을 완료하십시오.
자동화 런북 사용
AWSSupport-TroubleshootConnectivityToRDS AWS Systems Manager Automation 문서를 사용하면 문제를 진단하는 데 도움이 됩니다.
이 자동화 문서는 Amazon Elastic Compute Cloud(Amazon EC2) 인스턴스의 기본 IP 주소를 기반으로 네트워크 ACL을 진단할 수 있습니다. 그러나 임시 포트는 검증되지 않습니다. 자동화 문서는 또한 Amazon EC2 인스턴스의 기본 IP 주소를 기반으로 보안 그룹을 검사하지만, 이 자동화는 특정 포트를 검사하지 않습니다. 자세한 내용은 Systems Manager Automation으로 구동되는 자동 작업 실행을 참조하십시오.
런북을 실행하는 방법에 대한 지침과 검사하는 내용에 대한 세부 정보는 AWSSupport-TroubleshootConnectivityToRDS를 참조하십시오.
자동화가 완료되면 출력 섹션을 검토하여 자세한 결과를 확인합니다. 런북으로 문제를 파악할 수 없는 경우 다음 수동 단계를 계속 진행합니다.
DB 인스턴스가 사용 가능한 상태인지 확인
최근에 DB 인스턴스를 시작하거나 재부팅한 경우 Amazon RDS 콘솔에서 DB 인스턴스가 사용 가능 상태인지 확인합니다. DB 인스턴스의 크기에 따라 네트워크 연결에 DB 인스턴스를 사용할 수 있을 때까지 최대 20분이 걸릴 수 있습니다.
DB 인스턴스가 연결을 허용하는지 확인
다음 구성 요구 사항 중 하나 이상이 DB 인스턴스에 연결하는 소스의 트래픽을 차단하지 않는지 확인하십시오.
- DB 인스턴스와 연결된 Amazon Virtual Private Cloud(Amazon VPC) 보안 그룹: Amazon VPC와 연결된 보안 그룹에 소스와 관련된 트래픽이 DB 인스턴스로 들어오고 나가는 것을 허용하는 규칙을 추가합니다. IP 주소, IP 주소 범위 또는 다른 VPC 보안 그룹을 지정할 수 있습니다. VPC 및 DB 인스턴스에 대한 일반 정보는 VPC의 DB 인스턴스 액세스 시나리오를 참조하십시오.
- 네트워크 ACL: 네트워크 ACL은 VPC의 특정 서브넷에 있는 리소스에 대한 방화벽 역할을 합니다. VPC에 있는 ACL의 경우, ACL에 DB 인스턴스로 들어오고 나가는 인바운드 및 아웃바운드 트래픽을 허용하는 규칙이 있어야 합니다.
- VPC 외부 연결: DB 인스턴스가 공개적으로 액세스할 수 있고 퍼블릭 서브넷과 연결되어 있어야 합니다. 예를 들어 라우팅 테이블은 인터넷 게이트웨이에서 액세스하는 것을 허용합니다. 자세한 내용은 VPC의 DB 인스턴스 액세스 시나리오를 참조하십시오.
프라이빗 서브넷에 있는 DB 인스턴스의 경우 VPC 피어링 또는 AWS Site-to-Site VPN을 사용하여 인스턴스에 안전하게 연결하십시오. Site-to-Site VPN을 사용하면, VPC를 원격 네트워크에 연결할 수 있는 고객 게이트웨이를 구성할 수 있습니다. VPC 피어링을 사용하여 소스 VPC와 인스턴스의 VPC 간에 피어링 연결을 생성하여 VPC 외부에서 인스턴스에 액세스합니다. Amazon EC2 인스턴스를 배스천(점프) 호스트로 사용할 수도 있습니다. - 네트워크 또는 로컬 방화벽: 네트워크에서 DB 인스턴스가 인바운드 및 아웃바운드 통신에 사용하는 포트로 들어오고 나가는 트래픽을 허용하는지 네트워크 관리자에게 문의하십시오.
참고: Amazon RDS는 ping을 포함한 Internet Control Message Protocol(ICMP) 트래픽을 허용하지 않습니다.
Amazon RDS와 VPC 간의 연결 문제를 해결하기 위해 Reachability Analyzer를 사용할 수 있습니다.
잠재적인 DNS 이름 또는 엔드포인트 문제
DB 인스턴스에 연결할 때는 Amazon RDS 콘솔에서 제공하는 DNS 이름(엔드포인트)을 사용합니다. 올바른 엔드포인트를 사용해야 합니다. 또한 DB 인스턴스에 연결하는 데 사용하는 클라이언트에 올바른 형식의 엔드포인트를 제공하십시오. DB 엔진 연결 및 다양한 클라이언트 애플리케이션에서 엔드포인트를 사용하는 방법에 대한 자세한 내용은 Amazon RDS 시작하기를 참조하십시오.
예를 들어 nslookup을 사용하여 VPC 내의 Amazon EC2 인스턴스에서 DB 인스턴스 엔드포인트를 볼 수 있습니다.
nslookup myexampledb.xxxx.us-east-1.rds.amazonaws.com Server: xx.xx.xx.xx Address: xx.xx.xx.xx#53
신뢰할 수 없는 답변의 예:
Name: myexampledb.xxxx.us-east-1.rds.amazonaws.comAddress: 172.31.xx.x
연결 확인
연결을 확인하려면 다음 명령 중 하나를 실행합니다.
telnet <RDS endpoint> <port number> nc -zv <RDS endpoint> <port number>
telnet 및 nc 명령은 클라이언트와 서버 간의 연결을 테스트합니다. telnet 또는 nc 명령이 성공하면, 네트워크 연결이 설정된 것입니다. 이 연결은 데이터베이스에 대한 사용자 인증으로 인해 사용자 이름 또는 암호 문제와 같은 문제가 발생함을 의미합니다.
데이터베이스 수준 문제
다음 데이터베이스 수준 설정이 올바르게 구성되었는지 확인합니다.
- DB 클라이언트에서 인스턴스에 액세스할 수 있는 올바른 사용자 이름과 암호가 있습니다.
- 사용자에게 DB 인스턴스에 연결할 수 있는 데이터베이스 권한이 있습니다.
- Amazon RDS에 CPU 또는 메모리 경합과 같은 리소스 스로틀링이 없습니다. 인스턴스에 새로운 연결을 설정할 때 메모리 경합으로 인해 문제가 발생할 수 있습니다. 매번 새 연결을 열 때 발생하는 메모리 및 CPU 오버헤드를 방지하기 위해 Amazon RDS 프록시와 같이 애플리케이션의 규모 조정 기능을 향상하는 연결 풀링 솔루션을 고려해 보십시오.
- Amazon RDS MySQL 호환의 경우 인스턴스가 max_connections 제한에 도달하지 않았습니다.
- Amazon RDS MySQL 호환의 경우 max_user_connections 및 max_updates와 같은 계정 리소스 제한을 초과하지 않았는지 확인합니다.
- Amazon RDS MySQL 호환의 경우, 한 호스트에서 연속적으로 발생하는 클라이언트 연결 프로세스 오류는 max_connect_errors 시스템 변수에 포함됩니다. 이 변수를 초과하면 호스트가 차단되고 동일한 호스트의 연결이 거부됩니다. 이 문제를 해결하려면 MySQL 버전 8.0.23 이하에서 호스트 캐시를 비우십시오. 또는 이후 버전의 경우 performance_schema host_cache 테이블을 자릅니다. 자세한 내용은 Amazon RDS for MySQL 및 Amazon RDS for MariaDB 오류 해결을 참조하십시오.
인스턴스와 연결된 라우팅 테이블 확인
각 DB 인스턴스와 연결된 서브넷이 동일하거나 유사한 라우팅 테이블과 연결되어 있는지 확인합니다. 기본 DB 인스턴스가 다른 라우팅 테이블과 연결된 대기 복제본으로 장애 조치되는 경우 트래픽이 제대로 라우팅되지 않을 수 있습니다. 트래픽이 이전에 문제 없이 라우팅되었더라도 더 이상 올바르게 라우팅되지 않을 수 있습니다.
자세한 내용은 라우팅 테이블 구성 및 Amazon RDS용 다중 AZ 배포 구성 및 관리를 참조하십시오.
참고: DB 인스턴스에 연결했지만 오류가 발생하면 Amazon RDS DB 인스턴스의 관리자 사용자 암호를 재설정하려면 어떻게 해야 합니까?를 참조하십시오.
관련 정보
Amazon RDS DB 인스턴스에 연결할 수 없습니다
VPC의 퍼블릭 또는 프라이빗 서브넷을 사용하는 Amazon RDS DB 인스턴스에 대한 연결 문제를 해결하려면 어떻게 해야 합니까?
SSL/TLS를 사용하여 DB 인스턴스 또는 클러스터에 대한 연결 암호화
VPC Reachability Analyzer를 사용하여 Amazon RDS 데이터베이스에 대한 네트워크 연결 문제 해결

