Azure DocumentDB의 고성능 스토리지

Azure DocumentDB는 Premium SSD v2 디스크를 사용하여 IOPS 및 대역폭 설정에서 스토리지 용량을 결합 해제하여 I/O 집약적 워크로드에 대해 훨씬 더 높은 성능을 제공합니다.

Azure DocumentDB의 프리미엄 SSD v2 스토리지를 사용하면 클러스터에 대해 구성된 스토리지 용량에 관계없이 구성 가능한 최대 IOPS 및 대역폭 설정을 기본적으로 사용할 수 있습니다. 컴퓨팅 계층의 IOPS 및 대역폭 용량은 스토리지 용량을 확장할 필요 없이 스토리지 계층에서 달성 가능한 IOPS 및 대역폭을 결정합니다.

필요한 스토리지 용량만 선택해야 하는 반면, 달성 가능한 가장 높은 IOPS 및 대역폭은 추가 비용 없이 Azure DocumentDB에서 자동으로 구성됩니다. 클러스터가 최적의 성능을 위해 설정되었는지 확인하기 위해 추가 사용자 개입이 필요하지 않습니다. 그 결과 추가 비용 없이 12배 성능이 향상됩니다.

이전에는 더 높은 스토리지 요구 사항이 없는 경우에도 5,000 IOPS에서 20,000 IOPS로 이동하려면 디스크 크기를 1TB에서 20TB로 늘려야 했습니다. 프리미엄 SSD v2를 사용하면 클러스터의 컴퓨팅 계층에 20,000 IOPS를 푸시하고 유지 관리할 수 있는 용량이 있는 한 동일한 1TB 디스크에서 20,000 IOPS를 달성할 수 있습니다. 또한 프리미엄 SSD v2 디스크는 최대 80,000 IOPS를 지원할 수 있으며 프리미엄 SSD보다 4배 증가합니다.

Guidance

Azure DocumentDB 클러스터의 maximum 성능 이제 스토리지 크기가 아닌 컴퓨트 계층에만 종속됩니다. 먼저 클러스터에 필요한 원하는 스토리지 크기만 선택한 다음 워크로드에 필요한(IOPS) 및 처리량(MBps)을 제공하는 컴퓨팅 계층을 선택합니다. 아래 표는 컴퓨팅 계층당 달성 가능하고 지속 가능한 가장 높은 IOPS 및 대역폭 제한입니다.

IOPS 및 처리량 한도

프리미엄 SSD v2 디스크를 사용하면 클러스터가 추가 비용 없이 아래 표로 표시된 상한 값으로 자동으로 구성됩니다.

컴퓨팅 계층 최대 IOPS 최대 대역폭(MBps)
M30(2코어) 3,750 85
M40(4코어) 6,400 145
M50(8코어) 12,800 290
M60(16코어) 25,600 600
M80(32코어) 5만 1천 2백 865
M200(64코어) 80,000 1,200

필수 조건

  • Azure 구독

  • 기존 Azure DocumentDB 클러스터

고성능 스토리지를 사용하여 클러스터 만들기

