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 로그

돌아가기

연결 폭풍

이 페이지의 내용