Amazon DocumentDB 클러스터에 연결할 수 없는 이유는 무엇인가요?

5분 분량
0

Amazon DocumentDB (MongoDB 호환) 클러스터에 연결하려고 하면 문제가 발생합니다.

간략한 설명


Amazon DocumentDB는 Virtual Private Cloud(VPC) 전용 서비스로, 공용 엔드포인트 사용을 지원하지 않습니다. 연결하려면 Amazon Elastic Compute Cloud(Amazon EC2) 인스턴스나 같은 VPC에 있는 다른 AWS 서비스를 인스턴스로 사용해야 합니다.

그러나 VPC 피어링이나 Transit Gateway를 사용해 EC2 인스턴스 또는 다른 VPC나 리전에 있는 AWS 서비스에서 Amazon DocumentDB에 액세스할 수 있습니다. AWS 네트워크 외부에서 Amazon DocumentDB 클러스터에 액세스해야 하는 경우에는 SSH 터널링이나 AWS Client VPN을 사용하세요.

해결 방법

참고: AWS Command Line Interface(AWS CLI) 명령 실행 시 오류가 발생하는 경우 사용하는 AWS CLI가 최신 버전인지 확인하세요.

Amazon DocumentDB 클러스터에 연결할 때 문제가 발생하는 이유에는 여러 가지가 있습니다. 가장 일반적인 근본 원인을 해결하려면 다음 단계를 따르세요.

DB 인스턴스가 사용 가능한 상태가 아님

Amazon DocumentDB 클러스터에 사용 가능한 상태의 인스턴스와 클러스터 최소 한 개가 있는지 확인하세요. 인스턴스가 사용 가능한 상태가 아니면 연결을 수락할 수 없습니다. 자세한 내용은 Amazon DocumentDB 클러스터 상태 모니터링Amazon DocumentDB 인스턴스 상태 모니터링을 참고하세요.

소스가 클러스터에 액세스할 수 있는 권한이 없음

인스턴스에 연결할 때 사용하는 소스가 클러스터에 액세스할 권한이 있는지 확인하세요. 인스턴스가 클러스터의 네트워크 액세스 제어 목록(ACL), 로컬 방화벽, 보안 그룹 규칙에 액세스할 수 있어야 합니다. 다음과 같은 이유로 DB 인스턴스에 연결되는 원본의 트래픽이 차단되었는지 확인해 보세요.

  • DB 인스턴스와 연결된 Amazon Virtual Private Cloud(VPC) 보안 그룹. 필요한 경우 VPC와 연결된 보안 그룹에 DB 인스턴스 송수신과 관련된 소스 트래픽을 허용하는 규칙을 추가합니다. IP 주소, IP 주소 범위, 다른 VPC 보안 그룹을 지정할 수 있습니다.
  • 네트워크 ACL 규칙. VPC에서 네트워크 ACL을 사용하는 경우, DB 인스턴스에서 들어오고 나가는 인바운드 및 아웃바운드 트래픽을 허용하는 규칙이 있는지 확인합니다.
  • 네트워크 또는 로컬 방화벽. DB 인스턴스가 인바운드 및 아웃바운드 통신에 사용하는 포트를 오가는 트래픽을 네트워크에서 허용하는지 확인합니다.

Amazon VPC 서브넷 라우팅 테이블이 트래픽을 허용하지 않음

Amazon VPC 서브넷의 라우팅 테이블이 시스템이나 인스턴스 트래픽을 허용해야 합니다. 각 DB 인스턴스와 연결된 서브넷이 같거나 유사한 라우팅 테이블과 연결되어 있는지 확인합니다.

기본 DB 인스턴스가 다른 라우팅 테이블과 연결된 대기 복제본으로 장애 조치되는 경우 트래픽이 제대로 라우팅되지 않을 수 있습니다. 해당 트래픽이 이전에 라우팅되는 데 문제가 없었더라도 다시 올바르게 라우팅되는지 확인하세요.

잘못된 DNS 이름 또는 엔드포인트

Amazon DocumentDB 클러스터에 연결할 때 올바른 DNS 이름이나 엔드포인트를 사용하고 있는지 확인합니다. 그 후 엔드포인트가 DB 인스턴스에 연결하는 데 사용하는 클라이언트에 맞는 형식인지 확인합니다.

예를 들어, VPC 내 EC2 인스턴스에서 nslookup을 사용해 DB 인스턴스 엔드포인트를 찾을 수 있습니다.

nslookup docdb-2022-12-16-09-10-582.cuh2dlyxxxxx.us-east-1.docdb.amazonaws.com
Server: x.x.x.x
Address: x.x.x.x#53
Non-authoritative answer:
Name: docdb-2022-12-16-09-10-582.cuh2dlyrdizy.us-east-1.docdb.amazonaws.com
Address: x.x.x.x

