割り当てと上限

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

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

割り当て

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

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

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

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

Google Cloud には、プロジェクトへの制限付きアクセスを提供する無料トライアルの割り当てもあり、 Google Cloud を無料でお試しいただけます。

割り当て量はすべてのプロジェクトで同じとは限りません。 Google Cloud の使用量の増加に伴い、割り当てを引き上げることができます。

割り当ての詳細については、Cloud Quotas のドキュメントをご覧ください。

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 秒間のどの時点でもプロジェクトがレートに基づく割り当ての上限に達すると、そのグループでは、割り当てが補充されるまで待ってから追加のリクエストを行う必要があります。プロジェクトがレート上限を超えると、HTTP 429 ステータス コードと理由 rateLimitExceeded が返されます。

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

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

グループ名 説明 デフォルトの割り当て範囲(1 分あたりのクエリ数) API メソッド
Connect API 新しい接続を確立します。 180~2,000
  • projects.locations.clusters.generateClientCertificate
  • projects.locations.clusters.instances.getConnectionInfo
Get API 単一リソースを読み取ります。 180~1,000
  • projects.locations.clusters.get
  • projects.locations.clusters.instances.get
  • projects.locations.backups.get
  • projects.locations.get
Get operation API 長時間実行オペレーションの最新状態を取得します。 950~1,400
  • projects.locations.operations.get
List API 同じタイプのリソースのグループを読み取ります。 180~1,000
  • projects.locations.clusters.list
  • projects.locations.clusters.instances.list
  • projects.locations.backups.list
  • projects.locations.supportedDatabaseFlags.list
  • projects.locations.list
List operations API リクエスト内で特定のフィルタに一致するオペレーションを一覧取得します。 2,200~3,000
  • 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 の数は、インスタンスの作成または更新時に指定します。

すべての顧客プロジェクトの割り当てのデフォルト値は 10,000 個の 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
1 8 500
2 16 1000
4 32 2000
8 64 4000
16 128 5000
32 256 5000
48 384 5000
64 512 5000
72 576 5000
96 768 5000
128 864 5000

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

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

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

保存済みクエリの上限

上限
プロジェクトごとの保存済みクエリの最大数(他の Google Cloud プロダクトの保存済みクエリを含む) 10,000
各クエリの最大サイズ 1 MiB