Spanner のバックアップと復元を使用すると、Spanner データベースのバックアップをオンデマンドで作成し、論理データの破損の原因となる演算子とアプリケーション エラーから保護できます。バックアップは可用性が高く、暗号化され、作成後の最大 1 年間保持できます。バックアップを作成すると、バックアップはソース データベースと同じインスタンス、リージョン、プロジェクトに存在します。コンプライアンスやビジネス継続性の理由から、別のリージョンまたはプロジェクトにバックアップを復元する必要がある場合は、別のリージョンまたはプロジェクトのインスタンスにバックアップをコピーできます。1 年以上バックアップを保持するには、データベースをエクスポートすることをおすすめします。Spanner は、論理データの破損を防ぐために、ポイントインタイム リカバリも備えています。データベースの削除保護を有効にして、データベースが誤って削除されるのを防ぐこともできます。
バックアップと復元は、次の方法で使用できます。
- Google Cloud コンソールの場合
- gcloud CLI の使用
- クライアント ライブラリの使用
- REST または RPC API の使用
主な機能
データの整合性: バックアップとは、バックアップの
version_time
にある Spanner データベースの外部一貫性コピーのことです。レプリケーション: バックアップはソース データベースと同じインスタンスに存在し、同じ地理的な場所に複製されます。リージョン インスタンスの場合、バックアップは 3 つの読み取り / 書き込みゾーンのそれぞれに保存されます。マルチリージョン インスタンスの場合、バックアップは読み取り / 書き込みレプリカまたは読み取り専用レプリカが含まれるすべてのゾーンに保存されます。データベースのバックアップを別のリージョンまたはプロジェクトに保存する必要がある場合は、完成したバックアップを別のリージョンまたはプロジェクトに配置されている宛先インスタンスにコピーできます。詳細については、バックアップのコピーをご覧ください。
自動有効期限: すべてのバックアップには、バックアップが自動的に削除される日を定める、ユーザー指定の有効期限があります。 期限切れのバックアップは、Spanner により非同期に削除されます。そのため、バックアップの期限が切れてから実際に削除されるまでには、時間差が生じることがあります。
データ復旧計画に推奨される方法
次の表に、データ復旧計画、計画の実装に推奨されるアプローチ、推奨されるアプローチの最大保持期間を示します。
データ復旧計画 | おすすめの方法 | 提案されたアプローチの最大保持期間 |
---|---|---|
ソース データベースと同じインスタンス、リージョン、プロジェクトにデータベースのバックアップを保存する | バックアップの作成。 | 1 年 |
ソース データベースとは異なるインスタンス、リージョン、プロジェクトにデータベースのバックアップを保存する(クロスリージョンまたはプロジェクト間のバックアップ) | バックアップを作成し、別のリージョンまたはプロジェクトのインスタンスにコピーします。 | 1 年 |
Cloud Storage にバックアップを保存する | データベースを Cloud Storage バケットにエクスポートします。バックアップとエクスポートの詳細な比較については、バックアップと復元、インポートとエクスポートのいずれかを選択するをご覧ください。 | 無制限(削除されるまで保持) |
ポイントインタイム リカバリ(PITR) | 過去の特定の時点のデータを復元するには、[PITR] を選択します。データベース version_retention_period をデフォルトの 1 時間から最大 7 日間まで変更できます。 |
7 日 |
Identity and Access Management(IAM)を使用したアクセス制御
IAM では、バックアップと復元されたデータベースを含む Spanner リソースへのアクセスを制御できます。IAM、ロール、権限を初めて使用する場合は、IAM の概要で概要を確認してください。
バックアップ リソースは、Spanner リソース階層でインスタンスごとにまとめられます。プロジェクト レベルまたはインスタンス レベルで IAM ポリシーを適用することをおすすめします。より細かく制御する必要がある場合は、バックアップ レベルとデータベース レベルでも IAM ポリシーを適用できますが、これは複雑であるため、おすすめしません。 バックアップには IAM ポリシーなどのデータベース メタデータは含まれないため、データベースを復元すると、データベースは最初に親インスタンスからポリシーを継承します。
このセクションでは、バックアップと復元にアクセスできる事前定義ロールについて説明します。
以下のロールは、バックアップと復元専用に設計されています。
spanner.backupAdmin
: バックアップの作成、表示、更新、コピー、削除のためのアクセス権があります。このロールでは、バックアップの IAM ポリシーの表示と管理も可能です。このロールはバックアップからデータベースを復元できません。spanner.restoreAdmin
: バックアップからデータベースを復元するためのアクセス権があります。バックアップを別のインスタンスに復元する必要がある場合は、このロールをプロジェクト レベルで、または両方のインスタンスに適用します。このロールはバックアップを作成できません。spanner.backupWriter
: バックアップを作成、コピーできますが、更新や削除はできません。このロールは、バックアップの作成を自動化するスクリプトで使用されます。
次のロールでは、バックアップと復元にもアクセスできます。
spanner.admin
: バックアップと復元への完全アクセス権があります。このロールには、すべての Spanner リソースへの完全アクセス権があります。owner
: バックアップと復元への完全アクセス権があります。editor
: バックアップと復元への完全アクセス権があります。viewer
: バックアップ、バックアップ オペレーション、復元オペレーションを表示できます。このロールでは、バックアップの作成、更新、削除、コピー、復元は行えません。
詳細については、Spanner IAM をご覧ください。
料金
料金は、単位時間あたりのバックアップで使用されるストレージの量に基づいて課金されます。バックアップ オペレーションが完了すると課金が開始され、バックアップが削除されるまで継続されます。作成が完了したバックアップには、最低でも 24 時間分の料金が発生します。バックアップを作成し、完了してから 1 分後に削除した場合でも、24 時間分の料金が請求されます。
バックアップのコピーは、元のバックアップと同じストレージ費用の対象となります。異なるリージョンを占有する 2 つのインスタンス間でコピーを作成すると、送信データ転送費用が適用されます。
バックアップからの復元は無料です。
バックアップは保存され、料金は別途請求されます。バックアップ ストレージは、データベース ストレージの料金やデータベースのストレージ制限には影響しません。詳細については、ストレージ使用率の指標をご覧ください。
バックアップ コストの詳細については、Spanner の料金をご覧ください。
次のステップ
バックアップと復元、インポートとエクスポートの選択について学習する。
詳しくは、スキャンの作成に関する記事をご覧ください。
バックアップをコピーする方法の詳細。
バックアップから復元する方法の詳細について確認する。