애플리케이션에서 MongoDB deployment 에 연결하려고 할 때 서버 선택 시간 초과 오류가 발생할 수 있습니다. 이 오류는 클라이언트 운전자 구성된 제한 시간 내에 적절한 서버 선택할 수 없음을 나타냅니다.
서버 선택 시간 초과는 일반적으로 네트워크 연결 문제, IP 액세스 제한, DNS SRV 확인 실패 또는 TLS 구성 문제로 인해 발생합니다.
이 페이지에서는 서버 선택 시간 초과의 일반적인 원인을 설명하고 이를 진단하고 해결하는 단계를 제공합니다. 아래 단계를 완료한 후에도 문제가 지속되면 기술 지원팀 문의 .
전제 조건 검사
애플리케이션 에 서버 선택 시간 초과가 발생했는지 확인하려면 클라이언트 오류 메시지를 검토 . 일반적인 예는 다음과 같습니다.
MongoTimeoutError: Server selection timed out after 30000 msMongoServerSelectionError: connection timed outMongoServerSelectionError: getaddrinfo ENOTFOUNDNo suitable servers found (`serverSelectionTryOnce` set): [Failed to resolve '<my-database-host>]
배포 가용성 확인
Atlas 배포서버의 경우, 녹색 점 상태 표시기가 있는 Atlas UI의 클러스터 페이지에서 클러스터 상태
Active인지 확인하세요.자체 관리형 배포에서는
mongod프로세스 실행 예상 포트에서 수신 대기 중인지 확인합니다.
로그 메시지 확인
서버 또는 운전자 에서 로그 메시지를 활성화하여 제한 시간이 만료될 때까지 클라이언트 반복적으로 서버 검색을 시도하고 있는지 확인합니다.
클라이언트 로그
클라이언트 로그에는 클러스터 토폴로지 검색을 반복적으로 시도한 후 시간 초과가 발생할 수 있습니다. 메시지는 다음을 참조할 수 있습니다.
DNS 확인 실패.
TLS 핸드셰이크 오류.
완료되지 않은 연결 시도입니다.
서버 로그(자체 관리)
명령을 실행 때 또는 구성된 getLog 로그 대상에서 서버 로그에 들어오는 연결 시도가 없다고 표시되면 일반적으로 네트워크 연결 문제를 나타냅니다.
일반적인 문제 및 해결 방법
다음 섹션에서는 서버 선택 시간 초과의 일반적인 원인과 해결 방법에 대해 설명합니다.
로컬 네트워크 또는 방화벽 차단 연결
클라이언트 배포서버 의 어떤 호스팅하다 에도 TCP 연결을 설정할 수 없는 경우 서버 선택이 실패합니다.
연결을 복원 하려면 다음을 수행합니다.
클라이언트 호스팅하다 의 아웃바운드 트래픽이 TCP 포트
27017(또는 구성된 사용자 지정 포트)에서 허용되는지 확인합니다.방화벽 규칙, 보안 그룹 및 네트워크 ACL에 제한 사항이 있는지 확인합니다.
연결을 가로채는 VPN, 프록시 또는 로컬 방화벽 없는지 확인합니다.
변경한 후 연결을 다시 시도하세요.
클라이언트 IP 주소가 허용되지 않음(Atlas)
클러스터 사용할 수 있지만 들어오는 연결을 받지 못하는 경우:
Atlas UI 에서 Network Access(네트워크 액세스)로 이동합니다.
클라이언트의 공용 IP 주소 IP 액세스 목록 에 포함되어 있는지 확인합니다.
테스트에 필요한 경우
0.0.0.0/0에서 액세스 일시적으로 허용합니다.변경 사항을 저장하고 구성이 적용 때까지 기다립니다.
연결을 다시 시도합니다.
IP 액세스 목록에 대한 자세한 내용은 IP 액세스 목록 항목 구성을 참조하세요.
DNS SRV 확인 실패
클라이언트 ENOTFOUND 과 같은 오류를 보고하거나 SRV(서비스) 조회 중에 실패하는 경우 환경에서 DNS SRV 레코드를 확인하지 못할 수 있습니다.
DNS SRV 확인 확인
클라이언트 호스팅하다 에서 다음 단계를 따르세요.
연결 문자열 에서 호스트 이름을 식별합니다.
mongodb+srv://<cluster-name>.mongodb.net DNS SRV 조회를 실행합니다.
nslookup -type=SRV _mongodb._tcp.<cluster-name>.mongodb.net 명령이 MongoDB 호스트를 가리키는 하나 이상의 SRV 레코드를 반환하는지 확인합니다.
레코드가 반환되지 않는 경우:
호스트 이름이 올바른지 확인합니다.
DNS 제공자 가 SRV 레코드를 지원하는지 확인합니다.
아웃바운드 DNS 쿼리가 차단되지 않았는지 확인합니다.
SRV 제한 사항 해결
SRV 레코드를 확인할 수 없는 경우 사용할 배포서버 업데이트 애플리케이션 에서 표준 연결 문자열 (비SRV)을 조회 해야 합니다.
mongodb://host1,host2,host3/?replicaSet=<name>
연결을 다시 시도합니다.
연결 문자열에 대해 자세히 학습 연결 문자열을 참조하세요.
TLS 구성 문제
오류 출력이 TLS 또는 SSL 핸드셰이크 실패를 참조하는 경우 다음 단계에 따라 일반적인 TLS 구성 문제를 해결할 수 있습니다.
클라이언트 운전자 TLS 1.2 이상을 지원하는지 확인합니다.
시스템 루트 인증서가 최신 상태인지 확인합니다.
자체 관리형 배포의 경우:
인증서 호스트 이름이 연결 문자열 과 일치하는지 확인합니다.
전체 인증서 체인을 사용할 수 있는지 확인합니다.
이 단계를 완료한 후 연결을 다시 시도하세요.
TLS/SSL에 대해 자세히 학습 TLS/SSL 연결을 구성하는 방법을 학습 TLS/SSL(전송 암호화)을 참조하세요.
해결 방법 확인
기본 문제를 해결한 후 다음을 수행합니다.
클라이언트 시간 초과 없이 연결을 설정합니다.
애플리케이션 로그는 성공적인 서버 선택을 나타냅니다.
Atlas 지표 (해당되는 경우)는 활성 연결을 표시합니다.
서버 로그는 들어오는 클라이언트 연결을 기록 .
추가 지원을 위해 수집할 진단
문제가 지속되면 기술 지원에 문의하기 전에 다음을 수집합니다.:
클라이언트 오류 메시지 및 스택 추적 완료
MongoDB 연결 문자열 (자격 증명 제거됨)
드라이버 이름 및 버전
MongoDB 서버 버전
DNS SRV 조회 출력
네트워크 연결 테스트 결과
관련 MongoDB 로그