このドキュメントでは、非同期レプリケーションを開始および停止する方法について説明します。
非同期レプリケーションは、低 RPO、低 RTO の障害復旧に対して有効です。非同期レプリケーションの詳細については、非同期レプリケーションについてをご覧ください。
制限事項
- プライマリ ディスクは、一度に 1 つのセカンダリ ディスクにのみ複製できます。
- レプリケーションが停止すると、同じディスクへのレプリケーションを再開できなくなります。新しいセカンダリ ディスクを作成して、レプリケーションを再開する必要があります。
- レプリケーションのプロセス中にセカンダリ ディスクを接続、削除、スナップショットすることはできません。
- リージョン ディスクをセカンダリ ディスクとして使用していて、セカンダリ ディスクのゾーンの 1 つでゾーンが停止した場合、プライマリ ディスクからセカンダリ ディスクへのレプリケーションは失敗します。
始める前に
- 複数のディスク間でレプリケーションを調整する必要がある場合は、整合性グループを作成します。
- プライマリ ディスクを作成します。
- セカンダリ ディスクを作成します。
-
まだ設定していない場合は、認証を設定します。認証では、 Google Cloud サービスと API にアクセスするための ID が確認されます。ローカル開発環境からコードまたはサンプルを実行するには、次のいずれかのオプションを選択して Compute Engine に対する認証を行います。
Select the tab for how you plan to use the samples on this page:
Console
When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.
gcloud
-
Google Cloud CLI をインストールします。 インストール後、次のコマンドを実行して Google Cloud CLI を初期化します。
gcloud init
外部 ID プロバイダ(IdP)を使用している場合は、まず連携 ID を使用して gcloud CLI にログインする必要があります。
- Set a default region and zone.
Terraform
ローカル開発環境でこのページの Terraform サンプルを使用するには、gcloud CLI をインストールして初期化し、ユーザー認証情報を使用してアプリケーションのデフォルト認証情報を設定します。
Google Cloud CLI をインストールします。
外部 ID プロバイダ(IdP)を使用している場合は、まず連携 ID を使用して gcloud CLI にログインする必要があります。
If you're using a local shell, then create local authentication credentials for your user account:
gcloud auth application-default login
You don't need to do this if you're using Cloud Shell.
If an authentication error is returned, and you are using an external identity provider (IdP), confirm that you have signed in to the gcloud CLI with your federated identity.
詳細については Set up authentication for a local development environment をご覧ください。
REST
このページの REST API サンプルをローカル開発環境で使用するには、gcloud CLI に指定した認証情報を使用します。
Google Cloud CLI をインストールします。
外部 ID プロバイダ(IdP)を使用している場合は、まず連携 ID を使用して gcloud CLI にログインする必要があります。
詳細については、 Google Cloud 認証ドキュメントの REST を使用して認証するをご覧ください。
レプリケーションを開始
Google Cloud コンソール、Google Cloud CLI、REST、または Terraform を使用してレプリケーションを開始します。
コンソール
Google Cloud コンソールで、[非同期レプリケーション] ページに移動します。
レプリケーションを開始するセカンダリ ディスクの名前をクリックします。
[レプリケーションを開始] をクリックします。[レプリケーションの開始] ウィンドウが開きます。
[レプリケーションを開始] をクリックします。
gcloud
gcloud compute disks start-async-replication
コマンドを使用してレプリケーションを開始します。gcloud compute disks start-async-replication PRIMARY_DISK_NAME \ --PRIMARY_LOCATION_FLAG=PRIMARY_LOCATION \ --secondary-disk=SECONDARY_DISK_NAME \ --SECONDARY_LOCATION_FLAG=SECONDARY_LOCATION \ --secondary-disk-project=SECONDARY_PROJECT
次のように置き換えます。
PRIMARY_DISK_NAME
: プライマリ ディスクの名前。PRIMARY_LOCATION_FLAG
: プライマリ ディスクのロケーション フラグ。リージョン ディスクの場合は、--region
を使用します。ゾーンディスクの場合は、--zone
を使用します。PRIMARY_LOCATION
: プライマリ ディスクのリージョンまたはゾーン。リージョン ディスクの場合は、リージョンを使用します。ゾーンディスクの場合は、ゾーンを使用します。SECONDARY_DISK_NAME
: セカンダリ ディスクの名前。SECONDARY_LOCATION_FLAG
: セカンダリ ディスクのロケーション フラグ。リージョン ディスクの場合は、--secondary-disk-region
を使用します。ゾーンディスクの場合は、--secondary-disk-zone
を使用します。SECONDARY_LOCATION
: セカンダリ ディスクのリージョンまたはゾーン。リージョン ディスクの場合は、リージョンを使用します。ゾーンディスクの場合は、ゾーンを使用します。SECONDARY_PROJECT
: セカンダリ ディスクを含むプロジェクト。
Go
Java
Node.js
Python
REST
次のいずれかの方法でレプリケーションを開始します。
disks.startAsyncReplication
メソッドを使用して、ゾーンディスクのレプリケーションを開始します。POST https://compute.googleapis.com/compute/v1/projects/PRIMARY_DISK_PROJECT/zones/PRIMARY_LOCATION/disks/PRIMARY_DISK_NAME/startAsyncReplication { "asyncSecondaryDisk": "projects/SECONDARY_DISK_PROJECT/SECONDARY_LOCATION_PARAMETER/SECONDARY_LOCATION/disks/SECONDARY_DISK_NAME" }
regionDisks.startAsyncReplication
メソッドを使用して、リージョン ディスクのレプリケーションを開始します。POST https://compute.googleapis.com/compute/v1/projects/PRIMARY_DISK_PROJECT/regions/PRIMARY_LOCATION/regionDisks/PRIMARY_DISK_NAME/startAsyncReplication { "asyncSecondaryDisk": "projects/SECONDARY_DISK_PROJECT/SECONDARY_LOCATION_PARAMETER/SECONDARY_LOCATION/disks/SECONDARY_DISK_NAME" }
次のように置き換えます。
PRIMARY_DISK_PROJECT
: プライマリ ディスクを含むプロジェクト。PRIMARY_LOCATION
: プライマリ ディスクのリージョンまたはゾーン。リージョン ディスクの場合は、リージョンを使用します。ゾーンディスクの場合は、ゾーンを使用します。PRIMARY_DISK_NAME
: プライマリ ディスクの名前。SECONDARY_DISK_PROJECT
: セカンダリ ディスクを含むプロジェクト。SECONDARY_LOCATION_PARAMETER
: セカンダリ ディスクのロケーション パラメータ。リージョン ディスクの場合は、regions
を使用します。ゾーンディスクの場合は、zones
を使用します。SECONDARY_LOCATION
: セカンダリ ディスクのリージョンまたはゾーン。リージョン ディスクの場合は、リージョンを使用します。ゾーンディスクの場合は、ゾーンを使用します。SECONDARY_DISK_NAME
: セカンダリ ディスクの名前。
Terraform
プライマリ ディスクとセカンダリ ディスクの間のレプリケーションを開始するには、
compute_disk_async_replication
リソースを使用します。Terraform 構成を適用または削除する方法については、基本的な Terraform コマンドをご覧ください。
レプリケーションを停止
単一のプライマリ ディスクまたはセカンダリ ディスク、または整合性グループ内のすべてのディスクのレプリケーションを停止できます。整合性グループ内の単一ディスクのレプリケーションを停止すると、そのディスクのレプリケーション時間は、整合性グループ内の他のディスクと同期しなくなります。
レプリケーションの停止は、フェイルオーバーとフェイルバックのシナリオで実行されます。レプリケーションを停止すると、同じセカンダリ ディスクへのレプリケーションを再開できません。レプリケーションを再開するには、新しいセカンダリ ディスクを作成して最初からやり直す必要があります。
ディスクのレプリケーションを停止すると、ディスクのレプリケーション状態は
STOPPED
に変わります。ディスクのレプリケーション ペア内の他のディスク(対応するプライマリ ディスクまたはセカンダリ ディスク)のレプリケーション状態は、後でSTOPPED
に更新されます。時間差を回避して、他のディスクのレプリケーション状態をすぐにSTOPPED
に更新する場合は、他のディスクのレプリケーションも手動で停止する必要があります。両方のディスクでレプリケーションを停止しても、レプリケーションの停止時刻には影響せず、ディスクのレプリケーション状態にのみ影響します。単一ディスクのレプリケーションを停止する
Google Cloud コンソール、Google Cloud CLI、または REST を使用して、単一ディスクのレプリケーションを停止します。
コンソール
次の方法でレプリケーションを停止します。
Google Cloud コンソールで、[非同期レプリケーション] ページに移動します。
レプリケーションを停止するプライマリ ディスクまたはセカンダリ ディスクの名前をクリックします。[ディスクの管理] ページが開きます。
[レプリケーションを終了] をクリックします。[レプリケーションの終了] ウィンドウが開きます。
[レプリケーションを終了] をクリックします。
gcloud
gcloud compute disks stop-async-replication
コマンドを使用してレプリケーションを停止します。gcloud compute disks stop-async-replication DISK_NAME \ --LOCATION_FLAG=LOCATION
次のように置き換えます。
DISK_NAME
: ディスクの名前。LOCATION_FLAG
: ディスクのロケーション フラグ。リージョン ディスクの場合は、--region
を使用します。ゾーンディスクの場合は、--zone
を使用します。LOCATION
: ディスクのリージョンまたはゾーン。リージョン ディスクの場合は、リージョンを使用します。ゾーンディスクの場合は、ゾーンを使用します。
Go
Java
Node.js
Python
REST
次のいずれかの方法でレプリケーションを停止します。
disks.stopAsyncReplication
メソッドを使用して、ゾーンディスクのレプリケーションを停止します。POST https://compute.googleapis.com/compute/v1/projects/PROJECT/zones/LOCATION/disks/DISK_NAME/stopAsyncReplication { }
regionDisks.stopAsyncReplication
メソッドを使用して、リージョン ディスクのレプリケーションを停止します。POST https://compute.googleapis.com/compute/v1/projects/PROJECT/regions/LOCATION/regionDisks/DISK_NAME/stopAsyncReplication { }
次のように置き換えます。
PROJECT
: ディスクを含むプロジェクト。DISK_NAME
: ディスクの名前。LOCATION
: ディスクのゾーンまたはリージョン。ゾーンディスクの場合は、ゾーンを使用します。リージョン ディスクの場合は、リージョンを使用します。
Terraform
プライマリ ディスクとセカンダリ ディスクでレプリケーションを停止するには、
compute_disk_async_replication
リソースを削除します。整合性グループのレプリケーションを停止する
Google Cloud コンソール、Google Cloud CLI、または REST を使用して、整合性グループ内のすべてのディスクのレプリケーションを停止します。
コンソール
整合性グループ内のすべてのディスクのレプリケーションを停止するには、次の操作を行います。
Google Cloud コンソールで、[非同期レプリケーション] ページに移動します。
[整合性グループ] タブをクリックします。
レプリケーションを停止する整合性グループの名前をクリックします。[整合性グループの管理] ページが開きます。
[レプリケーションを終了] をクリックします。[レプリケーションの終了] ウィンドウが開きます。
[レプリケーションを終了] をクリックします。
gcloud
gcloud compute disks stop-group-async-replication
コマンドを使用して、整合性グループ内のすべてのディスクのレプリケーションを停止します。gcloud compute disks stop-group-async-replication CONSISTENCY_GROUP \ --LOCATION_FLAG=LOCATION
次のように置き換えます。
CONSISTENCY_GROUP
: 整合性グループの URL。例:projects/PROJECT/regions/REGION/resourcePolicies/CONSISTENCY_GROUP_NAME
LOCATION_FLAG
: 整合性グループ内のディスクのロケーション フラグ。リージョン ディスクの場合は、--region
を使用します。ゾーンディスクの場合は、--zone
を使用します。LOCATION
: ディスクのリージョンまたはゾーン。リージョン ディスクの場合は、リージョンを使用します。ゾーンディスクの場合は、ゾーンを使用します。
Go
Java
Node.js
Python
REST
次のいずれかの方法で、整合性グループ内のすべてのディスクのレプリケーションを停止します。
disks.stopGroupAsyncReplication
メソッドを使用して、ゾーンディスクのレプリケーションを停止します。POST https://compute.googleapis.com/compute/v1/projects/PROJECT/zones/LOCATION/disks/stopGroupAsyncReplication { "resourcePolicy": "CONSISTENCY_GROUP" }
regionDisks.stopGroupAsyncReplication
メソッドを使用して、リージョン ディスクのレプリケーションを停止します。POST https://compute.googleapis.com/compute/v1/projects/PROJECT/regions/LOCATION/regionDisks/DISK_NAME/stopAsyncReplication { "resourcePolicy": "CONSISTENCY_GROUP" }
次のように置き換えます。
DISK_NAME
: ディスクの名前LOCATION
: ディスクのゾーンまたはリージョン。ゾーンディスクの場合は、ゾーンを使用します。リージョン ディスクの場合は、リージョンを使用します。CONSISTENCY_GROUP
: 整合性グループの URL。例:projects/PROJECT/regions/REGION/resourcePolicies/CONSISTENCY_GROUP_NAME
次のステップ
- フェイルオーバーとフェイルバックの方法を学習する。
- 非同期レプリケーションのパフォーマンスをモニタリングする方法を確認する。
特に記載のない限り、このページのコンテンツはクリエイティブ・コモンズの表示 4.0 ライセンスにより使用許諾されます。コードサンプルは Apache 2.0 ライセンスにより使用許諾されます。詳しくは、Google Developers サイトのポリシーをご覧ください。Java は Oracle および関連会社の登録商標です。
最終更新日 2025-10-19 UTC。
-