문서 메뉴
문서 홈
/
MongoDB Atlas
/

연결 문제 해결

이 페이지의 내용

  • 클러스터 Connect 버튼이 비활성화되었습니다.
  • IP 액세스 목록에 없는 IP 주소 연결
  • 클러스터에 대한 인증 실패
  • 클러스터에 열려 있는 연결이 너무 많음
  • 연결 수가 급증하는 동안 샤드 클러스터의 성능 저하
  • 방화벽 뒤에서 연결을 시도하는 경우
  • 클러스터 가용성
  • MongoDB Compass 문제 해결
  • 연결 문자열 문제

이 페이지에서는 일반적인 연결 문제와 가능한 해결 방법을 간략하게 설명합니다.

Atlas 클러스터에 연결하는 방법에 대해 자세히 알아보려면 Atlas로 시작하기 튜토리얼을 참조하세요.

참고

지원을 원하는 엔터프라이즈 고객인 경우 티켓을 제출하세요. 커뮤니티 지원을 받으려면 MongoDB Community 리소스를 참조하세요.

참고

현재 서버리스 인스턴스는 특정 드라이버 또는 드라이버 버전을 통한 연결을 지원하지 않습니다. 자세한 내용은 서버리스 인스턴스 제한 사항을 참조하세요.

클러스터가 프로비저닝 상태인 경우 클러스터의 Connect 버튼이 비활성화될 수 있습니다. 클러스터는 처음 배포될 때 프로비저닝해야 합니다. 또한 클러스터를 확장 또는 축소할 때 프로비저닝을 수행해야 합니다. 프로비저닝 프로세스는 최대 10 분이 걸릴 수 있으며, 그 후에 Connect 버튼이 활성화됩니다.

Atlas cluster에 연결하기 전에 클러스터 프로젝트의 IP 액세스 목록 에 호스트의 IP 주소를 추가했는지 확인하세요. Atlas는 IP 액세스 목록에 있는 IP 주소 및 CIDR 주소 범위의 클라이언트 연결만 허용합니다.

Atlas에 연결하려면 MongoDB database 사용자로 인증해야 합니다. 클러스터에 대한 데이터베이스 사용자를 만들려면 데이터베이스 사용자 구성을 참조하세요.

사용자를 만들었는데 인증하는 데 문제가 있는 경우 다음을 시도해 보세요:

  • 데이터베이스 사용자에 대해 올바른 사용자 이름과 비밀번호를 사용하고 있는지, 올바른 클러스터에 연결하고 있는지 확인하세요.

  • 연결 문자열에 올바른 authSource 데이터베이스를 지정하고 있는지 확인하세요.

  • 비밀번호에 특수 문자가 포함된 경우 연결 문자열 비밀번호의 특수 문자를 참조하세요.

Atlas는 클러스터에 대한 동시 수신 연결에 대한 제한을 설정합니다. 클러스터의 경우 클러스터 계층을 기반으로 합니다. 이 제한에 도달했을 때 연결을 시도하면 MongoDB는 connection refused because too many open connections 이라는 오류를 표시합니다.

클러스터 계층과 최대 동시 연결 수에 대한 자세한 비교는 연결 제한 및 클러스터 계층을 참조하세요.

  • 현재 사용하지 않는 클러스터에 대해 열려 있는 연결을 모두 닫습니다.

  • 더 많은 동시 연결을 지원하려면 클러스터를 더 상위 계층으로 스케일링합니다.

  • 애플리케이션을 다시 시작합니다.

  • 앞으로 이 문제를 방지하려면 maxPoolSize 연결 문자열 옵션을 사용하여 연결 풀의 연결 수를 제한하는 것이 좋습니다.

이 문제를 해결하는 방법을 알아보려면 연결 문제 해결 페이지를 참조하세요.

Atlas는 비공개 엔드포인트 서비스의 로드 밸런서를 사용하여 샤드 클러스터에 대해 최적화된 SRV 연결 문자열을 생성할 수 있습니다. 최적화된 연결 문자열을 사용하는 경우 Atlas는 애플리케이션과 샤드 클러스터 간의 mongos당 연결 수를 제한합니다. mongos당 제한된 연결은 연결 수가 급증하는 동안 성능을 향상시킵니다.

참고

Atlas는 Google Cloud 또는 Azure에서 실행되는 클러스터에 대해 최적화된 연결 문자열을 지원하지 않습니다.

비공개 엔드포인트 샤드 클러스터의 최적화된 연결 문자열에 대해 자세히 알아보려면 비공개 엔드포인트 샤드 클러스터를 위한 연결 성능 향상을 참고하세요.

Atlas는 CDN을 사용하여 콘텐츠를 빠르게 제공합니다. 조직에서 방화벽을 사용하는 경우, 방화벽의 허용 목록에 다음 Atlas CDN 호스트를 추가하여 Atlas UI에 액세스하는 데 문제가 발생하지 않도록 하세요: https://assets.mongodb-cdn.com/.

Atlas 클러스터는 포트 27017 에서 작동합니다. 클러스터에 연결하려면 이 포트에 연결할 수 있어야 합니다. 또한 다음에 대해 적절한 포트가 열려 있는지 확인합니다.

  • 샤드 클러스터의 경우 포트 27016에 대한 액세스 권한을 부여합니다.

  • BI Connector의 경우 포트 27015에 대한 액세스 권한을 허용하세요.

타사 Outgoing port tester를 사용하여 포트에 도달할 수 있는지 확인할 수 있습니다.

예제

