Amazon RDS DB 인스턴스에 연결할 때 발생하는 문제를 해결하려면 어떻게 해야 합니까?

5분 분량
0

Amazon 관계형 데이터베이스 서비스(Amazon RDS) DB 인스턴스에 연결할 수 없습니다.

간략한 설명

Amazon RDS DB 인스턴스에 연결할 수 없는 근본 원인은 여러 가지가 있습니다. 몇 가지 일반적인 이유는 다음과 같습니다.

  • RDS DB 인스턴스가 사용 불가한 상태이므로 연결을 수락할 수 없습니다.
  • DB 인스턴스에 연결하기 위한 소스에는 보안 그룹, 네트워크 ACL(액세스 제어 목록) 또는 로컬 방화벽에 권한 부여 액세스 권한이 없습니다.
  • DB 인스턴스에 연결하는 데 잘못된 DNS 이름 또는 엔드포인트가 사용되었습니다.
  • 다중 AZ DB 인스턴스가 페일오버되었고 보조 DB 인스턴스가 인바운드 연결을 허용하지 않는 서브넷 또는 라우팅 테이블을 사용합니다.
  • 다음 이유 중 하나로 인해 사용자 인증이 올바르지 않습니다.
    데이터베이스 수준에서 잘못된 사용자 이름이나 암호를 사용하여 DB 클라이언트에서 인스턴스에 액세스하고 있습니다.
    인스턴스에 액세스하는 데 필요한 데이터베이스 권한이 없습니다.
    클라이언트가 데이터베이스 버전과 호환되지 않는 버전에서 실행되고 있습니다.

**팁:**다음 문제 해결 단계를 사용하여 연결 문제의 원인을 식별할 수 있습니다. 또는 AWSSupport-TroubleshootConnectivityToRDS AWS Systems Manager Automation 문서를 사용하여 문제를 진단할 수 있습니다. 이 자동화 문서는 Amazon Elastic Compute Cloud(Amazon EC2) 인스턴스의 기본 IP 주소를 기반으로 네트워크 ACL을 진단할 수 있습니다. 그러나 임시 포트는 검증되지 않았습니다. 자동화 문서는 또한 EC2 인스턴스의 기본 IP 주소를 기반으로 보안 그룹을 검사하지만, 이 자동화는 특정 포트를 검사하지 않습니다. 자세한 내용은 자동화 실행을 참조하세요.

해결 방법

DB 인스턴스가 사용 가능 상태인지 확인하세요.

최근에 DB 인스턴스를 시작하거나 재부팅한 경우, Amazon RDS 콘솔에서 DB 인스턴스가 가용 상태인지 확인하세요. DB 인스턴스의 크기에 따라 DB 인스턴스를 네트워크 연결에 사용할 수 있을 때까지 최대 20분이 걸릴 수 있습니다.

DB 인스턴스가 장애 상태인 경우, Amazon RDS DB 인스턴스가 장애 상태인 이유는 무엇인가요?를 참조하세요.

DB 인스턴스가 연결을 허용하는지 확인하세요.

다음과 같은 이유로 DB 인스턴스에 연결되는 원본의 트래픽이 차단되었는지 확인해 보세요.

  • **DB 인스턴스와 연결된 Amazon Virtual Private Cloud(VPC) 보안 그룹.**필요한 경우, VPC와 연결된 보안 그룹에 DB 인스턴스 송수신과 관련된 소스 트래픽을 허용하는 규칙을 추가합니다. IP 주소, IP 주소 범위, 다른 VPC 보안 그룹을 지정할 수 있습니다. VPC 및 DB 인스턴스에 대한 일반 정보는 VPC의 DB 인스턴스 액세스 시나리오를 참조하세요.
  • DB 인스턴스와 연결된 모든 DB 보안 그룹. DB 인스턴스가 VPC에 있지 않은 경우, 인스턴스는 DB 보안 그룹을 사용하여 트래픽을 게이트하고 있을 수 있습니다. 연결에 사용하는 IP 주소 범위 또는 Amazon EC2 보안 그룹의 트래픽을 허용하도록 DB 보안 그룹을 업데이트하세요.
  • VPC 외부 연결 DB 인스턴스가 공개적으로 액세스할 수 있고 퍼블릭 서브넷과 연결되어 있어야 합니다(예: 라우팅 테이블은 인터넷 게이트웨이에서의 액세스를 허용함). 자세한 내용은 VPC의 DB 인스턴스 액세스 시나리오를 참조하세요.
    DB 인스턴스가 프라이빗 서브넷에 있는 경우, VPC 피어링 또는 AWS Site-to-Site VPN을 사용하여 인스턴스에 안전하게 연결해야 합니다. Site-to-Site VPN을 사용하면, VPC를 원격 네트워크에 연결할 수 있는 고객 게이트웨이를 구성할 수 있습니다. 소스 VPC와 인스턴스의 VPC 간에 피어링 연결을 생성하여 VPC 외부에서 인스턴스에 액세스하는 방식으로 VPC 피어링을 사용할 수 있습니다. Amazon EC2 인스턴스를 Bastion(점프) 호스트로 사용할 수도 있습니다.
  • 네트워크 ACL. 네트워크 ACL은 VPC의 특정 서브넷에 있는 리소스에 대한 방화벽 역할을 합니다. VPC에서 ACL을 사용하는 경우, DB 인스턴스에서 들어오고 나가는 인바운드 및 아웃바운드 트래픽을 허용하는 규칙이 있는지 확인합니다.
  • 네트워크 또는 로컬 방화벽. 네트워크에서 DB 인스턴스가 인바운드 및 아웃바운드 통신에 사용하는 포트를 오가는 트래픽을 허용하는지 네트워크 관리자에게 문의하세요.
    참고: Amazon RDS는 핑을 포함한 ICMP(인터넷 제어 메시지 프로토콜) 트래픽을 허용하지 않습니다.

