Azure Cosmos DB의 API for MongoDB를 사용하여 글로벌 분산 데이터베이스 설정

적용 대상: MongoDB

이 문서에서는 Azure Portal을 통해 Azure Cosmos DB의 API for MongoDB를 사용하여 글로벌 분산 데이터베이스를 설정하고 연결하는 방법을 보여줍니다.

이 문서에서 다루는 작업은 다음과 같습니다.

Azure Portal을 사용하여 글로벌 데이터베이스 지역 추가

Azure Cosmos DB는 전 세계의 모든 Azure 지역에서 사용할 수 있습니다. 데이터베이스 계정에서 기본 일관성 수준을 선택한 후에는 (선택한 기본 일관성 수준 및 글로벌 배포 수요에 따라) 하나 이상의 지역을 연결합니다.

  1. Azure Portal의 왼쪽 막대에서 Azure Cosmos DB를 클릭합니다.

  2. Azure Cosmos DB 페이지에서 수정할 데이터베이스 계정을 선택합니다.

  3. 계정 페이지의 메뉴에서 전역적으로 데이터 복제를 클릭합니다.

  4. 전역으로 데이터 복제 페이지에서 맵의 지역을 클릭하여 추가 또는 제거할 지역을 선택하고 저장을 클릭합니다. 지역을 추가하는 비용에 대한 자세한 내용은 가격 책정 페이지 또는 Azure Cosmos DB를 사용하여 전역적으로 데이터 배포 문서를 참조하세요.

    Click the regions in the map to add or remove them

두 번째 하위 지역을 추가하면 포털의 전역으로 데이터 복제 페이지에서 수동 장애 조치 옵션 사용이 설정됩니다. 장애 조치 프로세스를 테스트하거나 기본 쓰기 지역을 변경하려면 이 옵션을 사용할 수 있습니다. 세 번째 하위 지역을 추가하면 동일한 페이지에서 장애 조치 우선 순위 옵션 사용이 설정되므로 읽기의 장애 조치 순서를 변경할 수 있습니다.

글로벌 데이터베이스 지역 선택

둘 이상의 지역을 구성하기 위한 두 가지 일반적인 시나리오는 다음과 같습니다.

  1. 전세계 어느 위치에 있든 관계 없이 최종 사용자에게 낮은 대기 시간으로 데이터 액세스 제공
  2. BCDR(무중단 업무 방식 및 재해 복구)를 위한 지역 복원 기능 추가

최종 사용자에게 낮은 대기 시간을 제공하기 위해서는 애플리케이션 사용자가 있는 위치와 동일한 지역에 애플리케이션과 Azure Cosmos DB를 모두 배포하는 것이 좋습니다.

BCDR의 경우 Azure의 교차 지역 복제: 비즈니스 연속성 및 재해 복구 문서에 설명된 지역 쌍을 기반으로 지역을 추가하는 것이 좋습니다.

지역별 설정 확인

Azure Cosmos DB의 API for MongoDB를 사용하는 글로벌 구성을 확인하는 간단한 방법은 Mongo Shell에서 isMaster() 명령을 실행하는 것입니다.

Mongo Shell에서 다음을 수행합니다.

   db.isMaster()

결과 예:

   {
      "_t": "IsMasterResponse",
      "ok": 1,
      "ismaster": true,
      "maxMessageSizeBytes": 4194304,
      "maxWriteBatchSize": 1000,
      "minWireVersion": 0,
      "maxWireVersion": 2,
      "tags": {
         "region": "South India"
      },
      "hosts": [
         "vishi-api-for-mongodb-southcentralus.documents.azure.com:10255",
         "vishi-api-for-mongodb-westeurope.documents.azure.com:10255",
         "vishi-api-for-mongodb-southindia.documents.azure.com:10255"
      ],
      "setName": "globaldb",
      "setVersion": 1,
      "primary": "vishi-api-for-mongodb-southindia.documents.azure.com:10255",
      "me": "vishi-api-for-mongodb-southindia.documents.azure.com:10255"
   }

기본 설정 지역에 연결

Azure Cosmos DB의 API for MongoDB를 통해 전역적으로 분산된 데이터베이스에 대한 컬렉션의 읽기 기본 설정을 지정할 수 있습니다. 짧은 대기 시간 읽기 및 글로벌 고가용성을 위해 컬렉션의 읽기 기본 설정을 nearest(최근접)로 설정하는 것이 좋습니다. nearest(최근접)의 읽기 기본 설정은 가장 가까운 지역에서 읽도록 구성됩니다.

var collection = database.GetCollection<BsonDocument>(collectionName);
collection = collection.WithReadPreference(new ReadPreference(ReadPreferenceMode.Nearest));

주 읽기/쓰기 지역 및 재해 복구(DR) 시나리오를 위한 보조 지역이 있는 애플리케이션에는 컬렉션의 읽기 기본 설정을 ‘보조 기본 설정’으로 설정하는 것이 좋습니다. ‘보조 기본 설정’의 읽기 기본 설정은 주 지역의 데이터를 사용할 수 없는 경우 보조 지역에서 읽도록 구성됩니다.

var collection = database.GetCollection<BsonDocument>(collectionName);
collection = collection.WithReadPreference(new ReadPreference(ReadPreferenceMode.SecondaryPreferred));

마지막으로 읽기 지역을 수동으로 지정하려고 합니다. 읽기 기본 설정 내에서 지역 태그를 설정할 수 있습니다.

var collection = database.GetCollection<BsonDocument>(collectionName);
var tag = new Tag("region", "Southeast Asia");
collection = collection.WithReadPreference(new ReadPreference(ReadPreferenceMode.Secondary, new[] { new TagSet(new[] { tag }) }));

이것으로 끝이며, 이 자습서를 완료했습니다! Azure Cosmos DB의 일관성 수준을 참조하여 전역적으로 복제한 계정의 일관성을 관리하는 방법에 대해 알아볼 수 있습니다. 그리고 Azure Cosmos DB에서 전역 데이터베이스 복제가 작동하는 방법에 대한 자세한 내용은 Azure Cosmos DB를 사용하여 전역적으로 데이터 배포를 참조하세요.

다음 단계

이 자습서에서는 다음을 수행했습니다.

  • Azure Portal을 사용하여 전역 배포 구성
  • Azure Cosmos DB의 API for MongoDB를 사용하여 글로벌 배포 구성

이제 다음 자습서로 진행하여 Azure Cosmos DB 로컬 에뮬레이터를 사용하여 로컬로 개발하는 방법에 대해 자세히 알아볼 수 있습니다.

Azure Cosmos DB로 마이그레이션하기 위한 용량 계획을 수행하려고 하시나요? 용량 계획을 위해 기존 데이터베이스 클러스터에 대한 정보를 사용할 수 있습니다.