Make the MongoDB docs better! We value your opinion. Share your feedback for a chance to win $100.
Click here >
Docs Menu
Docs Home
/ /

서버 선택 시간 초과 문제 해결

애플리케이션에서 MongoDB deployment 에 연결하려고 할 때 서버 선택 시간 초과 오류가 발생할 수 있습니다. 이 오류는 클라이언트 운전자 구성된 제한 시간 내에 적절한 서버 선택할 수 없음을 나타냅니다.

서버 선택 시간 초과는 일반적으로 네트워크 연결 문제, IP 액세스 제한, DNS SRV 확인 실패 또는 TLS 구성 문제로 인해 발생합니다.

이 페이지에서는 서버 선택 시간 초과의 일반적인 원인을 설명하고 이를 진단하고 해결하는 단계를 제공합니다. 아래 단계를 완료한 후에도 문제가 지속되면 기술 지원팀 문의 .

애플리케이션 에 서버 선택 시간 초과가 발생했는지 확인하려면 클라이언트 오류 메시지를 검토 . 일반적인 예는 다음과 같습니다.

  • MongoTimeoutError: Server selection timed out after 30000 ms

  • MongoServerSelectionError: connection timed out

  • MongoServerSelectionError: getaddrinfo ENOTFOUND

  • No suitable servers found (`serverSelectionTryOnce` set): [Failed to resolve '<my-database-host>]

  • Atlas 배포서버의 경우, 녹색 점 상태 표시기가 있는 Atlas UI의 클러스터 페이지에서 클러스터 상태 Active 인지 확인하세요.

  • 자체 관리형 배포에서는 mongod 프로세스 실행 예상 포트에서 수신 대기 중인지 확인합니다.

서버 또는 운전자 에서 로그 메시지를 활성화하여 제한 시간이 만료될 때까지 클라이언트 반복적으로 서버 검색을 시도하고 있는지 확인합니다.

클라이언트 로그에는 클러스터 토폴로지 검색을 반복적으로 시도한 후 시간 초과가 발생할 수 있습니다. 메시지는 다음을 참조할 수 있습니다.

  • DNS 확인 실패.

  • TLS 핸드셰이크 오류.

  • 완료되지 않은 연결 시도입니다.

명령을 실행 때 또는 구성된 getLog 로그 대상에서 서버 로그에 들어오는 연결 시도가 없다고 표시되면 일반적으로 네트워크 연결 문제를 나타냅니다.

다음 섹션에서는 서버 선택 시간 초과의 일반적인 원인과 해결 방법에 대해 설명합니다.

클라이언트 배포서버 의 어떤 호스팅하다 에도 TCP 연결을 설정할 수 없는 경우 서버 선택이 실패합니다.

연결을 복원 하려면 다음을 수행합니다.

  1. 클라이언트 호스팅하다 의 아웃바운드 트래픽이 TCP 포트 27017 (또는 구성된 사용자 지정 포트)에서 허용되는지 확인합니다.

  2. 방화벽 규칙, 보안 그룹 및 네트워크 ACL에 제한 사항이 있는지 확인합니다.

  3. 연결을 가로채는 VPN, 프록시 또는 로컬 방화벽 없는지 확인합니다.

  4. 변경한 후 연결을 다시 시도하세요.

클러스터 사용할 수 있지만 들어오는 연결을 받지 못하는 경우:

  1. Atlas UI 에서 Network Access(네트워크 액세스)로 이동합니다.

  2. 클라이언트의 공용 IP 주소 IP 액세스 목록 에 포함되어 있는지 확인합니다.

  3. 테스트에 필요한 경우 0.0.0.0/0에서 액세스 일시적으로 허용합니다.

  4. 변경 사항을 저장하고 구성이 적용 때까지 기다립니다.

  5. 연결을 다시 시도합니다.

IP 액세스 목록에 대한 자세한 내용은 IP 액세스 목록 항목 구성을 참조하세요.

클라이언트 ENOTFOUND 과 같은 오류를 보고하거나 SRV(서비스) 조회 중에 실패하는 경우 환경에서 DNS SRV 레코드를 확인하지 못할 수 있습니다.

클라이언트 호스팅하다 에서 다음 단계를 따르세요.

  1. 연결 문자열 에서 호스트 이름을 식별합니다.

    mongodb+srv://<cluster-name>.mongodb.net
  2. DNS SRV 조회를 실행합니다.

    nslookup -type=SRV _mongodb._tcp.<cluster-name>.mongodb.net
  3. 명령이 MongoDB 호스트를 가리키는 하나 이상의 SRV 레코드를 반환하는지 확인합니다.

  4. 레코드가 반환되지 않는 경우:

    • 호스트 이름이 올바른지 확인합니다.

    • DNS 제공자 가 SRV 레코드를 지원하는지 확인합니다.

    • 아웃바운드 DNS 쿼리가 차단되지 않았는지 확인합니다.

SRV 레코드를 확인할 수 없는 경우 사용할 배포서버 업데이트 애플리케이션 에서 표준 연결 문자열 (비SRV)을 조회 해야 합니다.

mongodb://host1,host2,host3/?replicaSet=<name>

연결을 다시 시도합니다.

연결 문자열에 대해 자세히 학습 연결 문자열을 참조하세요.

오류 출력이 TLS 또는 SSL 핸드셰이크 실패를 참조하는 경우 다음 단계에 따라 일반적인 TLS 구성 문제를 해결할 수 있습니다.

  • 클라이언트 운전자 TLS 1.2 이상을 지원하는지 확인합니다.

  • 시스템 루트 인증서가 최신 상태인지 확인합니다.

  • 자체 관리형 배포의 경우:

    • 인증서 호스트 이름이 연결 문자열 과 일치하는지 확인합니다.

    • 전체 인증서 체인을 사용할 수 있는지 확인합니다.

이 단계를 완료한 후 연결을 다시 시도하세요.

TLS/SSL에 대해 자세히 학습 TLS/SSL 연결을 구성하는 방법을 학습 TLS/SSL(전송 암호화)을 참조하세요.

기본 문제를 해결한 후 다음을 수행합니다.

  • 클라이언트 시간 초과 없이 연결을 설정합니다.

  • 애플리케이션 로그는 성공적인 서버 선택을 나타냅니다.

  • Atlas 지표 (해당되는 경우)는 활성 연결을 표시합니다.

  • 서버 로그는 들어오는 클라이언트 연결을 기록 .

문제가 지속되면 기술 지원에 문의하기 전에 다음을 수집합니다.:

  • 클라이언트 오류 메시지 및 스택 추적 완료

  • MongoDB 연결 문자열 (자격 증명 제거됨)

  • 드라이버 이름 및 버전

  • MongoDB 서버 버전

  • DNS SRV 조회 출력

  • 네트워크 연결 테스트 결과

  • 관련 MongoDB 로그

돌아가기

연결 폭풍

이 페이지의 내용