잠재적인 DNS 이름 또는 엔드포인트 문제 해결

DB 인스턴스에 연결할 때는 Amazon RDS 콘솔에서 제공하는 DNS 이름(엔드포인트)을 사용합니다. 올바른 엔드포인트를 사용해야 합니다. 또한 DB 인스턴스에 연결하는 데 사용하는 클라이언트에 올바른 형식의 엔드포인트를 제공하세요. DB 엔진 연결 및 다양한 클라이언트 애플리케이션에서 엔드포인트를 사용하는 방법에 대한 자세한 내용은 Amazon RDS 시작하기를 참조하세요.

예를 들어, VPC 내 Amazon EC2 인스턴스에서 nslookup을 사용해 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.com
Address: 172.31.xx.x

데이터베이스 수준 문제 해결

  • DB 클라이언트에서 인스턴스에 액세스할 때는 올바른 사용자 이름과 암호를 사용해야 합니다.
  • 사용자에게 DB 인스턴스에 연결할 수 있는 데이터베이스 권한이 있는지 확인하세요.
  • Amazon RDS에서 CPU 또는 메모리 경합과 같은 리소스 제한이 있는지 확인하세요. 이러한 경합으로 인해 인스턴스에 새로운 연결을 설정하는 데 문제가 발생할 수 있습니다.
  • 인스턴스가 max_connections 제한에 도달하지 않았는지 확인하세요.

인스턴스와 연결된 라우팅 테이블 확인

다중 AZ 배포를 생성할 때는 애플리케이션의 내결함성을 개선하기 위해 여러 가용 영역에서 여러 복제본 DB 인스턴스를 시작합니다. 각 DB 인스턴스와 연결된 서브넷이 같거나 유사한 라우팅 테이블과 연결되어 있는지 확인합니다. 기본 DB 인스턴스가 다른 라우팅 테이블과 연결된 대기 복제본으로 장애 조치되는 경우 트래픽이 제대로 라우팅되지 않을 수 있습니다. 해당 트래픽이 이전에 문제 없이 라우팅되었더라도 더 이상 올바르게 라우팅되지 않을 수 있습니다.

라우팅 테이블 구성에 대한 자세한 내용은 라우팅 테이블 구성을 참조하세요. 다중 AZ 배포에 대한 자세한 내용은 고가용성을 위한 다중 AZ 배포를 참조하세요.

참고: DB 인스턴스에 연결할 수 있지만 인증 오류가 발생하는 경우 RDS DB 인스턴스의 마스터 사용자 암호를 재설정하려면 어떻게 해야 하나요?를 참조하세요.

연결성 확인

다음 명령 중 하나를 실행하여 연결을 확인합니다.

telnet <RDS endpoint> <port number>
nc -zv <RDS endpoint> <port number>

telnet 또는 nc 명령이 성공하면, 네트워크 연결이 설정된 것입니다. 이는 데이터베이스 사용자 인증(예: 사용자 이름 및 암호)으로 인한 문제일 수 있습니다.

관련 정보

Amazon RDS DB 인스턴스에 연결할 수 없습니다

VPC의 퍼블릭 또는 프라이빗 서브넷을 사용하는 Amazon RDS DB 인스턴스에 대한 연결 문제를 해결하려면 어떻게 해야 하나요?

Amazon RDS의 보안

SSL/TLS를 사용하여 DB 인스턴스 연결을 암호화합니다