このページでは、Spanner のデータ所在地について説明します。
Spanner では、Spanner データが保存される地理的位置(リージョン)を指定できるため、データ所在地のコンプライアンスと規制の要件を満たしています。
このページで適用される用語の定義は次のとおりです。
ロケーションは、Google Cloud ロケーション ページに記載されている Google Cloud リージョンまたはマルチリージョンです。
データという用語は、 Google Cloud一般サービス規約のデータ ロケーションの項目にある、「顧客データ」と同じ意味です。
データ所在地に関するコミットメント
Spanner のデータ所在地のコミットメントは、地域別パーティション分割を使用しないデータベースと、地域別パーティション分割を使用するデータベースで異なります。
地域別パーティション分割を使用しないデータベース
地域別パーティション分割を使用しないデータベースの場合、Spanner は Google Cloud 利用規約に従って、データベース レベルでデータ所在地のコミットメントを提供します。
地域別パーティション分割を使用するデータベース
地域別パーティション分割を使用するデータベースの場合、Spanner はプレースメント レベルでデータ所在地のコミットメントを提供します。プレースメントごとに、Google Cloud ロケーション ページに表示されている特定のリージョンまたはマルチリージョン ロケーションを選択できます。Spanner は、選択したリージョンまたはマルチリージョン内にのみ保存データを保存します。これには次の制限があります。
- 主キー、インデックス付き列の値、外部キー列の値の小さなサブセット(プレースメント テーブルとプレースメント テーブル以外の両方)がスプリットの境界として使用されます。これはデフォルトのプレースメントに保存される場合があります。
- Key Visualizer に使用されるキー範囲、高いロック競合が発生しているキー、クエリ統計情報の統計情報とオブザーバビリティ情報は、デフォルトのプレースメントに保存されます。
- クエリの最適化に使用される列レベルの統計情報は、デフォルトのプレースメントに保存されます。
次の点は設計によるものです。
- プレースメント テーブルの主キーはトラフィックのルーティングに使用され、デフォルトのプレースメントに保存される場合があります。これが懸念される場合は、UUID や、データ所在地の対象外である他のキーの使用を検討してください。
- インターリーブされたインデックスは、親行からプレースメントを継承します。グローバル インデックス(キーと保存値を含む)は、デフォルトのプレースメントに配置されます。
- 外部キーのバックアップ インデックスは、デフォルトのプレースメントに配置されます。
- 行のプレースメント キーを変更すると、データの移動は非同期で実行されます。行を新しい場所に移動するまでに数時間かかることがあります。データが利用可能になり、新しいロケーションから提供された後も、古いロケーションからのデータの削除には Google Cloud データ削除プロセスが適用されます。
データ所在地の暗号化
デフォルトでは、Spanner はお客様のデータを保存時に暗号化します。Spanner では、ユーザーが追加で操作を行わなくても、暗号化が行われます。このオプションは、Google のデフォルトの暗号化と呼ばれます。デフォルトでは、Google はデータが存在するロケーションと同じロケーションの暗号鍵を使用します。
暗号鍵をコントロールする場合は、Cloud KMS の顧客管理の暗号鍵(CMEK)を、Spanner などの CMEK 統合サービスで使用できます。CMEK を使用する場合は、データが存在するロケーションと同じロケーションで鍵を選択する必要があります。詳細については、顧客管理の暗号鍵(CMEK)の概要をご覧ください。