割り当てと上限

このドキュメントでは、AlloyDB for PostgreSQL に適用される割り当てとシステム上限について説明します。

  • 割り当ては、使用できるカウント可能な共有リソースの量を指定します。割り当ては、 Google Cloud サービス(AlloyDB for PostgreSQL など)によって定義されます。
  • システムの上限は固定値で、変更できません。

割り当て

Google Cloud では、割り当てを使用して公平性を確保し、リソースの使用量と可用性の急増を抑えます。割り当ては、 Google Cloud プロジェクトで使用できるGoogle Cloud リソースの量を制限します。割り当ては、ハードウェア、ソフトウェア、ネットワーク コンポーネントなど、さまざまなリソースタイプに適用されます。たとえば、割り当てによって、サービスへの API 呼び出しの数、プロジェクトで同時に使用されるロードバランサの数、作成可能なプロジェクトの数を制限できます。割り当てを適用することで、サービスの過負荷を防ぎ、Google Cloud ユーザーのコミュニティを保護します。割り当ては、自組織で使用している Google Cloud リソースの管理にも役立ちます。

Cloud Quotas システムは次のことを行います。

  • Google Cloud のプロダクトとサービスの使用量をモニタリングする
  • これらのリソースの消費量を制限する
  • 割り当て値の変更をリクエストする方法を提供する

ほとんどの場合、割り当ての許容量を超えるリソースを消費しようとすると、システムによってリソースへのアクセスがブロックされ、実行しようとしているタスクは失敗します。

割り当ては通常、 Google Cloud プロジェクト レベルで適用されます。あるプロジェクトでリソースを使用しても、別のプロジェクトで使用可能な割り当てに影響することはありません。 Google Cloud プロジェクト内では、すべてのアプリケーションと IP アドレスで割り当てが共有されます。

Google Cloud には、無料トライアルの割り当ても用意されています。この割り当て制限により、 Google Cloud を無料で試すためにプロジェクトへの制限付きアクセスが提供されます。

割り当て量はすべてのプロジェクトで同じとは限りません。 Google Cloud の使用量が増加すると、割り当てが増加する場合があります。

割り当ての詳細については、割り当ての操作をご覧ください。

AlloyDB によって適用される割り当ての詳細については、レートの割り当てリソースの割り当てをご覧ください。

AlloyDB リソースには上限もあります。割り当てとは異なり、システムの上限は変更できません。

割り当ての確認と編集の権限

割り当て量を表示するには、serviceusage.quotas.get 権限が必要です。

割り当てを変更するには、serviceusage.quotas.update 権限が必要です。

これらの権限は、オーナーと編集者の基本の IAM ロール、および事前定義された割り当て管理者ロールにデフォルトで含まれています。

割り当てを確認する

デフォルトでは、 Google Cloud コンソールの割り当てテーブルに、すべてのサービスの割り当てが一覧表示されます。プロジェクト内の AlloyDB リソースの現在の割り当てを確認するには、表の [フィルタ] リストを使用します。

プロジェクト内の AlloyDB リソースの現在の割り当てを確認する手順は次のとおりです。

  1. Google Cloud コンソールで、[割り当て] ページに移動します。

    [割り当て] に移動

  2. 割り当てテーブルで、[フィルタ] をクリックします。

  3. [プロパティ] リストから [サービス] を選択し、[] リストから [AlloyDB API] を選択します。

割り当てを増やす

Google Cloud の使用量が多くなるに伴い、割り当てが引き上げられることがあります。使用量の大幅な増加が見込まれる場合は、十分なサイズの割り当てを確保できるように、数日前にリクエストしてください。

  1. [割り当て] ページで、[フィルタ] をクリックします。
  2. [プロパティ] リストから [サービス] を選択し、[] リストから [AlloyDB API] を選択します。

    [AlloyDB API] が表示されない場合は、AlloyDB Admin API が有効になっていません。

  3. 変更する割り当てを選択します。

  4. [割り当てを編集] をクリックします。

  5. 名前、メールアドレス、電話番号を入力して、[次へ] をクリックします。

  6. 割り当てリクエストを入力して、[リクエストを送信] をクリックします。

