リードレプリカを作成する

このページでは、Cloud SQL インスタンスのリードレプリカを作成する方法について説明します。

リードレプリカはマスターのコピーで、マスター インスタンスへの変更がほぼリアルタイムで反映されます。マスターからの読み取りリクエストや解析トラフィックをオフロードするには、レプリカを作成します。1 つのマスター インスタンスに対して複数のリードレプリカを作成することができます。

レプリケーション機能の詳細については、レプリケーションを設定するための要件とヒントをご覧ください。

始める前に

このインスタンスの最初のレプリカを作成する場合は、インスタンスがマスター インスタンスの要件を満たしていることを確認してください。 詳細

リードレプリカの作成

リードレプリカの作成手順は、第 2 世代インスタンスと第 1 世代インスタンスとで異なります。

第 2 世代のマスターのリードレプリカ

第 2 世代のマスターのリードレプリカを作成するには、次の手順を実行します。

Console(第 2 世代)

  1. Google Cloud Platform Console で [Cloud SQL インスタンス] ページに移動します。

    [Cloud SQL インスタンス] ページに移動する

  2. レプリカを作成するインスタンスを見つけ、一覧の一番右にある [その他の操作] メニューを開きます。

    その他メニューの画像

  3. [リードレプリカを作成] を選択します。

    この選択肢が表示されていない場合、そのインスタンスはレプリカであることを示します。レプリカのレプリカを作成することはできません。

  4. インスタンスのバックアップとバイナリログが有効になっている場合は、ステップ 6 に進みます。そうでない場合は、[バックアップを自動化する] と [バイナリ ロギングを有効にする] オンにしてから [続行] をクリックします。

    バックアップを有効にする際のステッパーの画像

  5. [保存して再起動] をクリックし、インスタンスを再起動します。

    バイナリログを有効にすると、インスタンスが再起動されます。

  6. [リードレプリカの作成] ページで、必要に応じてインスタンス ID とその他の構成オプションを更新します。

    [レプリカの作成] ペインの画像

  7. [作成] をクリックします。

    Cloud SQL により、必要に応じてバックアップが作成され、レプリカが作成されます。マスターのインスタンスのページに戻ります。

gcloud(第 2 世代)

  1. マスターのインスタンスのステータスを確認します。
    gcloud sql instances describe [MASTER_INSTANCE_NAME]

    databaseReplicationEnabled プロパティが true の場合、このインスタンスはレプリカです。レプリカのレプリカを作成することはできません。

  2. backupConfiguration の下の enabled プロパティが false の場合、この時点でマスター インスタンスのバックアップを有効にします。
    gcloud sql instances patch [MASTER_INSTANCE_NAME] --backup-start-time [HH:MM]
    backup-start-time パラメータは、UTC±00 タイムゾーンの 24 時間形式で指定されます。また、4 時間のバックアップ時間枠の開始時刻が指定されます。 バックアップはバックアップ時間枠の任意の時刻に開始されます。
  3. binaryLogEnabled プロパティが false の場合、バイナリログを有効にします。
    gcloud sql instances patch --enable-bin-log [MASTER_INSTANCE_NAME]
    バイナリログを有効にすると、インスタンスが再起動されます。
  4. レプリカを作成します。
    gcloud sql instances create [REPLICA_NAME] --master-instance-name=[MASTER_INSTANCE_NAME]
    

    必要に応じて、--tier パラメータを使用して異なる階層サイズを指定できます。

