このページでは、Cloud SQL インスタンスのクローンの作成方法について説明します。
Cloud SQL インスタンスのクローンを作成すると、ソース インスタンスのコピーであるが完全に独立した新しいインスタンスが作成されます。クローン作成のオペレーションが完了した後にソース インスタンスを変更してもクローンに反映されることはなく、その逆も同様です。
ソース インスタンスの構成(アクティベーション ポリシー、データベース フラグ、承認済みの IP アドレスなど)はクローンにコピーされます。インスタンス IP アドレスとレプリカはコピーされません。これらのアイテムは明示的にクローンに設定する必要があります。
レプリカのクローンを作成することはできません。別のインスタンスからクローン作成されたインスタンスのクローンを作成することは可能です。
過去の時点におけるインスタンスのクローンを作成することができます。これは、破壊的なイベントからデータベースを回復するのに役立ちます。詳しくは、ポイントインタイム リカバリを行うをご覧ください。
第 2 世代インスタンスのクローンを作成する
Console
- Google Cloud Platform Console で Cloud SQL インスタンス ページに移動します。
- クローン作成元のインスタンスを見つけ、そのリストの右端にある [その他の操作] メニューを開きます。

- [クローンを作成] をクリックします。
- [クローンの作成] ページで、必要に応じてインスタンス ID を更新し、[クローンを作成] をクリックします。[最新状態のインスタンスを複製] は選択されたままにしておきます。
クローンの初期化中に、インスタンスの一覧ページに戻ります。
gcloud
インスタンスのクローンを作成します。
gcloud sql instances clone [SOURCE_INSTANCE_NAME] [TARGET_INSTANCE_NAME]
cURL
インスタンスのクローンを作成します。
ACCESS_TOKEN="$(gcloud auth application-default print-access-token)"
curl --header "Authorization: Bearer ${ACCESS_TOKEN}" \
--header 'Content-Type: application/json' \
--data '{"cloneContext": {"destinationInstanceName": "[TARGET_INSTANCE_NAME]" }}' \
-X POST \
https://www.googleapis.com/sql/v1beta4/projects/[PROJECT-ID]/instances/[SOURCE_INSTANCE_NAME]/clone
第 1 世代インスタンスを作成する
Console
- Google Cloud Platform Console で Cloud SQL インスタンス ページに移動します。
- クローンを作成する第 1 世代のインスタンスを見つけ、そのリストの右端にあるその他の操作メニューを開きます。
- [クローンを作成] を選択します。
- インスタンスのバックアップがなく、またバイナリログが有効になっていない場合は、すぐに有効にし、[次へ]、[バックアップを待機] をクリックします。バックアップ期間の後で、クローンを作成するタスクを最初から再開します。

- インスタンス ID を更新できる [クローンの作成] ページが表示されたら、必要に応じて更新し、[クローンを作成] をクリックします。
クローンの初期化中に、インスタンスの一覧ページに戻ります。
gcloud
- インスタンスの詳細を取得します。
gcloud sql instances describe [INSTANCE_NAME]
backupConfigurationの下でbinaryLogEnabledとenabledの値を見つけます。- 値のいずれも有効になっていない場合は、すぐに有効にします。
- バックアップを有効にします。
gcloud sql instances patch [INSTANCE_NAME] --backup-start-time [HH:MM]
- バイナリログを有効にします。
gcloud sql instances patch [INSTANCE_NAME] --enable-bin-log
- バックアップを有効にします。
- バックアップもバイナリログも有効になっていなかった場合は、バックアップが取得されるのを待ちます。
バックアップ ウィンドウにより、これに最長で 1 日かかることがあります。
- インスタンスのクローンを作成します。
gcloud sql instances clone [SOURCE_INSTANCE_NAME] [TARGET_INSTANCE_NAME]
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/[SOURCE_INSTANCE_NAME]?fields=settings出力に
backupConfigurationが含まれます。"backupConfiguration": [ { "kind": "sql#backupConfiguration", "startTime": "12:00", "enabled": false, "binaryLogEnabled": false } enabledとbinaryLogEnabledのいずれかがfalseの場合、インスタンス リソースのpatchメソッドを使用して、これらを両方とも有効にします。バックアップ設定のプロパティについて、現状を維持するものと、変更するものを指定します。バックアップを有効にするには、
enabledをtrueに設定し、startTimeにバックアップの時間枠の開始時刻を設定します。バイナリログを有効にするには、binaryLogEnabledをtrueに設定します。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/[SOURCE_INSTANCE_NAME]- バックアップもバイナリログも有効になっていなかった場合は、バックアップが取得されるのを待ちます。
バックアップ期間によっては、これに最長で 1 日かかることがあります。
-
インスタンスのクローンを作成します。
curl --header "Authorization: Bearer ${ACCESS_TOKEN}" \ --header 'Content-Type: application/json' \ --data '{"cloneContext": {"kind": "sql#cloneContext", "destinationInstanceName": "[TARGET_INSTANCE_NAME]" }}' \ -X POST \ https://www.googleapis.com/sql/v1beta4/projects/[PROJECT-ID]/instances/[SOURCE_INSTANCE_NAME]/clone