レートに基づく割り当て

AlloyDB は、レートに基づく割り当て(レート制限または API 割り当てとも呼ばれます)をサポートしています。レートに基づく割り当ては、AlloyDB Admin API に対して実行できるリクエストの数を定義します。

各レートに基づく割り当ては、1 つ以上の AlloyDB Admin API メソッドのグループに対するすべてのリクエストに対応します。レート割り当ては、サービスに固有の時間間隔(1 日あたりの API リクエスト数など)の後にリセットされます。

Google Cloud CLI または Google Cloud コンソールを使用する場合、API に対してリクエストを行います。これらのリクエストは、レート制限の対象になります。サービス アカウントを使用して API にアクセスする場合、これらのリクエストもレート制限にカウントされます。

レートに基づく割り当ては、60 秒(1 分)間隔で自動的に適用され、補充されます。つまり、60 秒間内のどの時点でもプロジェクトがレートに基づく割り当ての上限に達すると、そのグループでは、割り当てが補充されるまで待ってから追加のリクエストを行う必要があります。プロジェクトがレート上限を超えると、理由 rateLimitExceeded で HTTP 429 ステータス コードが返されます。

AlloyDB Admin API は、オペレーション タイプに基づいて 6 つのグループに分かれています。レートに基づく割り当ては、1 分あたり、API グループあたり、プロジェクトあたり、リージョンあたり、ユーザーあたりに適用されます。これらの属性の一意の組み合わせごとに、AlloyDB は個別の割り当てを適用します。たとえば、特定のプロジェクトとリージョンで 100 人のユーザーが 1 分間に Mutate API にアクセスしている場合、各ユーザーには、プロジェクトとリージョンの組み合わせごとに 1 分あたり 180 ~ 250 件のリクエストのデフォルトの割り当てが付与されます。

各グループのデフォルトの割り当て範囲は次のとおりです。

グループ名 説明 デフォルトの割り当て範囲(1 分あたりのクエリ数) API メソッド
Connect API 新しい接続を確立する。 180-2000
  • projects.locations.clusters.generateClientCertificate
  • projects.locations.clusters.instances.getConnectionInfo
API を取得する 単一リソースを読み取ります。 180-1000
  • projects.locations.clusters.get
  • projects.locations.clusters.instances.get
  • projects.locations.backups.get
  • projects.locations.get
Get オペレーション API 長時間実行オペレーションの最新状態を取得します。 950-1400
  • projects.locations.operations.get
API を一覧表示する 同じタイプのリソースのグループを読み取る。 180-1000
  • projects.locations.clusters.list
  • projects.locations.clusters.instances.list
  • projects.locations.backups.list
  • projects.locations.supportedDatabaseFlags.list
  • projects.locations.list
List operations API リクエスト内の特定のフィルタに一致するオペレーションを一覧表示します。 2200-3000
  • projects.locations.operations.list
Mutate API リソースの状態を変更する。 180-250
  • projects.locations.clusters.create
  • projects.locations.clusters.patch
  • projects.locations.clusters.delete
  • projects.locations.clusters.restore
  • projects.locations.clusters.instances.create
  • projects.locations.clusters.instances.patch
  • projects.locations.clusters.instances.delete
  • projects.locations.clusters.instances.failover
  • projects.locations.clusters.instances.restart
  • projects.locations.backups.create
  • projects.locations.backups.patch
  • projects.locations.backups.delete
  • projects.locations.operations.delete
  • projects.locations.operations.cancel

リソースの割り当て

AlloyDB は、リソース割り当て(割り当て割り当てとも呼ばれます)をサポートしています。リソースの割り当てとは、リソースが利用可能な場合に、リソースタイプに対して作成できる最大リソース数です。リソース割り当てを使用すると、一定期間内にプロジェクトで使用される仮想マシン(VM)インスタンスの数など、使用率がないリソースの使用を制限できます。

リソース割り当ては、時間が経過してもリセットされません。代わりに、不要なクラスタの削除など、未使用のリソースを解放する操作を行う必要があります。

現在、リソース割り当ては、使用されるクラスタ数と vCPU 数に適用されます。詳細については、以降のセクションをご覧ください。

