このページでは、大規模な読み取りワークロードの読み取りプールを作成して管理する方法について説明します。
始める前に
- リードプールには、プライマリ インスタンスのコピーが含まれています。まだ作成していない場合は、Cloud SQL Enterprise Plus エディションのプライマリ インスタンスを作成します。リードプールはパブリック IP 接続をサポートしていますが、このガイドでは、プライベート IP(PSA)接続を使用してプライマリ インスタンスを作成します。プライマリ インスタンスとレプリケーションの詳細については、Cloud SQL でのレプリケーションについてをご覧ください。
- プライマリ インスタンスの作成後、root ユーザーのパスワードを選択し、次のコマンドを実行してプライマリ インスタンスにパスワードを設定します。このパスワードを保存して、後で読み取りプールに接続するときに使用します。
- PROJECT: プライマリ インスタンスと読み取りプールを配置するプロジェクトの名前。
- PRIMARY_INSTANCE_NAME: プライマリ インスタンスの名前。
gcloud --project=PROJECT \ sql users set-password root --host=% \ --instance=PRIMARY_INSTANCE_NAME --prompt-for-password
次のように置き換えます。
読み取りプールを作成する
gcloud CLI のインストールと使用開始については、gcloud CLI をインストールするをご覧ください。Cloud Shell の起動については、Cloud Shell を使用するをご覧ください。
次の gcloud beta sql instances create
コマンドを使用して、複数のリードルーム ノードを含むリードルームを作成します。
gcloud beta sql instances createREAD_POOL_NAME \ --tier=TIER --edition=ENTERPRISE_PLUS \ --instance-type=READ_POOL_INSTANCE --node-count=NODE_COUNT \ --master-instance-name=PRIMARY_INSTANCE_NAME
次のように置き換えます。
- READ_POOL_NAME: 読み取りプールに使用する名前。
- TIER: 読み取りプールの各読み取りプールノードに使用するマシンタイプ(
db-perf-optimized-N-4
など)。 - NODE_COUNT: 読み取りプールに必要な読み取りプール ノードの数。
1
~20
の数値を選択します。 - PRIMARY_INSTANCE_NAME: 読み取りプールに関連付けられているプライマリ インスタンスの名前(
my-primary-instance
など)。
インスタンス リソースの
insert
メソッドを使用して、複数のリードレプリカ ノードを含むリードプールを作成します。databaseVersion
プロパティはプライマリと同じにする必要があります。
リクエストのデータを使用する前に、次のように置き換えます。
- PROJECT: プライマリ インスタンスと読み取りプールを配置するプロジェクトの名前。
- REGION: 読み取りプールのリージョン(
us-east1
など)。リージョンはプライマリ インスタンスと同じにする必要があります。 - TIER: 読み取りプールの各読み取りプールノードに使用するマシンタイプ(
db-perf-optimized-N-4
など)。 - PRIMARY_INSTANCE_NAME: プライマリ インスタンスの名前。
- READ_POOL_NAME: 読み取りプールに使用する名前(
my-read-pool
など)。 - DATABASE_VERSION: 使用するデータベース バージョン。例:
POSTGRES_16
。 - NODE_COUNT: 読み取りプールに必要な読み取りプール ノードの数。
1
~20
の数値を選択します。 - FULL_NETWORK_NAME: 読み取りプールを配置する完全なネットワーク パス(
projects/vpc-host-project/global/networks/my-network-name
など)。
HTTP メソッドと URL:
POST https://sqladmin.googleapis.com/v1/projects/PROJECT /instances
リクエストの本文(JSON):
{ "name": "READ_POOL_NAME ", "masterInstanceName": "PRIMARY_INSTANCE_NAME ", "project": "PROJECT ", "databaseVersion": "DATABASE_VERSION ", "region": "REGION ", "instanceType": "READ_POOL_INSTANCE", "nodeCount":NODE_COUNT , "settings": { "tier": "TIER ", "edition": "ENTERPRISE_PLUS", "ipConfiguration": { "ipv4Enabled": false, "privateNetwork": "FULL_NETWORK_NAME " } } }
リクエストを送信するには、次のいずれかのオプションを展開します。
curl(Linux、macOS、Cloud Shell)
リクエスト本文を request.json
という名前のファイルに保存して、次のコマンドを実行します。
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://sqladmin.googleapis.com/v1/projects/PROJECT /instances"
PowerShell(Windows)
リクエスト本文を request.json
という名前のファイルに保存して、次のコマンドを実行します。
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://sqladmin.googleapis.com/v1/projects/PROJECT /instances" | Select-Object -Expand Content
次のような JSON レスポンスが返されます。
レスポンス
{ "kind": "sql#operation", "targetLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT /instances/READ_POOL_NAME ", "status": "PENDING", "user": "user@example.com", "insertTime": "2020-01-21T22:43:37.981Z", "operationType": "CREATE_READ_POOL", "name": "OPERATION_ID ", "targetId": "INSTANCE_ID ", "selfLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT /operations/OPERATION_ID ", "targetProject": "PROJECT " }
インスタンス リソースの
insert
メソッドを使用して、複数のリードレプリカ ノードを含むリードプールを作成します。databaseVersion
プロパティはプライマリと同じにする必要があります。
リクエストのデータを使用する前に、次のように置き換えます。
- PROJECT: プライマリ インスタンスと読み取りプールを配置するプロジェクトの名前。
- REGION: 読み取りプールのリージョン(
us-east1
など)。リージョンはプライマリ インスタンスと同じにする必要があります。 - TIER: 読み取りプールの各読み取りプールノードに使用するマシンタイプ(
db-perf-optimized-N-4
など)。 - PRIMARY_INSTANCE_NAME: プライマリ インスタンスの名前。
- READ_POOL_NAME: 読み取りプールに使用する名前(
my-read-pool
など)。 - DATABASE_VERSION: 使用するデータベース バージョン。例:
POSTGRES_16
。 - NODE_COUNT: 読み取りプールに必要な読み取りプール ノードの数。
1
~20
の数値を選択します。 - FULL_NETWORK_NAME: 読み取りプールを配置する完全なネットワーク パス(
projects/vpc-host-project/global/networks/my-network-name
など)。
HTTP メソッドと URL:
POST https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT /instances
リクエストの本文(JSON):
{ "name": "READ_POOL_NAME ", "masterInstanceName": "PRIMARY_INSTANCE_NAME ", "project": "PROJECT ", "databaseVersion": "DATABASE_VERSION ", "region": "REGION ", "instanceType": "READ_POOL_INSTANCE", "nodeCount":NODE_COUNT , "settings": { "tier": "TIER ", "edition": "ENTERPRISE_PLUS", "ipConfiguration": { "ipv4Enabled": false, "privateNetwork": "FULL_NETWORK_NAME " } } }
リクエストを送信するには、次のいずれかのオプションを展開します。
curl(Linux、macOS、Cloud Shell)
リクエスト本文を request.json
という名前のファイルに保存して、次のコマンドを実行します。
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT /instances"
PowerShell(Windows)
リクエスト本文を request.json
という名前のファイルに保存して、次のコマンドを実行します。
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT /instances" | Select-Object -Expand Content
次のような JSON レスポンスが返されます。
レスポンス
{ "kind": "sql#operation", "targetLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT /instances/READ_POOL_NAME ", "status": "PENDING", "user": "user@example.com", "insertTime": "2020-01-21T22:43:37.981Z", "operationType": "CREATE_READ_POOL", "name": "OPERATION_ID ", "targetId": "INSTANCE_ID ", "selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT /operations/OPERATION_ID ", "targetProject": "PROJECT " }
リードレプリカをリードプールに変換する
既存の Cloud SQL Enterprise Plus エディションのリードレプリカをリードプールに変換するには、プールのノード数を指定します。この変換プロセス中に、レプリカ IP が読み取りプール IP(読み取りエンドポイント)になるため、既存のクライアントは再構成せずにプールに接続できます。
新しく作成されたリードプール ノードには、元のリードレプリカと同じマシンタイプと構成が設定されます。このマシンタイプまたは構成を変更するには、別のオペレーションが必要です。このオペレーションは、ゾーンリードレプリカでのみサポートされています。高可用性(HA)リードレプリカをリードプールに変換するには、まずリージョン リードレプリカに変換する必要があります。
詳細については、読み取りプールの構成を編集するをご覧ください。
gcloud CLI のインストールと使用開始については、gcloud CLI をインストールするをご覧ください。Cloud Shell の起動については、Cloud Shell を使用するをご覧ください。
次の gcloud beta sql instances patch
コマンドを使用して、リードレプリカをリードプールで使用するように変換します。
gcloud beta sql instances patchREAD_REPLICA_NAME \ --instance-type=READ_POOL_INSTANCE --node-count=NODE_COUNT
次のように置き換えます。
- READ_REPLICA_NAME: 変換するリードレプリカの名前。
- NODE_COUNT: 読み取りプールに必要な読み取りプール ノードの数。
1
~20
の数値を選択します。
インスタンス リソースの
patch
メソッドを使用して、リードレプリカをリードプールに変換します。
リクエストのデータを使用する前に、次のように置き換えます。
- READ_REPLICA_NAME: 変換するリードレプリカの名前(例:
my-read-replica
)。 - NODE_COUNT: 読み取りプールに必要な読み取りプール ノードの数。
1
~20
の数値を選択します。
HTTP メソッドと URL:
PATCH https://sqladmin.googleapis.com/v1/projects/PROJECT /instances/READ_REPLICA_NAME
リクエストの本文(JSON):
{ "instanceType": "READ_POOL_INSTANCE", "nodeCount":NODE_COUNT }
リクエストを送信するには、次のいずれかのオプションを展開します。
curl(Linux、macOS、Cloud Shell)
リクエスト本文を request.json
という名前のファイルに保存して、次のコマンドを実行します。
curl -X PATCH \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://sqladmin.googleapis.com/v1/projects/PROJECT /instances/READ_REPLICA_NAME "
PowerShell(Windows)
リクエスト本文を request.json
という名前のファイルに保存して、次のコマンドを実行します。
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method PATCH `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://sqladmin.googleapis.com/v1/projects/PROJECT /instances/READ_REPLICA_NAME " | Select-Object -Expand Content
次のような JSON レスポンスが返されます。
レスポンス
{ "kind": "sql#operation", "targetLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT /instances/READ_REPLICA_NAME ", "status": "PENDING", "user": "user@example.com", "insertTime": "2020-01-21T22:43:37.981Z", "operationType": "UPDATE", "name": "OPERATION_ID ", "targetId": "READ_REPLICA_NAME ", "selfLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT /operations/OPERATION_ID ", "targetProject": "PROJECT " }
インスタンス リソースの
patch
メソッドを使用して、リードレプリカをリードプールに変換します。
リクエストのデータを使用する前に、次のように置き換えます。
- READ_REPLICA_NAME: 変換するリードレプリカの名前(例:
my-read-replica
)。 - NODE_COUNT: 読み取りプールに必要な読み取りプール ノードの数。
1
~20
の数値を選択します。
HTTP メソッドと URL:
PATCH https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT /instances/READ_REPLICA_NAME
リクエストの本文(JSON):
{ "instanceType": "READ_POOL_INSTANCE", "nodeCount":NODE_COUNT }
リクエストを送信するには、次のいずれかのオプションを展開します。
curl(Linux、macOS、Cloud Shell)
リクエスト本文を request.json
という名前のファイルに保存して、次のコマンドを実行します。
curl -X PATCH \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT /instances/READ_REPLICA_NAME "
PowerShell(Windows)
リクエスト本文を request.json
という名前のファイルに保存して、次のコマンドを実行します。
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method PATCH `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT /instances/READ_REPLICA_NAME " | Select-Object -Expand Content
次のような JSON レスポンスが返されます。
レスポンス
{ "kind": "sql#operation", "targetLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT /instances/READ_REPLICA_NAME ", "status": "PENDING", "user": "user@example.com", "insertTime": "2020-01-21T22:43:37.981Z", "operationType": "UPDATE", "name": "OPERATION_ID ", "targetId": "READ_REPLICA_NAME ", "selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT /operations/OPERATION_ID ", "targetProject": "PROJECT " }
読み取りプールをリードレプリカに変換する
gcloud CLI のインストールと使用開始については、gcloud CLI をインストールするをご覧ください。Cloud Shell の起動については、Cloud Shell を使用するをご覧ください。
次の gcloud beta sql instances patch
コマンドを使用して、リードレプリカをリードプールで使用するように変換します。
gcloud beta sql instances patchREAD_POOL_NAME \ --instance-type=READ_REPLICA_INSTANCE
次のように置き換えます。
- READ_POOL_NAME: 変換する読み取りプールの名前。
インスタンス リソースの
patch
メソッドを使用して、リードプールをリードレプリカに変換します。
リクエストのデータを使用する前に、次のように置き換えます。
- READ_POOL_NAME: 読み取りプールの名前(
my-read-pool
など)。
HTTP メソッドと URL:
PATCH https://sqladmin.googleapis.com/v1/projects/PROJECT /instances/READ_POOL_NAME
リクエストの本文(JSON):
{ "instanceType": "READ_REPLICA_INSTANCE" }
リクエストを送信するには、次のいずれかのオプションを展開します。
curl(Linux、macOS、Cloud Shell)
リクエスト本文を request.json
という名前のファイルに保存して、次のコマンドを実行します。
curl -X PATCH \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://sqladmin.googleapis.com/v1/projects/PROJECT /instances/READ_POOL_NAME "
PowerShell(Windows)
リクエスト本文を request.json
という名前のファイルに保存して、次のコマンドを実行します。
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method PATCH `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://sqladmin.googleapis.com/v1/projects/PROJECT /instances/READ_POOL_NAME " | Select-Object -Expand Content
次のような JSON レスポンスが返されます。
レスポンス
{ "kind": "sql#operation", "targetLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT /instances/READ_POOL_NAME ", "status": "PENDING", "user": "user@example.com", "insertTime": "2020-01-21T22:43:37.981Z", "operationType": "UPDATE", "name": "OPERATION_ID ", "targetId": "READ_POOL_NAME ", "selfLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT /operations/OPERATION_ID ", "targetProject": "PROJECT " }
インスタンス リソースの
patch
メソッドを使用して、リードプールをリードレプリカに変換します。
リクエストのデータを使用する前に、次のように置き換えます。
- READ_POOL_NAME: 読み取りプールの名前(
my-read-pool
など)。
HTTP メソッドと URL:
PATCH https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT /instances/READ_POOL_NAME
リクエストの本文(JSON):
{ "instanceType": "READ_REPLICA_INSTANCE" }
リクエストを送信するには、次のいずれかのオプションを展開します。
curl(Linux、macOS、Cloud Shell)
リクエスト本文を request.json
という名前のファイルに保存して、次のコマンドを実行します。
curl -X PATCH \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT /instances/READ_POOL_NAME "
PowerShell(Windows)
リクエスト本文を request.json
という名前のファイルに保存して、次のコマンドを実行します。
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method PATCH `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT /instances/READ_POOL_NAME " | Select-Object -Expand Content
次のような JSON レスポンスが返されます。
レスポンス
{ "kind": "sql#operation", "targetLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT /instances/READ_POOL_NAME ", "status": "PENDING", "user": "user@example.com", "insertTime": "2020-01-21T22:43:37.981Z", "operationType": "UPDATE", "name": "OPERATION_ID ", "targetId": "READ_POOL_NAME ", "selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT /operations/OPERATION_ID ", "targetProject": "PROJECT " }
読み取りプール情報を表示する
gcloud CLI のインストールと使用開始については、gcloud CLI をインストールするをご覧ください。Cloud Shell の起動については、Cloud Shell を使用するをご覧ください。
次の gcloud beta sql instances describe
コマンドを使用して、読み取りプールの説明を取得します。
gcloud beta sql instances describeREAD_POOL_NAME
次のように置き換えます。
- READ_POOL_NAME: 説明する読み取りプールの名前。
IP アドレスとノード情報を含むレスポンスの例は次のようになります。
... connectionName: my-project:us-central1:read-pool ipAddresses: - ipAddress: 10.3.0.108 type: PRIVATE nodeCount: 2 nodes: - dnsName: c5bdacb09ffc.j10o8yqc7pve.us-central1.sql.goog. gceZone: us-central1-f ipAddresses: - ipAddress: 10.3.0.112 type: PRIVATE name: read-pool-node-01 state: RUNNABLE - dnsName: 8f77c454d6b2.j10o8yqc7pve.us-central1.sql.goog. gceZone: us-central1-c ipAddresses: - ipAddress: 10.3.0.113 type: PRIVATE name: read-pool-node-02 state: RUNNABLE
読み取りプールの詳細を表示するには、
get
メソッドを使用します。
リクエストのデータを使用する前に、次のように置き換えます。
- PROJECT: 読み取りプールが存在するプロジェクトの名前。
- READ_POOL_NAME: 読み取りプールの名前(
my-read-pool
など)。
HTTP メソッドと URL:
GET https://sqladmin.googleapis.com/v1/projects/PROJECT /instances/READ_POOL_NAME
リクエストを送信するには、次のいずれかのオプションを展開します。
curl(Linux、macOS、Cloud Shell)
次のコマンドを実行します。
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://sqladmin.googleapis.com/v1/projects/PROJECT /instances/READ_POOL_NAME "
PowerShell(Windows)
次のコマンドを実行します。
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://sqladmin.googleapis.com/v1/projects/PROJECT /instances/READ_POOL_NAME " | Select-Object -Expand Content
次のような JSON レスポンスが返されます。
レスポンス
{ [...], "connectionName": "my-project:us-central1:read-pool", "ipAddresses": [ { "type": "PRIVATE", "ipAddress": "10.3.0.108" } ], "nodeCount": 2, "nodes": [ { "ipAddresses": [ { "type": "PRIVATE", "ipAddress": "10.3.0.112" } ], "name": "read-pool-node-01", "gceZone": "us-central1-f", "dnsName": "c5bdacb09ffc.j10o8yqc7pve.us-central1.sql.goog.", "state": "RUNNABLE" }, { "ipAddresses": [ { "type": "PRIVATE", "ipAddress": "10.3.0.113" } ], "name": "read-pool-node-02", "gceZone": "us-central1-c", "dnsName": "8f77c454d6b2.j10o8yqc7pve.us-central1.sql.goog.", "state": "RUNNABLE" } ] }
読み取りプールの詳細を表示するには、
get
メソッドを使用します。
リクエストのデータを使用する前に、次のように置き換えます。
- PROJECT: 読み取りプールが存在するプロジェクトの名前。
- READ_POOL_NAME: 読み取りプールの名前(
my-read-pool
など)。
HTTP メソッドと URL:
GET https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT /instances/READ_POOL_NAME
リクエストを送信するには、次のいずれかのオプションを展開します。
curl(Linux、macOS、Cloud Shell)
次のコマンドを実行します。
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT /instances/READ_POOL_NAME "
PowerShell(Windows)
次のコマンドを実行します。
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT /instances/READ_POOL_NAME " | Select-Object -Expand Content
次のような JSON レスポンスが返されます。
{ [...], "connectionName": "my-project:us-central1:read-pool", "ipAddresses": [ { "type": "PRIVATE", "ipAddress": "10.3.0.108" } ], "nodeCount": 2, "nodes": [ { "ipAddresses": [ { "type": "PRIVATE", "ipAddress": "10.3.0.112" } ], "name": "read-pool-node-01", "gceZone": "us-central1-f", "dnsName": "c5bdacb09ffc.j10o8yqc7pve.us-central1.sql.goog.", "state": "RUNNABLE" }, { "ipAddresses": [ { "type": "PRIVATE", "ipAddress": "10.3.0.113" } ], "name": "read-pool-node-02", "gceZone": "us-central1-c", "dnsName": "8f77c454d6b2.j10o8yqc7pve.us-central1.sql.goog.", "state": "RUNNABLE" } ] }
読み取りプール ノードを追加または削除する
次の手順では、読み取りプール内の読み取りプールノードの数を変更して、読み取りプールをスケールインまたはスケールアウトします。操作には制限が適用されます。詳細については、読み取りプールの制限事項をご覧ください。
gcloud CLI のインストールと使用開始については、gcloud CLI をインストールするをご覧ください。Cloud Shell の起動については、Cloud Shell を使用するをご覧ください。
次の gcloud beta sql instances patch
コマンドを使用して、読み取りプールをスケーリングします。
gcloud beta sql instances patchREAD_POOL_NAME \ --node-count=NODE_COUNT
次のように置き換えます。
- READ_POOL_NAME: 読み取りプールの名前。
- NODE_COUNT: 読み取りプールに必要な読み取りプール ノードの数。
1
~20
の数値を選択します。
patch
メソッドを使用して、リードプール内のリードプール ノードの数を変更することで、リードプールをスケールインまたはスケールアウトします。
リクエストのデータを使用する前に、次のように置き換えます。
- PROJECT: 読み取りプールが存在するプロジェクトの名前。
- NODE_COUNT: 読み取りプールに必要な読み取りプール ノードの数。
1
~20
の数値を選択します。
HTTP メソッドと URL:
PATCH https://sqladmin.googleapis.com/v1/projects/PROJECT /instances/READ_POOL_NAME
リクエストの本文(JSON):
{ "nodeCount":NODE_COUNT }
リクエストを送信するには、次のいずれかのオプションを展開します。
curl(Linux、macOS、Cloud Shell)
リクエスト本文を request.json
という名前のファイルに保存して、次のコマンドを実行します。
curl -X PATCH \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://sqladmin.googleapis.com/v1/projects/PROJECT /instances/READ_POOL_NAME "
PowerShell(Windows)
リクエスト本文を request.json
という名前のファイルに保存して、次のコマンドを実行します。
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method PATCH `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://sqladmin.googleapis.com/v1/projects/PROJECT /instances/READ_POOL_NAME " | Select-Object -Expand Content
次のような JSON レスポンスが返されます。
レスポンス
{ "kind": "sql#operation", "targetLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT /instances/READ_POOL_NAME ", "status": "PENDING", "user": "user@example.com", "insertTime": "2020-01-21T22:43:37.981Z", "operationType": "UPDATE", "name": "OPERATION_ID ", "targetId": "READ_POOL_NAME ", "selfLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT /operations/OPERATION_ID ", "targetProject": "PROJECT " }
patch
メソッドを使用して、リードプール内のリードプール ノードの数を変更することで、リードプールをスケールインまたはスケールアウトします。
リクエストのデータを使用する前に、次のように置き換えます。
- PROJECT: 読み取りプールが存在するプロジェクトの名前。
- NODE_COUNT: 読み取りプールに必要な読み取りプール ノードの数。
1
~20
の数値を選択します。
HTTP メソッドと URL:
PATCH https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT /instances/READ_POOL_NAME
リクエストの本文(JSON):
{ "nodeCount":NODE_COUNT }
リクエストを送信するには、次のいずれかのオプションを展開します。
curl(Linux、macOS、Cloud Shell)
リクエスト本文を request.json
という名前のファイルに保存して、次のコマンドを実行します。
curl -X PATCH \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT /instances/READ_POOL_NAME "
PowerShell(Windows)
リクエスト本文を request.json
という名前のファイルに保存して、次のコマンドを実行します。
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method PATCH `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT /instances/READ_POOL_NAME " | Select-Object -Expand Content
次のような JSON レスポンスが返されます。
レスポンス
{ "kind": "sql#operation", "targetLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT /instances/READ_POOL_NAME INSTANCE_ID ", "status": "PENDING", "user": "user@example.com", "insertTime": "2020-01-21T22:43:37.981Z", "operationType": "UPDATE", "name": "OPERATION_ID ", "targetId": "READ_POOL_NAME ", "selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT /operations/OPERATION_ID ", "targetProject": "PROJECT " }
読み取りプール構成を編集する
次の手順では、読み取りプールの構成を編集する方法について説明します。詳細については、インスタンスの設定についてとインスタンスを編集するをご覧ください。
gcloud CLI のインストールと使用開始については、gcloud CLI をインストールするをご覧ください。Cloud Shell の起動については、Cloud Shell を使用するをご覧ください。
次の gcloud beta sql instances patch
コマンドを使用して、マシンタイプの変更などにより、読み取りプールを垂直方向にスケーリングします。
gcloud beta sql instances patchREAD_POOL_NAME \ --tier=TIER
次のように置き換えます。
- READ_POOL_NAME: 読み取りプールの名前。
- TIER: 読み取りプールの各読み取りプールノードに適用するマシンタイプ(
db-perf-optimized-N-8
など)。
patch
メソッドを使用して、読み取りプール ノードの構成を変更します。設定は、読み取りプール内のすべての読み取りプールノードに均一に適用されます。
リクエストのデータを使用する前に、次のように置き換えます。
- PROJECT: 読み取りプールが存在するプロジェクトの名前。
- TIER: 読み取りプールの各読み取りプールノードに使用するマシンタイプ(
db-perf-optimized-N-4
など)。 - READ_POOL_NAME: 読み取りプールの名前(
my-read-pool
など)。
HTTP メソッドと URL:
PATCH https://sqladmin.googleapis.com/v1/projects/PROJECT /instances/READ_POOL_NAME
リクエストの本文(JSON):
{ "settings": { "tier": "TIER " } }
リクエストを送信するには、次のいずれかのオプションを展開します。
curl(Linux、macOS、Cloud Shell)
リクエスト本文を request.json
という名前のファイルに保存して、次のコマンドを実行します。
curl -X PATCH \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://sqladmin.googleapis.com/v1/projects/PROJECT /instances/READ_POOL_NAME "
PowerShell(Windows)
リクエスト本文を request.json
という名前のファイルに保存して、次のコマンドを実行します。
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method PATCH `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://sqladmin.googleapis.com/v1/projects/PROJECT /instances/READ_POOL_NAME " | Select-Object -Expand Content
次のような JSON レスポンスが返されます。
レスポンス
{ "kind": "sql#operation", "targetLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT /instances/READ_POOL_NAME ", "status": "PENDING", "user": "user@example.com", "insertTime": "2020-01-21T22:43:37.981Z", "operationType": "UPDATE", "name": "OPERATION_ID ", "targetId": "READ_POOL_NAME ", "selfLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT /operations/OPERATION_ID ", "targetProject": "PROJECT " }
patch
メソッドを使用して、読み取りプール ノードの構成を変更します。設定は、読み取りプール内のすべての読み取りプールノードに均一に適用されます。
リクエストのデータを使用する前に、次のように置き換えます。
- PROJECT: 読み取りプールが存在するプロジェクトの名前。
- TIER: 読み取りプールの各読み取りプールノードに使用するマシンタイプ(
db-perf-optimized-N-4
など)。 - READ_POOL_NAME: 読み取りプールの名前(
my-read-pool
など)。
HTTP メソッドと URL:
PATCH https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT /instances/READ_POOL_NAME
リクエストの本文(JSON):
{ "settings": { "tier": "TIER " } }
リクエストを送信するには、次のいずれかのオプションを展開します。
curl(Linux、macOS、Cloud Shell)
リクエスト本文を request.json
という名前のファイルに保存して、次のコマンドを実行します。
curl -X PATCH \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT /instances/READ_POOL_NAME "
PowerShell(Windows)
リクエスト本文を request.json
という名前のファイルに保存して、次のコマンドを実行します。
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method PATCH `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT /instances/READ_POOL_NAME " | Select-Object -Expand Content
次のような JSON レスポンスが返されます。
レスポンス
{ "kind": "sql#operation", "targetLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT /instances/READ_POOL_NAME ", "status": "PENDING", "user": "user@example.com", "insertTime": "2020-01-21T22:43:37.981Z", "operationType": "UPDATE", "name": "OPERATION_ID ", "targetId": "READ_POOL_NAME ", "selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT /operations/OPERATION_ID ", "targetProject": "PROJECT " }
読み取りプールに接続する
読み取りプールに接続する方法はいくつかあります。次の手順では、同じ VPC ネットワーク内に VM を作成して接続元として機能させ、プライベート IP アドレスを持つ読み取りプールに接続する方法を示します。
Cloud SQL インスタンスへの接続を構成する他の方法については、Cloud SQL 接続についてをご覧ください。通常、接続方法では、読み取りプール情報を表示するで説明されているように、まずインスタンスの IP アドレスまたは接続名を取得する必要があります。読み取りプールは、他の Cloud SQL インスタンスで使用可能な接続方法のほとんどをサポートしていますが、いくつかの制限があります。
Cloud SQL Auth Proxy または Cloud SQL コネクタを使用して接続する場合は、必ず最新バージョンに更新してください。読み取りプールのサポートに必要な最小バージョンは次のとおりです。
- Cloud SQL Auth Proxy: v2.15.2
- Cloud SQL Python コネクタ: v1.18.0
- Cloud SQL Go コネクタ: v1.16.0
- Cloud SQL Node コネクタ: v1.7.0
- Cloud SQL Java コネクタ: v1.24.0
読み取りプールに接続する手順は次のとおりです。
-
Google Cloud コンソールで Cloud SQL の [インスタンス] ページに移動します。
インスタンスの概要ページが表示されます。新しい読み取りプールをクリックして、プライベート IP アドレスを含む詳細を表示します。[このインスタンスに接続] セクションで、インスタンスの接続名をコピーして保存します。connection name
の形式はprojectID:region:instanceID
です。後で Cloud SQL Auth Proxy を起動する際に、このconnection name
を使用します。 - Compute Engine VM を作成します。
- Compute Engine VM に対して 2 つの SSH 接続を開きます。これらは、後続のステップで Cloud SQL Auth Proxy を実行し、データベース クライアントを実行するために使用されます。
- クライアントをインストールします。
- Cloud SQL Auth Proxy をインストールします。
- Cloud SQL Auth Proxy を起動します。
- Cloud SQL インスタンスに接続します。
詳細については、プライベート IP を使用して Cloud SQL インスタンスに接続するをご覧ください。
リードプールを削除する
gcloud CLI のインストールと使用開始については、gcloud CLI をインストールするをご覧ください。Cloud Shell の起動については、Cloud Shell を使用するをご覧ください。
次の gcloud sql instances delete
コマンドを使用して、読み取りプールを削除します。
gcloud sql instances deleteREAD_POOL_NAME
次のように置き換えます。
- READ_POOL_NAME: 削除する読み取りプールの名前。
読み取りプールを削除するには、
delete
メソッドを使用します。
リクエストのデータを使用する前に、次のように置き換えます。
- PROJECT: 読み取りプールが存在するプロジェクトの名前。
- READ_POOL_NAME: 読み取りプールの名前(
my-read-pool
など)。
HTTP メソッドと URL:
DELETE https://sqladmin.googleapis.com/v1/projects/PROJECT /instances/READ_POOL_NAME
リクエストを送信するには、次のいずれかのオプションを展開します。
curl(Linux、macOS、Cloud Shell)
次のコマンドを実行します。
curl -X DELETE \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://sqladmin.googleapis.com/v1/projects/PROJECT /instances/READ_POOL_NAME "
PowerShell(Windows)
次のコマンドを実行します。
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method DELETE `
-Headers $headers `
-Uri "https://sqladmin.googleapis.com/v1/projects/PROJECT /instances/READ_POOL_NAME " | Select-Object -Expand Content
次のような JSON レスポンスが返されます。
レスポンス
{ "kind": "sql#operation", "targetLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT /instances/READ_POOL_NAME ", "status": "PENDING", "user": "user@example.com", "insertTime": "2020-01-21T22:43:37.981Z", "operationType": "DELETE", "name": "OPERATION_ID ", "targetId": "READ_POOL_NAME ", "selfLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT /operations/OPERATION_ID ", "targetProject": "PROJECT " }
読み取りプールを削除するには、
delete
メソッドを使用します。
リクエストのデータを使用する前に、次のように置き換えます。
- PROJECT: 読み取りプールが存在するプロジェクトの名前。
- READ_POOL_NAME: 読み取りプールの名前(
my-read-pool
など)。
HTTP メソッドと URL:
DELETE https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT /instances/READ_POOL_NAME
リクエストを送信するには、次のいずれかのオプションを展開します。
curl(Linux、macOS、Cloud Shell)
次のコマンドを実行します。
curl -X DELETE \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT /instances/READ_POOL_NAME "
PowerShell(Windows)
次のコマンドを実行します。
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method DELETE `
-Headers $headers `
-Uri "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT /instances/READ_POOL_NAME " | Select-Object -Expand Content
次のような JSON レスポンスが返されます。
レスポンス
{ "kind": "sql#operation", "targetLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT /instances/READ_POOL_NAME ", "status": "PENDING", "user": "user@example.com", "insertTime": "2020-01-21T22:43:37.981Z", "operationType": "DELETE", "name": "OPERATION_ID ", "targetId": "READ_POOL_NAME ", "selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT /operations/OPERATION_ID ", "targetProject": "PROJECT " }