読み取りプール オートスケーリングでは、アプリケーションのワークロードのニーズに基づいて、読み取りプール内の読み取りプールノードが自動的に追加または削除されます。
読み取りプールの自動スケーリングを制御するには、次の 2 つの目標指標のいずれかを使用して、読み取りプール全体の平均 CPU 使用率を制限するか、読み取りプールへのアクセスを許可するクライアント接続の数を制限します。
- 平均 CPU 使用率: 読み取りプールが動作する平均 CPU 使用率を設定できます。読み取りプールは、アプリケーションのワークロード CPU 使用率に基づいて自動的にスケールインまたはスケールアウトします。
- 平均データベース接続数: 各ノードで処理されるクライアント データベース接続の平均数を指定できます。読み取りプールは、クライアント接続の数に基づいて自動的にスケールインまたはスケールアウトします。
これらの目標指標を適用するには、読み取りプールノードの最小数と最大数も設定する必要があります。
読み取りプールの自動スケーリングを有効にするには、インスタンスでこれらのターゲット指標のいずれかまたは両方を構成します。両方の指標がアクティブな場合、Cloud SQL は両方の指標で示される最大読み取りプール ノード数を適用します。
次の表に、各目標指標の上限を示します。
| ターゲット指標名 | 上限 | 関連する公開指標 |
|---|---|---|
| 平均 CPU 使用率 | 0.1 ~ 0.9。 | 読み取りプール内の読み取りプールノードの平均 CPU 使用率(cloudsql.googleapis.com/database/cpu/utilization)。 |
| データベース接続の平均数 |
10 ~ 262,142 の範囲。注: 許容される最大値は、max_connections データベース フラグで設定された最大値と相関関係があります。 |
読み取りプール内の読み取りプールノード全体のデータベース クライアント接続の平均数(cloudsql.googleapis.com/database/postgresql/num_backends)を表します。注: インスタンスでマネージド接続プーリングが有効になっている場合、接続プールを構成する個々の接続は個別にカウントされず、AVERAGE_DB_CONNECTIONS 指標に含まれません。マネージド接続プーリングが有効になっている場合は、AVERAGE_CPU_UTILIZATION 指標のみを使用して読み取りプールの自動スケーリングを制御することをおすすめします。 |
読み取りプールのサイズを変更する条件が満たされると、読み取りプールの自動スケーリング オペレーションを Google Cloud コンソールで確認できます。読み取りプールの自動スケーリングが完了するまで、読み取りプールとプライマリ インスタンスに対する他のすべてのオペレーションはブロックされます。
読み取りプールの自動スケーリングの特性
次の特性が適用されます。
- スケールイン オペレーションでは、一度に 1 つのノードのみが削除されます。
- スケールアウト オペレーションでは、必要に応じてノードが並列で追加されます。
- デフォルトでは、スケールインとスケールアウトの両方のオペレーションが適用されます。必要に応じて、スケールイン オペレーションを手動で無効にして(
disableScaleIn)、ブロックできます。 - デフォルトでは、連続する読み取りプール自動スケーリング オペレーションの間に 600 秒のクールダウン期間が適用されます。スケールインまたはスケールアウトのいずれの場合でも、最小クールダウン期間は 60 秒です。
- 目標指標を設定する場合は、使用する最小(
minNodeCount)および最大(maxNodeCount)の読み取りプールノード数も定義する必要があります。既存の読み取りプールで自動スケーリングを有効にする場合、現在の読み取りプールのサイズは設定した範囲内に収まっている必要があります。
制限事項
次の制限が適用されます。
- 読み取りプール自動スケーリングでは、24 時間ごとに最大 10 個の自動スケーリング オペレーションがサポートされます。
- 新しい読み取りプールを作成するか、既存の読み取りプールをスケーリングする場合は、以前の作成オペレーションとスケーリング オペレーションが完了するまで待つ必要があります。これは、読み取りプールに関連付けられたオペレーションと、同じプライマリ インスタンスに関連付けられた他の読み取りプールに適用されます。同時実行オペレーションを実行しようとすると、次のエラー メッセージが表示されることがあります。
Operation failed because another operation was already in progress.
始める前に
読み取りプールを作成するには、必要な前提条件の手順をすべて完了してください。
gcloudバージョン 544.0.0 以降を使用していることを確認します。Terraform プロバイダのバージョン 7.8.0 以降を使用してください。
max_wal_sendersとmax_replication_slotsにも適切な値を設定してください。詳細については、読み取りプールの特性をご覧ください。
自動スケーリングが有効な読み取りプールを作成する
AVERAGE_CPU_UTILIZATION のターゲット値を 0.50 に指定すると、読み取りプール全体の平均 CPU 使用率が 0.50 以下になるように、読み取りプールから読み取りプール ノードが追加または削除されます。
gcloud
自動スケーリングが有効な読み取りプールを作成するには、次のコマンドを実行します。
gcloud sql instances create READ_POOL_NAME \ --tier=MACHINE_TIER --edition=ENTERPRISE_PLUS \ --instance-type=READ_POOL_INSTANCE --node-count=NODE_COUNT \ --database-version=DATABASE_VERSION \ --master-instance-name=PRIMARY_INSTANCE_NAME \ --region=REGION --network=NETWORK_NAME \ --no-assign-ip \ --auto-scale-enabled \ --auto-scale-max-node-count=MAX_NODE_COUNT \ --auto-scale-min-node-count=MIN_NODE_COUNT \ --auto-scale-target-metrics=TARGET_METRIC_1=VALUE_1
次のように置き換えます。
- READ_POOL_NAME: 読み取りプールに割り当てる名前。
- MACHINE_TIER: 使用するマシン階層(
db-perf-optimized-N-2など)。 - NODE_COUNT: 開始する読み取りプールノードの数。
- DATABASE_VERSION: 使用するデータベース バージョン(
POSTGRES_16など)。 - PRIMARY_INSTANCE_NAME: 使用するプライマリ インスタンスの名前。
- REGION: 使用するリージョン(
us-east1など)。 - NETWORK_NAME: 使用するネットワークの名前。
- MAX_NODE_COUNT: 読み取りプールで使用する読み取りプールノードの最大数(
5など)。 - MIN_NODE_COUNT: 読み取りプールで使用する読み取りプールノードの最小数(
1など)。 - TARGET_METRIC_1: 使用するターゲット指標(次のような指標)。
AVERAGE_CPU_UTILIZATIONAVERAGE_DB_CONNECTIONS
- VALUE_1: 前の手順で指定したターゲット指標に割り当てる値。たとえば、
AVERAGE_CPU_UTILIZATIONターゲット指標に値0.50を割り当てることができます。
Terraform
自動スケーリングが有効な読み取りプールを作成するには、Terraform リソースを使用します。
次の例には、プライマリ インスタンスと読み取りプールのリソースが含まれています。
変更を適用する
Google Cloud プロジェクトで Terraform 構成を適用するには、次のセクションの手順を完了します。
Cloud Shell を準備する
- Cloud Shell を起動します。
-
Terraform 構成を適用するデフォルトの Google Cloud プロジェクトを設定します。
このコマンドは、プロジェクトごとに 1 回だけ実行する必要があります。これは任意のディレクトリで実行できます。
export GOOGLE_CLOUD_PROJECT=PROJECT_ID
Terraform 構成ファイルに明示的な値を設定すると、環境変数がオーバーライドされます。
ディレクトリを準備する
Terraform 構成ファイルには独自のディレクトリ(ルート モジュールとも呼ばれます)が必要です。
-
Cloud Shell で、ディレクトリを作成し、そのディレクトリ内に新しいファイルを作成します。ファイルの拡張子は
.tfにする必要があります(例:main.tf)。このチュートリアルでは、このファイルをmain.tfとします。mkdir DIRECTORY && cd DIRECTORY && touch main.tf
-
チュートリアルを使用している場合は、各セクションまたはステップのサンプルコードをコピーできます。
新しく作成した
main.tfにサンプルコードをコピーします。必要に応じて、GitHub からコードをコピーします。Terraform スニペットがエンドツーエンドのソリューションの一部である場合は、この方法をおすすめします。
- 環境に適用するサンプル パラメータを確認し、変更します。
- 変更を保存します。
-
Terraform を初期化します。これは、ディレクトリごとに 1 回だけ行います。
terraform init
最新バージョンの Google プロバイダを使用する場合は、
-upgradeオプションを使用します。terraform init -upgrade
変更を適用する
-
構成を確認して、Terraform が作成または更新するリソースが想定どおりであることを確認します。
terraform plan
必要に応じて構成を修正します。
-
次のコマンドを実行します。プロンプトで「
yes」と入力して、Terraform 構成を適用します。terraform apply
Terraform に「Apply complete!」というメッセージが表示されるまで待ちます。
- Google Cloud プロジェクトを開いて結果を表示します。 Google Cloud コンソールの UI でリソースに移動して、Terraform によって作成または更新されたことを確認します。
変更を削除する
変更を削除するには、次の手順を行います。
- 削除からの保護を無効にするには、Terraform 構成ファイルで
deletion_protection引数をfalseに設定します。deletion_protection = "false"
- 次のコマンドを実行します。プロンプトで「
yes」と入力して、更新された Terraform 構成を適用します。terraform apply
-
次のコマンドを実行します。プロンプトで「
yes」と入力して、以前に Terraform 構成で適用されたリソースを削除します。terraform destroy
REST v1
自動スケーリングが有効になっている読み取りプールを作成するには、instances:insert メソッドで POST リクエストを使用します。
リクエストのデータを使用する前に、次のように置き換えます。
- READ_POOL_NAME: 読み取りプールに割り当てる名前。
- REGION: インスタンスを配置するリージョン(例:
us-central1)。 - PRIMARY_INSTANCE_ID: 使用するプライマリ インスタンスの ID。
- PROJECT_ID: 読み取りプールを配置するプロジェクトの ID(
my-project-nameなど)。 - DATABASE_VERSION: 使用するデータベース バージョン(例:
POSTGRES_16)。 - MACHINE_TIER: 使用するマシン階層(
db-perf-optimized-N-2など)。 - FULL_NETWORK_NAME: 使用するネットワークの名前。
- MAX_NODE_COUNT: 読み取りプールで使用する読み取りプールノードの最大数(
10など)。 - MIN_NODE_COUNT: 読み取りプールで使用する読み取りプールノードの最小数(
2など)。 - TARGET_METRIC_1: 使用するターゲット指標(
AVERAGE_CPU_UTILIZATIONやAVERAGE_DB_CONNECTIONSなど)。使用可能な 2 つの指標のうち、少なくとも 1 つを定義する必要があります。 - VALUE_1: 前の手順で指定したターゲット指標に割り当てる値。たとえば、
AVERAGE_CPU_UTILIZATIONターゲット指標に値0.50を割り当てることができます。 - NODE_COUNT: 最初に設定する読み取りプールノードの数(
3など)。
HTTP メソッドと URL:
POST https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances
リクエストの本文(JSON):
{
"name":"READ_POOL_NAME",
"region":"REGION",
"masterInstanceName":"PRIMARY_INSTANCE_ID",
"project":"PROJECT_ID",
"databaseVersion":"DATABASE_VERSION",
"settings":{
"tier":"MACHINE_TIER",
"edition":"ENTERPRISE_PLUS",
"ipConfiguration":{
"privateNetwork":"FULL_NETWORK_NAME",
"ipv4Enabled": false
},
"readPoolAutoScaleConfig":{
"enabled": true,
"minNodeCount": MIN_NODE_COUNT,
"maxNodeCount": MAX_NODE_COUNT,
"targetMetrics": [
{
"metric":"TARGET_METRIC_1",
"targetValue": VALUE_1
}
]
}
},
"instanceType":"READ_POOL_INSTANCE",
"nodeCount": NODE_COUNT
}
リクエストを送信するには、次のいずれかのオプションを展開します。
次のような JSON レスポンスが返されます。
{
"kind": "sql#operation",
"targetLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/PRIMARY_INSTANCE_ID",
"status": "RUNNING",
"user": "user@example.com",
"insertTime": "2020-01-16T02:32:12.281Z",
"startTime": "2023-06-14T18:48:35.499Z",
"operationType": "CREATE",
"name": "OPERATION_ID",
"targetId": "PRIMARY_INSTANCE_ID",
"selfLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/operations/OPERATION_ID",
"targetProject": "PROJECT_ID"
}
REST v1beta4
自動スケーリングが有効になっている読み取りプールを作成するには、instances:insert メソッドで POST リクエストを使用します。
リクエストのデータを使用する前に、次のように置き換えます。
- READ_POOL_NAME: 読み取りプールに割り当てる名前。
- REGION: インスタンスを配置するリージョン(例:
us-central1)。 - PRIMARY_INSTANCE_ID: 使用するプライマリ インスタンスの ID。
- PROJECT_ID: 読み取りプールを配置するプロジェクトの ID(
my-project-nameなど)。 - DATABASE_VERSION: 使用するデータベース バージョン(例:
POSTGRES_16)。 - MACHINE_TIER: 使用するマシン階層(
db-perf-optimized-N-2など)。 - FULL_NETWORK_NAME: 使用するネットワークの名前。
- MAX_NODE_COUNT: 読み取りプールで使用する読み取りプールノードの最大数(
10など)。 - MIN_NODE_COUNT: 読み取りプールで使用する読み取りプールノードの最小数(
2など)。 - TARGET_METRIC_1: 使用するターゲット指標(次のような指標)。
AVERAGE_CPU_UTILIZATIONAVERAGE_DB_CONNECTIONS
- VALUE_1: 前の手順で指定したターゲット指標に割り当てる値。この例では、
AVERAGE_CPU_UTILIZATIONターゲット指標に値0.50を割り当てます。 - NODE_COUNT: 最初に設定する読み取りプールノードの数(
3など)。
HTTP メソッドと URL:
POST https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances
リクエストの本文(JSON):
{
"name":"READ_POOL_NAME",
"region":"REGION",
"masterInstanceName":"PRIMARY_INSTANCE_ID",
"project":"PROJECT_ID",
"databaseVersion":"DATABASE_VERSION",
"settings":{
"tier":"MACHINE_TIER",
"edition":"ENTERPRISE_PLUS",
"ipConfiguration":{
"privateNetwork":"FULL_NETWORK_NAME",
"ipv4Enabled": false
},
"readPoolAutoScaleConfig":{
"enabled": true,
"minNodeCount": MIN_NODE_COUNT,
"maxNodeCount": MAX_NODE_COUNT,
"targetMetrics": [
{
"metric":"TARGET_METRIC_1",
"targetValue": VALUE_1
}
]
}
},
"instanceType":"READ_POOL_INSTANCE",
"nodeCount": NODE_COUNT
}
リクエストを送信するには、次のいずれかのオプションを展開します。
次のような JSON レスポンスが返されます。
{
"kind": "sql#operation",
"targetLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/PRIMARTY_INSTANCE_ID",
"status": "RUNNING",
"user": "user@example.com",
"insertTime": "2020-01-16T02:32:12.281Z",
"startTime": "2023-06-14T18:48:35.499Z",
"operationType": "CREATE",
"name": "OPERATION_ID",
"targetId": "PRIMARTY_INSTANCE_ID",
"selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/operations/OPERATION_ID",
"targetProject": "PROJECT_ID"
}
既存の読み取りプールで読み取りプールの自動スケーリングを有効にする
リードプールがすでに作成されている場合は、使用する自動スケーリング構成を指定して自動スケーリングを有効にできます。
たとえば、AVERAGE_DB_CONNECTIONS のターゲット値を 50 に指定すると、プール全体の平均データベース接続数が 50 以下になるように、読み取りプールでノードが追加または削除されます。
gcloud
既存の読み取りプールで自動スケーリング対応の読み取りプールを有効にするには、次のコマンドを実行します。
gcloud sql instances patch INSTANCE --auto-scale-enabled --auto-scale-max-node-count=MAX_NODE_COUNT --auto-scale-min-node-count=MIN_NODE_COUNT --auto-scale-out-cooldown-seconds=COOLDOWN_SECONDS_SCALE_OUT --auto-scale-in-cooldown-seconds=COOLDOWN_SECONDS_SCALE_IN --auto-scale-target-metrics=TARGET_METRIC_1=VALUE_1
次のように置き換えます。
- INSTANCE_NAME: 変更する読み取りプールに関連付けられているインスタンス名。
- MAX_NODE_COUNT: 読み取りプールで使用する読み取りプールノードの最大数(
10など)。 - MIN_NODE_COUNT: 読み取りプールで使用する読み取りプールノードの最小数(
2など)。 - COOLDOWN_SECONDS_SCALE_OUT: 省略可。読み取りプールノードの作成または削除間のクールダウン時間または待機時間(秒単位)。
180など。クールダウン期間は 60 秒以上にする必要があります。デフォルト値は 600 秒です。 - COOLDOWN_SECONDS_SCALE_IN: 省略可。読み取りプールノードの作成または削除間のクールダウン時間または待機時間(秒単位)。
180など。クールダウン期間は 60 秒以上にする必要があります。デフォルト値は 600 秒です。 - TARGET_METRIC_1: 使用するターゲット指標(次のような指標)。
AVERAGE_CPU_UTILIZATIONAVERAGE_DB_CONNECTIONS
- VALUE_1: 前の手順で指定したターゲット指標に割り当てる値。この例では、
AVERAGE_DB_CONNECTIONSターゲット指標に値50を割り当てます。
REST v1
自動スケーリングを使用して既存の読み取りプールを有効にするには、PATCH メソッドを使用します。
リクエストのデータを使用する前に、次のように置き換えます。
- PROJECT_ID: インスタンスが含まれている Google Cloud プロジェクトの ID またはプロジェクト番号。
- INSTANCE_ID: 読み取りプールに関連付けられているインスタンスの ID。
- MAX_NODE_COUNT: 読み取りプールで使用する読み取りプールノードの最大数(
10など)。 - MIN_NODE_COUNT: 読み取りプールで使用する読み取りプールノードの最小数(
2など)。 - COOLDOWN_SECONDS: 省略可。読み取りプールノードの作成または削除間のクールダウン時間または待機時間(秒単位)(
180など)。 - SCALE_IN_DISABLED: 省略可。読み取りプールのスケールイン動作を無効にできます。読み取りプールのスケールインを無効にするには、値を
trueに設定します。 - TARGET_METRIC_1: 使用するターゲット指標(次のような指標)。
AVERAGE_CPU_UTILIZATIONAVERAGE_DB_CONNECTIONS
- VALUE_1: 前の手順で指定したターゲット指標に割り当てる値。この例では、
AVERAGE_DB_CONNECTIONSターゲット指標に値50を割り当てます。
HTTP メソッドと URL:
PATCH https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID
リクエストの本文(JSON):
{
"settings": {
"readPoolAutoScaleConfig": {
"enabled": true,
"minNodeCount": MIN_NODE_COUNT,
"maxNodeCount": MAX_NODE_COUNT,
"scaleOutCooldownSeconds": COOLDOWN_SECONDS,
"disableScaleIn": SCALE_IN_DISABLED,
"targetMetrics": [
{
"metric": "TARGET_METRIC_1",
"targetValue": VALUE_1
}
]
}
}
}
リクエストを送信するには、次のいずれかのオプションを展開します。
次のような JSON レスポンスが返されます。
{
"kind": "sql#operation",
"targetLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID",
"status": "RUNNING",
"user": "user@example.com",
"insertTime": "2020-01-16T02:32:12.281Z",
"startTime": "2023-06-14T18:48:35.499Z",
"operationType": "UPDATE",
"name": "OPERATION_ID",
"targetId": "INSTANCE_ID",
"selfLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/operations/OPERATION_ID",
"targetProject": "PROJECT_ID"
}
REST v1beta4
自動スケーリングを使用して既存の読み取りプールを有効にするには、PATCH メソッドを使用します。
リクエストのデータを使用する前に、次のように置き換えます。
- PROJECT_ID: インスタンスが含まれている Google Cloud プロジェクトの ID またはプロジェクト番号。
- INSTANCE_ID: 読み取りプールに関連付けられているインスタンスの ID。
- MAX_NODE_COUNT: 読み取りプールで使用する読み取りプールノードの最大数(
10など)。 - MIN_NODE_COUNT: 読み取りプールで使用する読み取りプールノードの最小数(
2など)。 - COOLDOWN_SECONDS: 省略可。読み取りプールノードの作成または削除間のクールダウン時間または待機時間(秒単位)(
180など)。 - SCALE_IN_DISABLED: 省略可。読み取りプールのスケールイン動作を無効にできます。読み取りプールのスケールインを無効にするには、値を
trueに設定します。 - TARGET_METRIC_1: 使用するターゲット指標(次のような指標)。
AVERAGE_CPU_UTILIZATIONAVERAGE_DB_CONNECTIONS
- VALUE_1: 前の手順で指定したターゲット指標に割り当てる値。この例では、
AVERAGE_DB_CONNECTIONSターゲット指標に値50を割り当てます。
HTTP メソッドと URL:
PATCH https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID
リクエストの本文(JSON):
{
"settings": {
"readPoolAutoScaleConfig": {
"enabled": true,
"minNodeCount": MIN_NODE_COUNT,
"maxNodeCount": MAX_NODE_COUNT,
"scaleOutCooldownSeconds": COOLDOWN_SECONDS,
"disableScaleIn": SCALE_IN_DISABLED,
"targetMetrics": [
{
"metric": "TARGET_METRIC_1",
"targetValue": VALUE_1
}
]
}
}
}
リクエストを送信するには、次のいずれかのオプションを展開します。
次のような JSON レスポンスが返されます。
{
"kind": "sql#operation",
"targetLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID",
"status": "RUNNING",
"user": "user@example.com",
"insertTime": "2020-01-16T02:32:12.281Z",
"startTime": "2023-06-14T18:48:35.499Z",
"operationType": "UPDATE",
"name": "OPERATION_ID",
"targetId": "INSTANCE_ID",
"selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/operations/OPERATION_ID",
"targetProject": "PROJECT_ID"
}
読み取りプールの自動スケーリングを無効にする
読み取りプールの自動スケーリングを無効にする手順は次のとおりです。
gcloud
読み取りプールの自動スケーリングを無効にするには、次のコマンドを実行します。
gcloud sql instances patch INSTANCE_NAME --no-auto-scale-enabled
次のように置き換えます。
- INSTANCE_NAME: 変更する読み取りプールに関連付けられているインスタンス名。
REST v1
読み取りプールの自動スケーリングを無効にするには、PATCH メソッドを使用します。
リクエストのデータを使用する前に、次のように置き換えます。
- PROJECT_ID: インスタンスが含まれている Google Cloud プロジェクトの ID またはプロジェクト番号。
- INSTANCE_ID: 読み取りプールに関連付けられているインスタンスの ID。
HTTP メソッドと URL:
PATCH https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID
リクエストの本文(JSON):
{
"settings":{
"readPoolAutoScaleConfig":{
"enabled": false
}
}
}
リクエストを送信するには、次のいずれかのオプションを展開します。
次のような JSON レスポンスが返されます。
{
"kind": "sql#operation",
"targetLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID",
"status": "RUNNING",
"user": "user@example.com",
"insertTime": "2020-01-16T02:32:12.281Z",
"startTime": "2023-06-14T18:48:35.499Z",
"operationType": "CREATE",
"name": "OPERATION_ID",
"targetId": "INSTANCE_ID",
"selfLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/operations/OPERATION_ID",
"targetProject": "PROJECT_ID"
}
REST v1beta4
読み取りプールの自動スケーリングを無効にするには、PATCH メソッドを使用します。
リクエストのデータを使用する前に、次のように置き換えます。
- PROJECT_ID: インスタンスが含まれている Google Cloud プロジェクトの ID またはプロジェクト番号。
- INSTANCE_ID: 読み取りプールに関連付けられているインスタンスの ID。
HTTP メソッドと URL:
PATCH https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID
リクエストの本文(JSON):
{
"settings":{
"readPoolAutoScaleConfig":{
"enabled": false
}
}
}
リクエストを送信するには、次のいずれかのオプションを展開します。
次のような JSON レスポンスが返されます。
{
"kind": "sql#operation",
"targetLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID",
"status": "RUNNING",
"user": "user@example.com",
"insertTime": "2020-01-16T02:32:12.281Z",
"startTime": "2023-06-14T18:48:35.499Z",
"operationType": "CREATE",
"name": "OPERATION_ID",
"targetId": "INSTANCE_ID",
"selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/operations/OPERATION_ID",
"targetProject": "PROJECT_ID"
}
指標を表示する
システム分析情報を使用して、読み取りプールの関連指標を表示します。
AVERAGE_CPU_UTILIZATION については、CPU 使用率の主要指標グラフを参照してください。
AVERAGE_DB_CONNECTIONS については、データベースあたりの接続数
の主要な指標グラフをご覧ください。
読み取りプールの自動スケーリング オペレーションをモニタリングする
読み取りプール自動スケーリング イベントをトリガーする条件が満たされると、インスタンスで UPDATE オペレーションが実行されます。このオペレーションは Google Cloud コンソールで確認できます。
読み取りプールの自動スケーリング オペレーションがインスタンスに適用されるまでに 10 分以上かかることがあります。既存の接続は新しく追加された読み取りプールノードに転送されません。つまり、新しい接続のみが読み取りプールの自動スケーリングの影響を受けます。
読み取りプールで自動スケーリング オペレーションが実行されている間は、読み取りプールまたはプライマリ インスタンスで他の更新を実行する前に、オペレーションが完了するまで待つ必要があります。同時実行リクエストを実行しようとすると、次のエラー メッセージが表示されることがあります。
Operation failed because another operation was already in progress.
読み取りプール インスタンスを検査して、ノード数の変化を確認できます。
gcloud sql instances describe READ_POOL_NAME | grep nodeCount
次のように置き換えます。
- READ_POOL_NAME: 情報を取得する読み取りプールの名前。
システム イベント監査ログ
メソッド cloudsql.instances.readPoolAutoScale に関連付けられたシステム イベント監査ログ メッセージも確認できます。このメッセージには、古いノード数と新しいノード数が含まれています。