DNS와 연결 문제를 해결하려면 Amazon DocumentDB 엔드포인트에 연결할 수 없습니다를 참고하세요.

연결이 설정되었는지 확인

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

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

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

연결할 때 사용하는 자격 증명을 확인합니다.

클러스터에 연결할 때 올바른 사용자 이름과 암호를 입력했는지 확인합니다. 암호를 잊은 경우 Amazon DocumentDB 클러스터를 수정해 암호를 재설정할 수 있습니다.

TLS 구성 끄기

Amazon DocumentDB 클러스터에는 TLS 구성이 기본적으로 활성화되어 있습니다. 애플리케이션이 TLS/SSL 연결을 사용하지 않으면 사용자 지정 Amazon DocumentDB 클러스터 파라미터 그룹에서 TLS 구성을 해제하세요. 자세한 내용은 Amazon DocumentDB 클러스터 파라미터 그룹 관리를 참고하세요.

참고: TLS는 정적 파라미터로, 클러스터 파라미터 그룹 변경 내용을 적용하려면 클러스터를 재부팅해야 합니다. 자세한 내용은 Amazon DocumentDB 클러스터 파라미터 수정을 참고하세요.

다른 사용 사례 문제 해결

로컬 발급자 인증서를 가져올 수 없음 오류

MongoDB 드라이버와 CA 인증서 호환으로 인해 “로컬 발급자 인증서를 가져올 수 없음” 오류가 발생할 수 있습니다. TLS가 켜진 상태에서 연결에 안내된 대로 올바른 파라미터를 사용해야 합니다.

재부팅 후 인스턴스에 연결할 수 없음

재부팅 후 인스턴스에 연결하지 못하는 문제가 발생할 수 있습니다. 인스턴스를 재부팅하면 인스턴스 프라이빗 IP 주소가 변경될 수 있습니다. 이 때문에 연결 문제가 발생합니다. Amazon DocumentDB 리소스의 DNS 확인 IP 주소 대신 클러스터나 인스턴스 엔드포인트를 사용하는 것이 좋습니다.

인증 실패 오류

인스턴스에 연결할 때 “인증 실패” 오류가 발생할 수 있습니다. 이 오류는 잘못된 암호나 잘못된 사용자 이름을 사용하는 등 암호 문제로 인해 발생합니다. 아래 단계에 따라 이 오류를 해결하세요.

  1. 올바른 사용자 이름과 암호를 입력했는지 확인합니다.
  2. 복사하여 붙여넣는 방법 대신 암호를 수동으로 입력합니다.
  3. Amazon DocumentDB 콘솔에서이나 AWS CLI를 사용해 비밀번호를 재설정합니다.

여러 번 연결했는데 갑자기 연결이 안 됨

갑자기 연결이 안 되는 경우 인스턴스가 인스턴스 클래스의 데이터베이스 연결 최대 한도에 도달했을 수 있습니다. 연결을 더 많이 허용하려면 인스턴스 클래스를 업그레이드하세요.

클라이언트 측에서 연결 관리를 조사하는 것이 가장 좋습니다. 연결 풀링 및 관련된 제한 시간 설정이 올바르게 설정되어 있는지 확인합니다. Amazon DocumentDB 클러스터에 연결 수를 관리하기에 충분한 설정이어야 합니다. 또 연결 한도에 도달하지 않도록 설정 해야 합니다.

AWS Client VPN을 사용해 로컬 시스템에서 연결할 수 없음

가상 프라이빗 네트워크(VPN)를 사용하는 경우 로컬 시스템에서 Amazon DocumentDB 클러스터에 연결하지 못할 수 있습니다. AWS Client VPN을 올바르게 사용하고 있는지 확인하세요. AWS Client VPN을 사용하면 VPC에서 원격 네트워크에 연결하고, 이 연결을 통해 트래픽을 전달하도록 라우팅을 구성할 수 있습니다.

간헐적 연결 문제

애플리케이션에서 간헐적으로 연결 문제가 발생하는 경우 클러스터에 과도한 워크로드가 있는지 확인하세요. 예를 들어, VolumeWriteIOPs, VolumeReadIOPs, OpcountersCommand, CPUUtilization과 같은 Amazon CloudWatch 지표를 검토하세요.

이 같은 CloudWatch 지표가 급증하는 경우, 차단 때문에 연결 문제가 일어날 수 있습니다. 쿼리 계획이 최적화되지 않아 사용자 쿼리가 늦게 실행되거나 리소스 경합으로 인해 사용자 쿼리가 차단될 수 있습니다. 문제를 일으킨 쿼리를 찾으려면 퍼포먼스 인사이트프로파일러 로그를 사용하세요.

관련 정보

연결 문제

Amazon EC2를 사용해 연결

CloudWatch로 Amazon DocumentDB 모니터링

Amazon DocumentDB 보안

AWS 공식
AWS 공식업데이트됨 8달 전