Atlas는 여러 연결 문자열을 제공합니다. 이러한 문자열을 사용하면 공개(public) 컨텍스트와 비공개(private) 컨텍스트 모두에서 클러스터에 연결할 수 있습니다. Atlas는 항상 클러스터에 고유한 연결 문자열을 할당하여 Atlas 전체에서 배포된 두 클러스터가 호스트 이름 또는 연결 문자열을 공유하지 않도록 합니다.
애플리케이션에서 사용하는 연결 문자열을 식별하려면 어떻게 해야 하나요?
연결 문자열의 URI 구조는 문자열의 유형을 나타냅니다. 피어링 연결 또는 비공개 엔드포인트를 생성한 경우 Atlas 이러한 옵션 중 하나 이상을 사용할 수 있도록 표시합니다.
클러스터에 여러 개의 연결 문자열이 있는 이유는 무엇인가요?
Atlas에 연결하려면 애플리케이션이 클러스터와 통신할 수 있는 URI를 가리키도록 하세요. Atlas는 둘 이상의 노드 또는 호스트로 클러스터를 생성합니다. 각 노드에는 IP 주소로 확인되는 고유한 호스트 이름이 있습니다. Atlas가 연결하는 연결 문자열로 알려진 URI에는 호스트 이름이 두 개 이상 있을 수 있습니다. 허용된 IP 주소에서 클러스터 호스트에 대한 연결을 허용하도록 Atlas를 구성합니다.
Atlas는 인증 및 TLS를 통해 공용 IP 주소로부터 연결을 보호합니다. 비공개 IP 주소로 연결하려는 경우 다음을 사용할 수 있습니다.
이러한 기능은 모두 보안 네트워크 내에서 내부 IP 주소를 통한 통신을 관리합니다.
Atlas는 보안 네트워크를 사용할 때 연결 문자열을 둘 이상 제공합니다. 각 네트워크는 서로 다른 IP 주소로 확인되는 문자열을 제공합니다.
모든 클러스터에 표준 연결 문자열이 있습니다. 이것은 클러스터의 것으로 해결됩니다:
인터넷 연결을 위한 공용 IP 주소 및
피어링된 VPC에서 확인된 AWS 클러스터의 VPC 프라이빗 IP 주소입니다.
인터넷을 통해 연결하거나 AWS의 피어링된 클러스터에 연결하는 애플리케이션에 이 문자열을 사용합니다.
피어링 네트워크가 있는 클러스터에는 피어링 연결 문자열용 프라이빗 IP가 있습니다. 이 문자열은 다음에서 사용할 수 있는 IP 주소로 확인됩니다.
Azure 또는 Google Cloud의 피어링된 네트워크
사용자 지정 DNS 서비스를 사용하는 AWS 피어링 클러스터.
연결하는 애플리케이션에 이 연결 문자열을 사용합니다.
Azure 또는 Google Cloud 피어링 네트워크 내
사용자 지정 DNS 서비스와 함께 AWS를 사용하는 경우 AWS 클러스터로.
비공개 엔드포인트가 구성된 리전의 AWS 또는 Azure 클러스터에는 하나 이상의 연결 문자열이 있습니다. 각 문자열은 Atlas VPC 또는 VNet의 로드 밸런서에 직접 연결되는 VPC 또는 VNet의 네트워크 인터페이스의 비공개 IP 주소로 확인됩니다. 비공개 엔드포인트와 연결하는 애플리케이션에 이 연결 문자열을 사용합니다.
피어링 전용 모드에서 Google Cloud 또는 Azure 클러스터에 어떤 의미가 있나요?
2020년 3월 31일 이전에는 피어 네트워크 Azure 또는 Google Cloud 클러스터의 데이터베이스에 연결하기 위해 피어링 전용 모드를 활성화해야 했습니다. 이 모드는 다음과 같습니다.
영향을 받는 글로벌 DNS 확인 및
피어링된 네트워크 외부의 모든 데이터베이스 연결을 제한합니다.
다중 호라이즌(Multiple horizon)은 이러한 제한을 해제하고 다음과 같은 추가 기능을 제공합니다.
다중 호라이즌(multiple horizon)을 활용하려면 다음 작업을 완료합니다.
애플리케이션의 기존 연결 문자열을 업데이트하여 피어링 연결 문자열용 프라이빗 IP를 사용합니다.
클러스터에 여러 개의 연결 문자열이 있는 이유에 설명된 문자열을 사용하여 연결합니다.
참고
현재 기존의 피어링 지원 연결 문자열을 사용하여 클러스터에 계속 연결할 수 있습니다. 피어링 전용 모드는 향상된 기능에 대한 액세스를 방지하고 다중 지평의 제한을 줄입니다. 새 기능을 사용하고 레거시 제한을 제거하려면 MongoDB를 사용하려면 새 연결 문자열을 사용해야 합니다.
VNet-피어링된 Azure 클러스터가 여러 리전에 걸칠 수 있나요?
예.
피어링용 프라이빗 IP 연결 문자열을 사용하여 연결하도록 애플리케이션을 변경하세요. 이 변경을 통해 애플리케이션이 UI 또는 API를 사용하여 피어링된 네트워크에서 연결할 수 있습니다.
더 많은 리전으로 확장하려면 먼저 기존 Azure 클러스터에서 피어링 전용 모드를 비활성화합니다.
피어링 전용 모드를 비활성화하려면 어떻게 하나요?
다음을 사용하여 피어링 전용 모드를 비활성화합니다:
AtlasGo Atlas 에서 프로젝트 의 Clusters 페이지로 고 (Go) 합니다.
아직 표시되지 않은 경우 탐색 표시줄의 Organizations 메뉴에서 원하는 프로젝트가 포함된 조직을 선택합니다.
아직 표시되지 않은 경우 탐색 표시줄의 Projects 메뉴에서 원하는 프로젝트를 선택합니다.
사이드바에서 Database 제목 아래의 Clusters를 클릭합니다.
Clusters(클러스터) 페이지가 표시됩니다.
피어링 연결 문자열에 비공개 IP를 사용하도록 모든 애플리케이션을 업데이트합니다.
Atlas 클러스터를 사용하는 애플리케이션의 모든 URL을 피어링 연결 문자열을 위한 비공개 IP를 사용하도록 변경하세요.
Atlas에서 Project Settings 페이지로 이동합니다.
아직 표시되지 않은 경우 탐색 표시줄의 Organizations 메뉴에서 원하는 프로젝트가 포함된 조직을 선택합니다.
아직 표시되지 않은 경우 탐색 표시줄의 Projects 메뉴에서 원하는 프로젝트를 선택합니다.
사이드바에서 Project Settings를 클릭합니다.
프로젝트 설정 페이지가 표시됩니다.
프로젝트 의 모든 클러스터가 MongoDB 7.0 이상을 사용하는지 확인합니다.
모든 클러스터와 해당 MongoDB 버전을 반환하려면 get all API 엔드포인트를 호출합니다.
예시
curl --user "{PUBLIC-KEY}:{PRIVATE-KEY}" --digest \ --header "Accept: application/json" \ --header "Content-Type: application/json" \ --include \ --request GET "https://cloud.mongodb.com/api/atlas/v1.0/groups/{GROUP-ID}/clusters?pretty=true"
성공하면 응답에 다음이 포함되어야 합니다.
{ "results": [{ ... "mongoDBMajorVersion": "6.0", "mongoDBVersion": "6.0.14", ... },{ ... "mongoDBMajorVersion": "6.0", "mongoDBVersion": "6.0.12", ... } ] }
피어링 연결 문자열에 비공개 IP를 사용하도록 모든 애플리케이션을 업데이트합니다.
Atlas 클러스터를 사용하는 애플리케이션의 모든 URL을 피어링 연결 문자열을 위한 비공개 IP를 사용하도록 변경하세요.
클러스터에서 비공개 IP 모드를 비활성화합니다.
API 엔드포인트를 호출하여 비공개 IP 모드를 비활성화합니다.
예시
curl을 사용하여 다음 명령을 호출합니다.
curl --user "{PUBLIC-KEY}:{PRIVATE-KEY}" --digest \ --header "Accept: application/json" \ --header "Content-Type: application/json" \ --include \ --request PATCH "https://cloud.mongodb.com/api/atlas/v1.0/groups/{GROUP-ID}/privateIpMode?pretty=true" \ --data ' { "enabled" : false }'
{GROUP-ID}를 프로젝트의 프로젝트 ID로 변경합니다.
성공하면 응답이 표시됩니다.
1 { 2 "enabled" : false 3 }
사용자 지정 DNS를 사용할 때 AWS VPC 피어링에 어떤 영향을 주나요?
2020년 3월 31일 이전에는 사용자 지정 DNS 서비스를 사용하고 Atlas로 VPC 피어링된 AWS에 배포된 애플리케이션은 비공개 IP 주소를 통해 연결할 수 없었습니다.
공개 IP 주소로 사용자 지정 DNS가 확인됩니다.
AWS 내부 DNS가 비공개 IP 주소로 확인됩니다.
AWS에서 사용자 지정 DNS 서비스를 사용하여 배포된 애플리케이션은 피어링 연결 문자열에 개인 IP를 사용해야 합니다.
이러한 문자열을 표시하려면 다음을 수행합니다.
Atlas에서 Project Settings 페이지로 이동합니다.
아직 표시되지 않은 경우 탐색 표시줄의 Organizations 메뉴에서 원하는 프로젝트가 포함된 조직을 선택합니다.
아직 표시되지 않은 경우 탐색 표시줄의 Projects 메뉴에서 원하는 프로젝트를 선택합니다.
사이드바에서 Project Settings를 클릭합니다.
프로젝트 설정 페이지가 표시됩니다.
표준 연결 문자열
표준 연결 문자열은 다음 형식을 따릅니다:
mongodb://xyz456-shard-00-00.ab123.mongodb.net:27017 mongodb+srv://xyz456.ab123.mongodb.net
ab123 앞의 점이 중요합니다. 이 형식을 사용하는URI는 VPC 피어링이 구성된 AWS 내부에서 연결하는 경우를 제외하고 공용 IP 주소로 확인됩니다.
중요
이 형식은 레거시 연결 문자열에서 한 문자를 변경합니다. 클러스터 이름 뒤에 위치하는 하이픈(-)이 마침표(.)로 바뀝니다.
예를 들어 이 레거시 연결 문자열은 다음과 같습니다.
mongodb+srv://xyx456-ab123.mongodb.net
이 표준 연결 문자열로 작성됩니다.
mongodb+srv://xyx456.ab123.mongodb.net
새 클러스터의 경우 복제본 세트 및 샤드는 클러스터 이름에서 이름을 파생하지 않습니다. 새 이름은 6개의 영숫자 문자 ID를 사용합니다.
프라이빗 연결 문자열
비공개 연결 문자열은 이 형식을 따릅니다.
mongodb://xyx456-shard-00-00-pri.ab123.mongodb.net:27017 mongodb+srv://xyx456-pri.ab123.mongodb.net
ab123 앞의 -pri가 중요합니다. 이 형식을 사용하는 URI는 피어링된 네트워크 내에서 연결할 수 있는 비공개 IP 주소로 확인됩니다. 클러스터에 네트워크 피어링을 구성하는 경우 클러스터에 연결 시 새 호스트 이름을 사용해야 피어링을 사용할 수 있습니다.
중요
새 클러스터에서 복제본 세트와 샤드는 클러스터 이름에서 이름을 파생하지 않습니다. 새 이름에는 6개의 영숫자 ID가 사용됩니다.
Amazon Web Services Privatelink 연결 문자열
AWS PrivateLink 연결 문자열은 다음 형식을 따릅니다.
mongodb://pl-0-us-east-1a.ab123.mongodb.net:1024 mongodb+srv://pl-0-us-east-1a.ab123.mongodb.net
지역화된 비공개 엔드포인트 설정을 활성화하는 경우 AWS PrivateLink 연결 문자열은 다음 형식을 따릅니다:
mongodb://pl-0-us-west-1.ab123.mongodb.net:1024 mongodb+srv://cluster0-pl-0-us-west-1.ab123.mongodb.net
이 형식을 사용하는 URI는 누군가 PrivateLink를 구성한 AWS VPC를 통해 연결할 수 있지만, 차례로 피어링된 다른 VPC에서 액세스할 수도 있습니다.
Azure Private Link 연결 문자열
Azure Private Link 연결 문자열은 다음 형식을 따릅니다.
mongodb://pl-0-eastus2.ab123.mongodb.net:1024 mongodb+srv://pl-0-eastus2.ab123.mongodb.net
지역화된 비공개 엔드포인트 설정을 활성화하는 경우 Azure Private Link 연결 문자열은 다음 형식을 따릅니다.
mongodb://pl-0-eastus2.ab123.mongodb.net:1024 mongodb+srv://cluster0-pl-0-eastus2.ab123.mongodb.net
이 형식을 사용하는 URI는 누군가 비공개 링크를 구성한 Azure VNet을 통해 연결할 수 있지만, 차례로 피어링된 다른 VNet에서 액세스할 수도 있습니다.
레거시 연결 문자열
2020년 3월 31일 이전에 Atlas 연결 문자열을 다음과 같이 작성했습니다.
AWS | | ||
Azure | | ||
Google Cloud | |
프라이빗 전용 모드를 활성화한 경우 이러한 호스트 이름은 피어링된 네트워크 IP 주소로 확인됩니다. 해당 모드를 비활성화하면 호스트 이름이 공용 IP 주소로 확인됩니다.
애플리케이션이 피어링 전용 모드에서 레거시 연결 문자열을 사용하는 경우 피어링 연결 문자열용 프라이빗 IP로 전환하세요.
비공개 엔드포인트 사용하여 샤딩된 클러스터의 연결 성능을 최적화하려면 어떻게 해야 하나요?
Atlas는 비공개 엔드포인트 서비스의 로드 밸런서를 사용하여 샤딩된 클러스터에 대해 최적화된 SRV 연결 문자열을 생성할 수 있습니다. 최적화된 연결 문자열을 사용하는 경우 Atlas는 애플리케이션과 샤딩된 클러스터 간의 mongos당 연결 수를 제한합니다. mongos당 제한된 연결은 연결 수가 급증하는 동안 성능을 향상시킵니다.
최적화된 연결 문자열을 사용하려면 다음 기준을 모두 충족해야 합니다.
샤딩된 클러스터가 AWS에서 실행되는지 확인합니다.
샤딩된 클러스터가 MongoDB 버전 5.0 이상을 실행하는지 확인합니다. 현재 클러스터에서 이전 버전의 MongoDB를 실행 중인 경우, 최적화된 SRV 연결 문자열을 사용하려면 클러스터의 MongoDB 버전을 버전 5.0 이상으로 업그레이드하세요.
cluster용 비공개 엔드포인트를 설정합니다 .
다음 중 하나를 사용합니다.
단일 리전 클러스터 또는
리전화된 프라이빗 엔드포인트가 허용된 멀티 리전 클러스터. 멀티 리전 클러스터의 AWS 리전만 최적화된 SRV 연결 문자열을 지원합니다.
Atlas는 단일 SRV 기록을 통한 멀티 리전 클러스터로의 최적화된 연결을 지원하지 않습니다.
다음 방법 중 하나를 사용하여 연결합니다.
최적으로 연결하는 데 최소 드라이버 버전을충족하거나 초과하는 드라이버를 사용하여 연결합니다.
참고
클러스터 최적화된 SRV 문자열에 대한 기준을 충족하는 경우 Atlas 문자열을 Optimized SRV Connection 생성합니다. 클러스터 에 레거시 연결 문자열이 있는 경우, Atlas 해당 문자열을 무기한 유지하며 사용자가 연결 유형을 선택할 때 Legacy SRV Connection 문자열을 Private Endpoint 포함합니다. 최적의 성능을 위해 로 전환하는 Optimized SRV Connection 것을 고려하고 사용하는 곳마다 연결 문자열 업데이트 .
Atlas에서 이 기능을 릴리스한 후 클러스터를 만들고 비공개 엔드포인트를 활성화하는 경우, Private Endpoint 연결 유형을 선택할 때 기본적으로 최적화된 연결 문자열이 Atlas에 표시됩니다. 다음 예시와 같이 연결 문자열에 lb를 추가하면 최적화된 연결 문자열을 식별할 수 있습니다.
mongodb+SRV://User1:P@ssword@cluster0-pl-0-lb.oq123.mongodb-dev.net/
Legacy SRV Connection 옵션이 없는 클러스터에 대해 최적화된 연결 문자열을 사용하지 않으려면 지원팀에 문의하세요.
경고
멀티 리전 클러스터로 변환
리전화된 비공개 엔드포인트를 활성화하지 않고 단일 리전 샤딩된 클러스터를 멀티 리전 클러스터로 변환하는 경우, 최적화된 연결 문자열을 계속 사용할 수 없습니다. 클러스터를 변환하기 전에 연결 문자열을 이전 메모에서 설명한 Legacy SRV Connection string으로 업데이트하세요.
드라이버와 함께 최적화된 연결 문자열 사용
드라이버 및 최적화된 연결 문자열을 사용해 연결하는 방법을 알아보려면 애플리케이션 연결 절차에서 Private Endpoint Connection 탭을 선택합니다.
Compass와 함께 최적화된 연결 문자열 사용
Compass와 최적화된 연결 문자열을 사용해 연결하는 방법을 알아보려면 클러스터에 연결 절차에서 Private Endpoint Connection 탭을 선택합니다.
다음에 최적화된 연결 문자열 사용 mongosh
mongosh 및 최적화된 연결 문자열을 활용하여 연결하는 방법을 학습하려면 클러스터베이스 연결 절차에서 Private Endpoint Connection 탭을 선택합니다.
무료 또는 Flex 클러스터 에서 cloud 제공자 변경하는 경우 연결 문자열 업데이트 해야 합니까?
레거시 연결 문자열이 있고 클라우드 공급자를 변경하려는 경우 연결 문자열에 .gcp 또는 .azure가 포함되어야 하며 다음 중 하나를 수행해야 합니다.
Google Cloud 또는 Azure 이동
Google Cloud 또는 Azure에서 이동
참고
두 작업 모두 연결 문자열을 변경할 수 있습니다. Atlas UI에서 업그레이드가 완료된 후 클러스터에서 Connect를 클릭하여 업데이트된 연결 문자열을 확인합니다.
전용 클러스터 에서 cloud 제공자 변경하는 경우 연결 문자열 업데이트 해야 하나요?
이는 다음에 따라 달라집니다.
현재 클러스터에서 사용하는 클라우드 공급자
클러스터를 생성한 경우
2020년 11월 3일 이전에 생성된 GCP 또는 Azure 클러스터
2020년 11월 3일, 멀티 클라우드 클러스터가 도입되기 전에 클러스터를 만들었고 동시에 클러스터가 Google Cloud 또는 Azure에서 실행 중이라면:
Atlas에서 프로젝트의 Clusters 페이지로 이동합니다.
아직 표시되지 않은 경우 탐색 표시줄의 Organizations 메뉴에서 원하는 프로젝트가 포함된 조직을 선택합니다.
아직 표시되지 않은 경우 탐색 표시줄의 Projects 메뉴에서 원하는 프로젝트를 선택합니다.
사이드바에서 Database 제목 아래의 Clusters를 클릭합니다.
Clusters(클러스터) 페이지가 표시됩니다.
클러스터 빌더를 엽니다.
클러스터를 편집합니다.
대상 클라우드 공급자에서 읽기 전용 노드를 추가합니다.
참고
레거시 백업을 사용하는 경우 현재 클라우드 공급자에 노드 하나를 유지하고 나머지는 대상 클라우드 공급자로 이동합니다.
변경 사항을 검토하고 제출합니다.
쉼표로 구분된 결과 URI 연결 문자열을 복사합니다.
애플리케이션의 연결 문자열을 새 표준 연결 문자열로 바꿉니다.
이를 통해 애플리케이션을 여러 클라우드 공급자의 노드에 연결할 수 있습니다.
애플리케이션을 다시 시작합니다.
애플리케이션이 Atlas에 연결할 수 있는지 확인합니다.
첫 번째 변경이 완료되면 클러스터를 재구성합니다.
원래 클라우드 공급자를 사용하여 선택 가능한 모든 노드를 제거합니다.
대상 클라우드 공급자에 대한 읽기 전용 노드를 제거합니다.
대상 클라우드 공급자를 사용하여 동일한 수의 선택 가능한 노드를 추가합니다.
참고
레거시 백업을 사용하는 경우 새 백업이 생성될 때까지 기다린 다음 나머지 노드를 대상 클라우드 공급자로 이동합니다.
변경 사항을 검토하고 제출합니다.
쉼표로 구분된 결과 URI 연결 문자열을 복사합니다.
애플리케이션의 URI 연결 문자열을 새 URI 연결 문자열로 바꿉니다.
애플리케이션을 다시 시작합니다.
애플리케이션이 Atlas에 연결할 수 있는지 확인합니다.
2020년 11월 2일 이후에 생성된 AWS 및 클러스터
다음 중 하나에 해당하는 경우 연결 문자열 변경되지 않으며 클러스터 다운타임이 발생하지 않습니다.
클러스터 는 Amazon Web Services 에서 실행됩니다.
클러스터 는 모든 cloud 제공자 에서 실행되지만 2020 11월 2 이후에 생성되었습니다.
클러스터 의 cloud 제공자 변경하려면 다음을 수행합니다.
Atlas에서 프로젝트의 Clusters 페이지로 이동합니다.
아직 표시되지 않은 경우 탐색 표시줄의 Organizations 메뉴에서 원하는 프로젝트가 포함된 조직을 선택합니다.
아직 표시되지 않은 경우 탐색 표시줄의 Projects 메뉴에서 원하는 프로젝트를 선택합니다.
사이드바에서 Database 제목 아래의 Clusters를 클릭합니다.
Clusters(클러스터) 페이지가 표시됩니다.
클러스터 빌더를 엽니다.
클러스터를 편집합니다.
클라우드 공급자를 변경합니다.
변경 사항을 검토하고 제출합니다.