클러스터 만들기 단계의 일부로 프리미엄 SSD v2 (고성능) 스토리지를 사용하여 클러스터를 구성합니다.

  1. Azure Portal(https://portal.azure.com)에 로그인합니다.

  2. Azure 포털 메뉴 또는 홈 페이지에서 리소스 만들기를 선택합니다.

  3. 새 페이지에서 Azure DocumentDB를 검색하여 선택합니다.

    Azure DocumentDB를 찾기 위한 Azure 포털 검색 기능의 스크린샷.

  4. Azure DocumentDB 클러스터 만들기 페이지 및 기본 사항 섹션 내에서 클러스터 계층 섹션 내에서 구성 옵션을 선택합니다.

    Azure DocumentDB 클러스터를 구성하는 데 사용 가능한 옵션의 스크린샷입니다.

  5. 구성 페이지에서 필요에 따라 클러스터 계층 및 스토리지 크기를 선택합니다. 스토리지 유형을 프리미엄 SSD v2 로 선택하여 고성능 스토리지를 사용하도록 설정한 다음 저장을 선택하여 변경 내용을 적용합니다.

    Azure DocumentDB의 프리미엄 SSD v2 디스크와 관련된 구성 옵션의 스크린샷

  6. 나머지 세부 정보를 입력한 다음 검토 + 만들기를 선택합니다.

  7. 제공한 설정을 검토한 다음, 만들기를 선택합니다. 클러스터를 만드는 데 몇 분이 걸립니다. 리소스 배포가 완료되기를 기다립니다.

  8. 마지막으로 리소스로 이동을 선택하여 포털에서 Azure DocumentDB 클러스터로 이동합니다.

새 Azure DocumentDB 클러스터로 이동하는 옵션이 있는 배포 완료 단계의 스크린샷

  1. 새 터미널을 엽니다.

  2. Azure CLI 로그인합니다.

  3. 역할 정의를 정의하는 새 Bicep 파일을 만듭니다. main.bicep 파일의 이름을 지정합니다.

  4. 파일의 콘텐츠에 이 템플릿을 추가합니다. <cluster-name>, <location>, <username><password> 자리 표시자를 적절한 값으로 바꿉다.

    resource cluster 'Microsoft.DocumentDB/mongoClusters@2025-09-01' = {
      name: '<cluster-name>'
      location: '<location>'
      properties: {
        administrator: {
          userName: '<username>'
          password: '<password>'
        }
        serverVersion: '8.0'
        storage: {
          sizeGb: 32
          type: 'PremiumSSDv2'
        }
        compute: {
          tier: 'M30'
        }
        sharding: {
          shardCount: 1
        }
        highAvailability: {
          targetMode: 'Disabled'
        }
      }
    }
    
  5. az deployment group create를 사용하여 Bicep 템플릿을 배포합니다. Bicep 템플릿의 이름을 지정하고 <resource-group> 자리 표시자를 대상 Azure 리소스 그룹의 이름으로 바꿉니다.

    az deployment group create \
        --resource-group "<resource-group>" \
        --template-file main.bicep
    
  6. 배포가 완료되기를 기다립니다. 배포의 출력을 검토합니다.

  1. 새 터미널을 엽니다.

  2. Azure CLI 로그인합니다.

  3. 대상 Azure 구독을 확인합니다.

    az account show
    
  4. 새 Terraform 파일에서 클러스터를 정의합니다. 파일 클러스터의 이름을 지정 합니다tf.

  5. 파일의 콘텐츠에 이 리소스 구성을 추가합니다. <cluster-name>, <resource-group><location> 자리 표시자를 적절한 값으로 바꿉 있습니다.

    variable "admin_username" {
      type        = string
      description = "Administrator username for the cluster."
      sensitive   = true
    }
    
    variable "admin_password" {
      type        = string
      description = "Administrator password for the cluster."
      sensitive   = true
    }
    
    terraform {
      required_providers {
        azurerm = {
          source  = "hashicorp/azurerm"
          version = "~> 4.0"
        }
      }
    }
    
    provider "azurerm" {
      features {}
    }
    
    data "azurerm_resource_group" "existing" {
      name = "<resource-group>"
    }
    
    resource "azurerm_mongo_cluster" "cluster" {
      name                   = "<cluster-name>"
      resource_group_name    = data.azurerm_resource_group.existing.name
      location               = "<location>"
      administrator_username = var.admin_username
      administrator_password = var.admin_password
      shard_count            = "1"
      compute_tier           = "M30"
      high_availability_mode = "Disabled"
      storage_size_in_gb     = "32"
      storage_type           = "PremiumSSDv2"
      version                = "8.0"
    }
    

    Tip

    리소스를 사용하는 azurerm_mongo_cluster 옵션에 대한 자세한 내용은 Terraform Registry의 공급자 설명서를 참조azurerm하세요.

  6. Terraform 배포를 초기화합니다.

    terraform init --upgrade
    
  7. 실행 계획을 만들고 cluster.tfplan이라는 파일에 저장합니다. admin_usernameadmin_password 변수에 대한 입력을 요청받으면 값을 입력하십시오.

    ARM_SUBSCRIPTION_ID=$(az account show --query id --output tsv) terraform plan --out "cluster.tfplan"
    

    비고

    이 명령은 환경 변수를 ARM_SUBSCRIPTION_ID 일시적으로 설정합니다. 이 설정은 버전 4.0 이상의 azurerm 공급자에게 필요합니다. 자세한 내용은 azurerm의 구독 ID를 참조하세요.

  8. 실행 계획을 적용하여 클러스터를 Azure에 배포합니다.

    ARM_SUBSCRIPTION_ID=$(az account show --query id --output tsv) terraform apply "cluster.tfplan"
    
  9. 배포가 완료되기를 기다립니다. 배포의 출력을 검토합니다.

  1. 새 터미널을 엽니다.

  2. Azure CLI 로그인합니다.

  3. cluster.json새 JSON 파일을 만듭니다.

  4. 이 문서를 파일의 콘텐츠에 추가합니다. <location>, <username><password> 자리 표시자를 적절한 값으로 바꿉 있습니다.

    {
      "location": "<location>",
      "properties": {
        "administrator": {
          "userName": "<username>",
          "password": "<password>"
        },
        "serverVersion": "8.0",
        "storage": {
          "sizeGb": 32,
          "type": "PremiumSSDv2"
        },
        "compute": {
          "tier": "M30"
        },
        "sharding": {
          "shardCount": 1
        },
        "highAvailability": {
          "targetMode": "Disabled"
        }
      }
    }
    
  5. az rest Azure CLI 명령을 사용하여 JSON 파일에 지정된 구성으로 새 클러스터를 만듭니다. JSON 파일 body 의 이름을 요청의 이름으로 지정하고 다음 자리 표시자를 대체합니다.

    Description
    <subscription-id> 대상 Azure 구독의 고유 식별자
    <resource-group> 대상 Azure 리소스 그룹의 이름
    <cluster-name> 새 Azure DocumentDB 클러스터의 고유한 이름
    az rest \
        --method "GET" \
        --url "https://management.azure.com/subscriptions/<subscription-id>/resourceGroups/<resource-group>/providers/Microsoft.DocumentDB/mongoClusters/<cluster-name>/users?api-version=2025-09-01" \
        --body @cluster.json
    

    Tip

    az account show 사용하여 대상 Azure 구독의 고유 식별자를 가져옵니다.

  6. 배포가 완료되기를 기다립니다. 배포의 출력을 검토합니다.

고성능 스토리지의 현재 제한 사항(Premium SSD v2 스토리지)

  • CMK(고객 관리형 키)는 프리미엄 SSD v2 스토리지에서 지원되지 않습니다.

  • 프리미엄 SSD v2 디스크의 스토리지 용량 설정은 24시간 내에 최대 4회까지 조정할 수 있습니다. 새로 만든 클러스터의 경우 처음 24시간 동안 최대 3개의 스토리지 용량을 조정할 수 있습니다. 

  • 프리미엄 SSD에서 프리미엄 SSD v2로의 복제는 마이그레이션 시나리오에 대해서만 지원됩니다. 프리미엄 SSD가 프리미엄 SSD v2의 성능과 일치하지 않아 대기 시간이 더 짧아질 수 있으므로 지속적인 복제는 지원되지 않습니다.

  • 프리미엄 SSD에서 프리미엄 SSD v2로의 온라인 마이그레이션은 현재 지원되지 않습니다. 프리미엄 SSD에서 프리미엄 SSD V2로 업그레이드하려면 프리미엄 SSD v2를 사용하여 새 서버로 지정 시간 복원을 수행할 수 있습니다. 또는 프리미엄 SSD 서버에서 프리미엄 SSD v2 서버로 읽기 복제본을 만들고 복제가 완료된 후 승격할 수 있습니다.

  • 디스크 수화가 필요한 작업을 수행하는 경우 다음 오류가 발생할 수 있습니다. 이 오류는 프리미엄 SSD v2 디스크가 디스크에 수분을 공급하는 동안 작업을 지원하지 않기 때문에 발생합니다.

    • 오류 메시지: 디스크가 여전히 수화되고 있으므로 작업을 완료할 수 없습니다. 잠시 후 다시 시도하세요.
    • 이 동작을 트리거할 수 있는 작업은 다음과 같습니다.
      • 컴퓨팅 크기 조정 수행, 스토리지 크기 조정 수행, HA(고가용성) 빠른 순차적 활성화.
      • 여기에는 고가용성을 보장하기 위한 서비스 트리거 장애 조치(failover)도 포함됩니다.
      • PITR(지정 시간 복원)을 사용하여 새 클러스터를 만들고 디스크가 여전히 수화되는 동안 고가용성을 즉시 사용하도록 설정합니다.
    • 프리미엄 SSD v2 디스크를 사용하는 경우 이러한 작업을 공백으로 처리하거나 순차적으로 완료하여 작업 간에 디스크 수화가 완료되도록 하는 것이 가장 좋습니다.