Spanner のバックアップと復元を使用すると、Spanner データベースのバックアップを、あるインスタンスから別のリージョンまたはプロジェクトの別のインスタンスにコピーして、データ保護機能とコンプライアンス機能を強化できます。コピーされたバックアップには、元のバックアップと同じ主要機能が含まれます。また、コピーしたバックアップと同じインスタンスにコピーしたバックアップを復元して、クロスリージョンとクロスプロジェクトのバックアップと復元のユースケースをサポートできます。
次の方法でバックアップをコピーできます。
- Google Cloud コンソールの場合
- gcloud CLI の使用
- クライアント ライブラリの使用
- REST または RPC API の使用
バックアップと復元の概要については、バックアップと復元の概要をご覧ください。
一般的なクロスリージョンのユースケース
バックアップをコピーするための一般的なクロスリージョンのユースケースには、次のようなものがあります。
コンプライアンス要件や規制要件のために、別のリージョンでバックアップを維持する。
たとえば、コンプライアンス要件を満たすために、本番環境データから最も近いリージョンのインスタンスにデータベースのバックアップをコピーできます。
障害復旧や事業継続のために、別のリージョンでバックアップを維持する。
たとえば、障害復旧以外の目的で、ゼロ以外のリカバリ時間目標(RTO)とリカバリ ポイント目標(RPO)を使用してバックアップ データベースを宛先インスタンスにコピーできます。 その後、必要に応じて宛先インスタンスにコピーしたバックアップからデータベースを復元できます(アプリケーションの RTO と RPO の要件がゼロの場合は、障害復旧計画には Spanner のマルチリージョン構成をおすすめします)。
一般的なクロスプロジェクトのユースケース
バックアップをコピーするための一般的なクロスプロジェクトのユースケースには、次のようなものがあります。
- 運用、セキュリティ、コンプライアンスのいずれかの要件を満たすために、別のプロジェクトでバックアップ コピーを維持する。
開発プロジェクト、テスト プロジェクト、本番環境プロジェクトの間でデータをコピーして移動する。
たとえば、本番環境プロジェクトからテスト プロジェクトにデータを移動する場合は、本番環境データのバックアップを作成して、そのバックアップをテスト プロジェクトにコピーします。コピー オペレーションが完了したら、コピーしたバックアップをテスト プロジェクトのインスタンスに復元できます。
データベースをプロジェクト間で移動する(移行中にダウンタイムが発生する場合がある)。
バックアップのコピーの仕組み
ソース バックアップ、宛先バックアップ、ソース バックアップの作成時点から 1 年以内の有効期限を指定することで、別のリージョンまたはプロジェクトの宛先インスタンスにバックアップをコピーできます。つまり、expiration_date
の値は現在のコピー リクエストが処理されてから 6 時間以上経過しており、ソース バックアップの create_time
から 366 日以内であることが必要です。
Spanner は、コピー バックアップ リクエストの開始時に、バックアップの進行状況を追跡するためにバックアップ リソースと長時間実行バックアップ オペレーションを作成します。バックアップは、宛先インスタンス内のすべての読み取り / 書き込みゾーンと読み取り専用ゾーンにコピーされます。ゾーンが一時的に使用不可になっている場合、そのゾーンがオンラインに戻るまでバックアップ コピーは完了しません。コピー中に宛先インスタンスを削除することはできません。コピー バックアップ オペレーションの進行状況と完了ステータスを追跡するには、バックアップの進行状況の表示の手順に従います。コピーが完了したら、不要になったソース バックアップを削除できます。コピーが完了すると、コピーしたバックアップで GetBackup
、UpdateBackup
、DeleteBackup
などのオペレーションを使用できます。
バックアップのコピーを開始するための前提条件
別のリージョンまたはプロジェクトのインスタンスにバックアップをコピーする場合は、まず宛先インスタンスを設定して構成する必要があります。宛先インスタンスは、バックアップのコピーが置かれるインスタンスです。100 処理単位まで小さく、ソース インスタンス(ソース バックアップが存在するインスタンス)と同じインスタンス構成にする必要はありません。復元を行う前に、宛先インスタンスに、ノードあたり 4 TB のストレージ上限に従ってデータベース サイズをサポートするのに十分なノードまたは処理ユニットがプロビジョニングされていることを確認します(たとえば、8 TB バックアップを復元するには少なくとも 2 つのノードが必要です)。新しい宛先インスタンスを作成するには、インスタンスを作成、管理するをご覧ください。
その他の考慮事項
追加の決定事項には以下が含まれます。
- ソース インスタンスから宛先インスタンスにバックアップをコピーすると、コピーされたバックアップはソース バックアップとは独立して存在します。コピー オペレーションが完了すると、ソース インスタンスに 1 つのバックアップ、宛先インスタンスに 1 つのバックアップが存在します。ソース インスタンスでバックアップが不要になった場合は、削除できます。
- バックアップをリージョン インスタンスにコピーすると、バックアップ データは宛先インスタンスの 3 つの読み取り / 書き込みゾーンのそれぞれにコピーされます。
- バックアップをマルチリージョン インスタンスにコピーすると、バックアップ データは読み取り / 書き込みレプリカまたは読み取り専用レプリカが含まれるインスタンスの各ゾーンにコピーされます。
- 複数のバックアップを同時にコピーできます。
- 宛先のバックアップは、コピープロセスがまだ進行中であっても更新や削除が可能です。宛先のバックアップを削除すると、結果的に進行中のコピー オペレーションがキャンセルされます。
- コピー オペレーションが進行中の間も、ソース インスタンスでバックアップを復元できます。
- コピー オペレーションは、完了する前にキャンセルできます。
コピー処理中には、次のオペレーションは許可されません。
- コピー オペレーションの進行中は、ソース バックアップを削除できません。
- コピーの進行中は、宛先のコピーしたバックアップで新しいコピーや復元を開始できません。コピーが完了すると再びコピーができるようになり、復元もできます。
Encryption
デフォルトでは、コピーされたバックアップは、ソース バックアップ暗号化と同じ暗号化構成(Google 管理または顧客管理(CMEK))を使用します。この動作は、バックアップのコピー時に別の暗号化構成を指定することでオーバーライドできます。リージョン間でコピーするときに、コピーしたバックアップが CMEK で暗号化されるようにするには、宛先のリージョンに対応する KMS 鍵を指定します。
コピーの時間とパフォーマンス
バックアップのコピーにかかる時間は、ソース バックアップのサイズやコピーされたバックアップに選択された宛先のリージョンなどの要因によって異なります。通常、ほとんどのコピーは 1~4 時間で完了します。バックアップのサイズと宛先のリージョンによっては、コピーにもっと時間がかかることがあります。バックアップをコピーしても、ソース インスタンスやデータベースにパフォーマンス上の影響はありません。パフォーマンスに影響を及ぼすことなく、別のリージョンのインスタンスにソース バックアップの複数のコピーを同時に作成できます。
アクセス制御(IAM)
バックアップをコピーするには、ソース バックアップに対する spanner.backups.copy
権限と宛先インスタンスに対する spanner.backups.create
権限が必要です。これらの権限は spanner.backupAdmin
ロールと spanner.backupWriter
ロールに含まれています。したがって、spanner.backupAdmin
ロールか spanner.backupWriter
ロールがあれば、ソース バックアップでコピー バックアップ リクエストを呼び出すことができます。
料金
バックアップのコピーには、元のバックアップと同じストレージ費用が適用されます。バックアップ コピーが完了すると、転送先インスタンスのバックアップ ストレージに対して課金されます。異なるリージョンにある 2 つのインスタンス間でコピーを作成する場合、データ転送費用が適用されます。
たとえば、データベースをソース マルチリージョン インスタンス構成 nam7
から宛先マルチリージョン インスタンス構成 nam-eur-asia3
にコピーする場合は、次の料金が適用されます。
us-central1
リージョンの重複は無料- ウィットネス
us-central2
リージョンは無料 - 大陸間データ転送は、新しい大陸(ヨーロッパとアジア)ごとに 1 回ずつ、2 回適用されます。
- 同じ大陸内のリージョン間のデータ転送料金は
us-east1
に 1 回適用されます - 同じ大陸内のリージョン間のデータ転送料金はヨーロッパで 1 回適用されます
Spanner は、リージョン間転送の数を最小限に抑えるためにコピープロセスを最適化します。これにより、データ転送のコストを最小限に抑えながら、高速なコピー バックアップを実現できます。
次のステップ
バックアップと復元の詳細を確認する。
Google Cloud コンソール を使用したバックアップの操作について学習します。
Google Cloud CLI を使用したバックアップの操作について学習します。
クライアント ライブラリを使用したバックアップの操作について学習します。