해당 포트에 액세스할 수 없는 경우 시스템 방화벽 설정을 확인하고 해당 설정이 대상 포트에 대한 액세스를 차단하고 있지 않은지 확인하세요.

mongodb+srv:// 연결 문자열 을 사용 중이고 드라이버 또는 셸에서 Atlas 클러스터의 DNS 호스트를 찾을 수 없는 경우 클러스터가 일시 중지되거나 삭제될 수 있습니다. 클러스터가 존재하는지 확인합니다. 일시 중지된 클러스터인 경우 필요한 경우 클러스터를 재개 할 수 있습니다.

참고

연결이 없는 상태로 60일이 지나면 Atlas가 유휴 상태인 M0 클러스터를 자동으로 일시 중지합니다.

MongoDB Compass를 사용하여 cluster에 연결했는데 문제가 발생하는 경우 다음을 참조하세요:

자체 관리형 X.509 인증서 또는 Atlas에서 관리하는 자동 생성 X.509 인증서 를 사용하여 MongoDB 데이터베이스에 인증하는 경우, MongoDB Compass에 연결할 때 다음을 수행해야 합니다.

  1. MongoDB Compass에서 Fill in connection fields individually를 선택합니다.

  2. Authentication 드롭다운 메뉴에서 X.509를 선택합니다.

  3. More Options0}을 선택합니다.

  4. SSL 드롭다운 메뉴에서 Server and Client Validation를 선택합니다.

  5. 다운로드한 Atlas 관리형 인증서에 동일한 경로를 추가하거나 자체 관리형 인증서(사용하는 항목에 따라 다름)를 Certificate Authority, Client Certificate, Client Private Key 등의 각 필드에 추가합니다.

자세한 내용은 MongoDB Compass 문서에서 MongoDB에 연결을 참조하세요.

Atlas에 연결하는 데 사용하는 연결 문자열 형식 은 다음을 포함한 여러 요인에 따라 달라집니다.

연결 문자열을 프로덕션에 적용하기 전에 테스트 환경에서 확인하세요.

암호에 특수 문자가 포함되어 있고 연결 문자열 URI에 암호를 사용하는 경우 특수 문자를 인코딩합니다.

퍼센트 인코딩 이 필요한 특수 문자를 사용하여 비밀번호를 업데이트하려고 하는 경우 하면 다음과 같은 오류 메시지가 나타납니다.

This password contains special characters which will be URL-encoded.

참고

다음 문자와 공백 문자는 퍼센트 인코딩 을 사용하여 변환해야 합니다. 사용자 이름 또는 비밀번호에 포함된 경우:

: / ? # [ ] @ ! $ & ' ( ) * , ; = %

예를 들어 일반 텍스트의 비밀번호가 p@ssw0rd'9'!인 경우 비밀번호를 다음과 같이 인코딩해야 합니다:

p%40ssw0rd%279%27%21

언어 선택 드롭다운 메뉴를 사용하여 이 섹션의 인코딩 예제의 언어를 설정합니다.


중요

연결 문자열 URI 외부에서 비밀번호를 사용하는 경우(예: mongosh 에 붙여넣는 경우) 비밀번호에 특수 문자를 인코딩하지 마세요.

이 오류 메시지가 표시되면 드라이버가 최신 버전이 아닐 수 있습니다. 드라이버 업데이트에 대한 지침은 해당 드라이버 설명서를 참조하세요.

DNS 시드 목록 연결 문자열 형식 을 사용하여 Atlas에 연결할 때 다음 오류가 표시될 수 있습니다.

DNSHostNotFound: Failed to look up service "<MongoDB service name>"

이 오류는 ISP가 제공하는 기본 DNS 서버를 사용할 때 발생할 수 있습니다. 해당 DNS 서버는 DNS 시드 목록 연결 문자열 형식에서 사용하는 SRV 조회를 지원하지 않을 수 있습니다.

이 문제를 해결하려면 공용 DNS 서버 를 사용하도록 DNS 구성을 변경해 볼 수 있습니다.

예제

Google Public DNS를 사용 하도록 네트워크 설정을 구성할 수 있습니다.대신 ISPDNS 서버를 사용합니다.

공용 DNS 서버를 사용하도록 네트워크 설정을 업데이트한 후 클러스터에 연결합니다.

Ubuntu 18 를 실행하는 경우.04 및 DNS 시드 목록 연결 문자열 형식(mongodb+srv://)을 사용하여 MongoDB 데이터베이스 도구 중 하나(mongodump, mongorestore 등)에서 Atlas에 연결하는 경우 다음 오류가 표시될 수 있습니다.

lookup nta8e.mongodb.net on 123.45.67.8:27017: cannot unmarshal DNS message

이 경우 다음 연결 옵션 중 하나를 대신 사용합니다.

  • SRV가 아닌 연결 문자열 (mongodb://)과 함께 --uri 옵션을 사용합니다.

  • --host 옵션을 사용하여 연결할 호스트를 지정합니다.

드라이버 또는 Compass에서 DNS 시드 목록 연결 문자열 형식(mongodb+srv://)을 사용하는 경우 다음 오류가 발생할 수 있습니다.

Error: querySrv ECONNREFUSED _mongodb._tcp.<SRV Record>

이 문제를 해결하려면 이전 버전의 드라이버 또는 Compass를 선택하여 표준 연결 문자열 형식을 사용하십시오. Compass를 사용 시 SRV 기록 값을 설정하지 말고 대신 호스트 이름포트 값을 설정합니다.

← Google 클라우드로 연결 관리