cURL(第 2 世代)

  1. インスタンス リソースの get メソッドを使用して、マスターのデータベース バージョンと現在のバックアップ構成を取得します。たとえば、cURL を使用すると、リクエストは次のようになります。
    ACCESS_TOKEN="$(gcloud auth application-default print-access-token)"
    curl --header "Authorization: Bearer ${ACCESS_TOKEN}" \
         -X GET \
         https://www.googleapis.com/sql/v1beta4/projects/[PROJECT-ID]/instances/[MASTER_INSTANCE_NAME]
    

    出力に backupConfiguration が含まれます。

    "backupConfiguration": [
     {
        "kind": "sql#backupConfiguration",
        "startTime": "12:00",
        "enabled": false,
        "binaryLogEnabled": false
     }
    
  2. enabledbinaryLogEnabled のいずれかが false の場合は、インスタンス リソースの patch メソッドを使用して、これらを両方とも有効にします。バックアップ設定のプロパティについて、現状を維持するものと、変更するものを指定します。

    バックアップを有効にするには、enabledtrue に設定し、startTime にバックアップの時間枠の開始時刻を設定します。バイナリログを有効にするには、binaryLogEnabledtrue に設定します。

    curl --header "Authorization: Bearer ${ACCESS_TOKEN}" \
         --header 'Content-Type: application/json' \
         --data '{"settings" : {"backupConfiguration" : {"startTime": "[HH:MM]", "enabled": true, "binaryLogEnabled": true}}}' \
         -X PATCH \
         https://www.googleapis.com/sql/v1beta4/projects/[PROJECT-ID]/instances/[MASTER_INSTANCE_NAME]
    
  3. インスタンス リソースの insert メソッドを使用してリードレプリカを作成します。リージョンと databaseVersion プロパティはマスターと同じにする必要があります。

    ACCESS_TOKEN="$(gcloud auth application-default print-access-token)"
    curl --header "Authorization: Bearer ${ACCESS_TOKEN}" \
         --header 'Content-Type: application/json' \
         --data '{"masterInstanceName": "[MASTER_INSTANCE_NAME]", "name": "[REPLICA_NAME]",
                  "region": "[MASTER_REGION]", "databaseVersion": [MASTER_DATABASE_VERSION],
                  "settings": {"tier":"[MACHINE_TYPE]"}}' \
         -X POST \
         https://www.googleapis.com/sql/v1beta4/projects/[PROJECT-ID]/instances
    

第 1 世代のマスターのリードレプリカ

第 1 世代のマスターのリードレプリカを作成するには、次の手順に従います。

Console(第 1 世代)

  1. Google Cloud Platform Console で [Cloud SQL インスタンス] ページに移動します。

    [Cloud SQL インスタンス] ページに移動する

  2. レプリカを作成するインスタンスを見つけ、一覧の一番右にある [その他の操作] メニューを開きます。

    その他メニューの画像

  3. [リードレプリカを作成] を選択します。
  4. インスタンスのバックアップとバイナリログが有効になっている場合は、ステップ 7 に進みます。そうでない場合は、[バックアップを自動化する] と [バイナリ ロギングを有効にする] オンにしてから [続行] をクリックします。

    バックアップを有効にする際のステッパーの画像

  5. [保存して再起動] をクリックしてバイナリログを有効にし、インスタンスを再起動します。

    バイナリログを有効にすると、インスタンスが再起動されます。

  6. インスタンスのバックアップがない場合は、バックアップが作成されるまで待機する必要があります。

    インスタンスのバックアップの時間枠によって、バックアップの作成には最大 24 時間かかる場合があります。

  7. [リードレプリカの作成] ページで、必要に応じてインスタンス ID とその他の設定を更新します。
  8. [作成] をクリックします。

    Cloud SQL によりレプリカが作成され、マスターのインスタンスのページに戻ります。

