Azure Cosmos DB アカウントでプロビジョニングされる合計スループットを制限する

適用対象: NoSQL MongoDB Cassandra Gremlin Table

プロビジョニング スループット モードで Azure Cosmos DB アカウントを使うと、通常、コストの大部分はアカウント全体でプロビジョニングしたスループットの量から発生します。 具体的には、これらのコストは次のものから直接影響を受けます。

  • 共有スループットのあるデータベースの数。
  • 専用スループットのあるコンテナーの数。
  • これらの各リソースに対してプロビジョニングされたスループットの量。
  • アカウントが利用可能なリージョンの数。

アカウント全体でプロビジョニングしたスループットの合計量を追跡することは困難な場合があります。Azure Cosmos DB を使い始めるときは特にそうです。 その結果、超えるとは思わなかった特定の予算をこの金額が超えて、予期しない料金が発生する可能性があります。 コストをより適切に管理できるように、Azure Cosmos DB では、アカウントでプロビジョニングされるスループットの合計を制限できます。

注意

この機能は、サーバーレス アカウントでは使えません。

アカウントの合計スループットに制限を設けると、以下の操作を実行するとこの制限を超える場合はすべてブロックされ、明示的に失敗します。

  • 共有スループットを使う新しいデータベースの作成。
  • 専用スループットを使う新しいコンテナーの作成。
  • 標準 (手動) モードで構成されたリソースでのプロビジョニング スループットの増量。
  • 自動スケーリング モードで構成されたリソースでの最大プロビジョニング スループットの増量。
  • アカウントへの新しいリージョンの追加。

注意

自動スケーリング モードで構成されたリソースについては、アカウントの合計スループットに対してカウントされるリソースで構成される最大スループットです。

重要

アカウントで合計スループット制限が有効になると、新しいコンテナーを作成するときに明示的にスループット値を渡す必要があります。 明示的なスループット値を指定せずにコンテナーを作成しようとすると、現在エラーが発生します。

Azure portal で合計スループット制限を設定する

新しいアカウント

ポータルで新しい Azure Cosmos DB アカウントを作成するときに、アカウントの合計スループットを制限するオプションがあります。

新しいアカウントを作成するときにアカウントの合計スループットを制限する方法を示す Azure portal のスクリーンショット

このオプションをオンにすると、アカウントの合計スループットは、Free レベル アカウントの場合は 1,000 RU/s に、通常の非 Free レベル アカウント の場合は 4,000 RU/s に制限されます。 この値は、アカウントの作成後に変更できます。

既存のアカウント

Azure portal で Azure Cosmos DB アカウントに移動し、左側のメニューから [コスト管理] を選びます。

既存のアカウントの合計アカウント スループットを更新する方法を示す Azure portal のスクリーンショット

このセクションでは、アカウントでプロビジョニングされている合計スループットの概要が示され、合計スループット制限を構成できます。 次の 3 つのオプションを使用できます。

  • [Limit the account's total provisioned throughput to the amount included in the free tier discount](アカウントの合計プロビジョニング スループットを、Free レベルの割引に含まれる量に制限する) 。 このオプションは Free レベルのアカウントでのみ使用でき、アカウントの合計スループットは 1,000 RU/秒に制限されます。 このオプションをオンにすると、プロビジョニング スループットに対する課金は発生しません。
  • [Allow the account's total throughput to be provisioned up to a custom amount](アカウントの合計スループットをカスタム量までプロビジョニングできるようにする) 。 このオプションを使うと、超えてはならない合計プロビジョニング スループットを入力できます。 参考として、入力に対応する月額料金の見積もりが表示されます。

    注意

    このカスタム制限は、アカウント全体で現在プロビジョニングされている合計スループットより少なくすることはできません。

  • [No limit, allow the account's total throughput to be provisioned to any amount](無制限。アカウントの合計スループットを任意の量にプロビジョニングできるようにする) 。 このオプションは、制限を無効にします。

プログラムで合計スループット制限を設定する

Azure リソース マネージャーのテンプレートを作成する

Azure Resource Manager で Azure Cosmos DB アカウントを作成または更新するときに、properties.capacity.totalThroughputLimit プロパティを設定して、合計スループット制限を構成できます。

{
  "location": "West US",
  "kind": "DocumentDB",
  "properties": {
    "locations": [
      {
        "locationName": "West US",
        "failoverPriority": 0,
        "isZoneRedundant": false
      }
    ],
    "databaseAccountOfferType": "Standard",
    "capacity": {
        "totalThroughputLimit": 2000
    }
  }
}

制限を無効にするには、このプロパティを -1 に設定します。

よく寄せられる質問

プロビジョニングされたスループットの合計が、制限を超え得るような状況はありますか。

Azure Cosmos DB では、格納データ 1 GB あたり 1 RU/秒の最小スループットが適用されます。 既にその最小値に達しているときにデータを取り込んでいる場合、リソースでプロビジョニングされるスループットは、1 GB あたり 1 RU/秒を優先するように自動的に増加します。 この場合に、またこの場合にのみ、プロビジョニングされるスループットの合計が、設定した制限を超える可能性があります。

次のステップ