クラスタのリソース割り当て

この割り当ては、プロジェクトごと、リージョンごとのクラスタ数に適用されます。この割り当てのデフォルト値は、プロジェクトの使用履歴に応じて、プロジェクトごとにリージョンごとに 3 ~ 10 個のクラスタです。この割り当てでサポートされる最大値は、プロジェクトごとにリージョンごとに 15 個のクラスタです。

Google Cloud コンソール、gcloud CLI、または AlloyDB Admin API を使用してクラスタの作成または復元リクエストを行い、割り当て違反が発生した場合、リクエストは失敗し、次のようなエラー メッセージが表示されます。

Quota limit 'ClustersUsedPerProjectPerRegion' has been exceeded. Limit: 5 in region us-central1.

vCPU のリソース割り当て

この割り当ては、プロジェクトごと、リージョンごとの vCPU 数に適用されます。各インスタンスは、使用する VM の数に応じてこの割り当ての一部を使用します。各プライマリ インスタンスは 2 つの VM を使用します。各読み取りプール インスタンスは、含まれるノードごとに 1 つの VM を使用します。各 VM で使用される vCPU の数は、インスタンスの作成または更新時に指定します。

この割り当てのデフォルト値は、プロジェクトの使用履歴に応じて、プロジェクトごとにリージョンごとに 128 ~ 512 個の vCPU です。

Google Cloud コンソール、gcloud CLI、または AlloyDB Admin API を使用してインスタンスの作成または更新リクエストを行い、割り当て違反が発生した場合、リクエストは失敗し、次のようなエラー メッセージが表示されます。

Quota limit 'VCPUsUsedPerProjectPerRegion' has been exceeded. Limit: 128 in region us-central1.

ストレージのリソース割り当て

この割り当ては、各クラスタに保存できるデータの量に適用されます。この割り当てのデフォルト値は、クラスタごとに 16 TiB です。サポートされている最大値は、クラスタあたり 128 TiB です。

割り当て違反につながる INSERT ステートメントなどのデータベース書き込みリクエストを行うと、リクエストは失敗し、次のエラー メッセージが表示されます。

AlloyDB instance exceeds available storage quota.

リソースの可用性

リソース割り当てが適用されていても、そのリソースを常に利用できるわけではありません。リージョンでリソースが物理的に利用できない場合、プロジェクトに割り当て量が残っていても、その種類のリソースを新たに作成することはできません。

上限

上限の引き上げをリクエストするには、サポートケースを登録してください。

項目 上限
クラスタあたりの読み取りプールノード(すべての読み取りプール インスタンス全体) 20
インスタンスあたりの最大同時接続数

デフォルトは 1,000 です。最大 240,000 まで調整可能

最大同時接続数

AlloyDB では、max_connections フラグをより大きい値に設定しない限り、インスタンスの最大同時接続数が 1,000 に制限されます。

次の表をガイドラインとして使用し、インスタンスのサイズに基づいて最大接続数を決定します。

VCPU メモリ 推奨される max_connections
2 16 1000
4 32 2000
8 64 4000
16 128 5000
32 256 5000
64 512 5000
96 768 5000
128 864 5000

値を設定する前に、次の点を考慮してください。

  • リードプール インスタンスに max_connections フラグを設定する場合、新しい値はクラスタのプライマリ インスタンスの max_connections 値と一致するか、それを超える必要があります。
  • インスタンスの vCPU ごとに最大 4 つのクエリを同時に実行することをおすすめします。
  • 短期接続が必要なワークロードの場合は、pgbouncerpgpool-II などの接続プーラーの使用を検討してください。
  • HikariCPc3p0 などのアプリケーション側の接続プールを使用することをおすすめします。
  • 推奨値(最大 240,000)より大きい値に設定する場合は、共有バッファのメモリを減らすアクティブな接続ごとに追加のメモリ消費量を考慮してください。

    このメモリ消費量は、同時実行クエリ数に work_mem フラグに設定された値を掛けることで計算できます。このフラグのデフォルト値は、4MB またはインスタンス内の vCPU 数のいずれか大きいほうです。