gcloud(第 1 世代)

  1. マスターのインスタンスのステータスを確認します。
    gcloud sql instances describe [MASTER_INSTANCE_NAME]

    databaseReplicationEnabled プロパティが true の場合、このインスタンスはレプリカです。レプリカのレプリカを作成することはできません。

  2. backupConfiguration の下の enabled プロパティが false の場合、この時点でマスター インスタンスのバックアップを有効にします。
    gcloud sql instances patch [MASTER_INSTANCE_NAME] --backup-start-time [HH:MM]
    backup-start-time パラメータは、UTC±00 タイムゾーンの 24 時間形式で指定されます。また、4 時間のバックアップ時間枠の開始時刻が指定されます。 バックアップはバックアップ時間枠の任意の時刻に開始されます。
  3. binaryLogEnabled プロパティが false の場合、バイナリログを有効にします。
    gcloud sql instances patch --enable-bin-log [MASTER_INSTANCE_NAME]
    バイナリログを有効にすると、インスタンスが再起動されます。
  4. 少なくとも 1 つの正常なバックアップが存在することを確認します。
    gcloud sql backups list --instance [MASTER_INSTANCE_NAME]

    このコマンドで 1 つ以上のバックアップが返された場合、次のステップに進みます。それ以外の場合は、次へ進む前に、バックアップが作成されるまで待機しなければなりません。インスタンスのバックアップの時間枠によって、これには最大 24 時間かかる場合があります。

  5. レプリカを作成します。
    gcloud sql instances create [REPLICA_NAME] --master-instance-name [MASTER_INSTANCE_NAME]
    

    必要に応じて、--tier パラメータを使用して異なる階層サイズを指定できます。

cURL(第 1 世代)

  1. インスタンス リソースの get メソッドを使用して、現在のバックアップ構成の値を返します。たとえば、cURL を使用すると、リクエストは次のようになります。
    ACCESS_TOKEN="$(gcloud auth application-default print-access-token)"
    curl --header "Authorization: Bearer ${ACCESS_TOKEN}" \
         --header 'Content-Type: application/json' \
         -X GET \
         https://www.googleapis.com/sql/v1beta4/projects/[PROJECT-ID]/instances/[MASTER_INSTANCE_NAME]?fields=settings
    

    出力に backupConfiguration が含まれます。

    "backupConfiguration": [
     {
        "kind": "sql#backupConfiguration",
        "startTime": "12:00",
        "enabled": false,
        "binaryLogEnabled": false
     }
    
  2. enabledbinaryLogEnabled のいずれかが false の場合は、インスタンス リソースの patch メソッドを使用して、これらを両方とも有効にします。バックアップ設定のプロパティについて、現状を維持するものと、変更するものを指定します。

    バックアップを有効にするには、enabledtrue に設定し、startTime にバックアップの時間枠の開始時刻を設定します。バイナリログを有効にするには、binaryLogEnabledtrue に設定します。

    curl --header "Authorization: Bearer ${ACCESS_TOKEN}" \
         --header 'Content-Type: application/json' \
         --data '{"settings" : {"backupConfiguration" : {"startTime": "[HH:MM]", "enabled": true, "binaryLogEnabled": true}}}' \
         -X PATCH \
         https://www.googleapis.com/sql/v1beta4/projects/[PROJECT-ID]/instances/[MASTER_INSTANCE_NAME]
    
  3. インスタンスにバックアップがあるかどうか確認します。
    curl --header "Authorization: Bearer ${ACCESS_TOKEN}" \
         --header 'Content-Type: application/json' \
         -X GET \
         https://www.googleapis.com/sql/v1beta4/projects/[PROJECT-ID]/instances/[MASTER_INSTANCE_NAME]/backupRuns
    

    バックアップが 1 つも表示されない場合は、次のステップに進む前に、バックアップが作成されるまで待機する必要があります。バックアップの時間枠によって、これには最大 24 時間かかる場合があります。

  4. インスタンス リソースの insert メソッドを使用してリードレプリカを作成します。リージョンは、マスターのリージョンと同じでなければなりません。

    ACCESS_TOKEN="$(gcloud auth application-default print-access-token)"
    curl --header "Authorization: Bearer ${ACCESS_TOKEN}" \
         --header 'Content-Type: application/json' \
         --data '{"masterInstanceName": "[MASTER_INSTANCE_NAME]", "name": "[REPLICA_NAME]", "region": "[REGION]", \
                  "settings": {"tier":"[TIER]", "replicationType": "ASYNCHRONOUS"}}' \
         -X POST \
         https://www.googleapis.com/sql/v1beta4/projects/[PROJECT-ID]/instances
    

次のステップ

このページは役立ちましたか?評価をお願いいたします。

フィードバックを送信...