ディスク スナップショットについて


スナップショットは、永続ディスクからデータを増分的にバックアップします。スナップショットを作成してディスクの現在の状態をキャプチャすると、そのスナップショットを使用して新しいディスクにデータを復元できます。Compute Engine は、各スナップショットの複数のコピーを複数の場所に保存し、自動チェックサムを使用してデータの整合性を確保します。

ディスクが実行中の仮想マシン(VM)インスタンスにアタッチされている間も、ディスクからスナップショットを作成できます。実行中の VM インスタンスにアタッチされているディスクから作成されたスナップショットのライフサイクルは、VM インスタンスのライフサイクルとは関係ありません。

スナップショットは、カスタム イメージマシンイメージとは異なるものです。これらは、インスタンス ブートディスクの作成に役立ちます。詳細については、イメージ、スナップショット、インスタンス テンプレートの使用を比較する表をご覧ください。

スナップショットの操作

  • スナップショットによってディスクをバックアップする方法については、スナップショットの作成をご覧ください。危険性のあるオペレーションを試みる前にディスクのスナップショットを作成できます。これにより、予期しない結果が発生した場合に、変更を元に戻すことができます。

  • スナップショットの内容を新しいディスクに復元する方法については、スナップショットの復元をご覧ください。

  • 特定のスナップショットが不要になったら、スナップショットを削除してストレージ コストを削減できます。

  • 予期しないデータ損失のリスクを軽減するため、スナップショット スケジュールを設定して、データが定期的にバックアップされるようにすることをおすすめします。

スナップショットへのアクセス

制限事項

  • 既存のスナップショットのストレージ ロケーションは変更できません。スナップショットのストレージ ロケーションの選択をご覧ください。

  • ディスクのスナップショットは 10 分に 1 回まで可能です。ディスクのスナップショット リクエストを大量に発行する場合、60 分で最大 6 件のリクエストを発行できます。詳細については、スナップショットの頻度の制限をご覧ください。

  • スナップショットに保存されているデータは編集できません。

  • 削除されたスナップショットは復元できません。

増分スナップショットの仕組み

スナップショットは増分であり自動的に圧縮されるため、ディスクの完全なイメージを定期的に作成するよりも高速かつ低コストで、定期的にスナップショットを作成できます。

増分スナップショットは次のように機能します。

  • 永続ディスクの最初の正常なスナップショットは、永続ディスクのすべてのデータを含む完全なスナップショットです。
  • 2 番目のスナップショットには、1 番目のスナップショットより後に新規作成または変更されたデータのみが含まれます。スナップショット 1 以降に変更されていないデータは含まれません。変更されていないデータについては、スナップショット 2 にスナップショット 1 への参照が含まれます。
  • スナップショット 3 には、スナップショット 2 以降に新規作成または変更されたデータは含まれますが、スナップショット 1 または 2 以降に変更されていないデータは含まれません。変更されていないデータについては、スナップショット 3 にスナップショット 1 とスナップショット 2 のブロックへの参照が含まれます。

これが、永続ディスクのすべての後続のスナップショットについて繰り返されます。スナップショットは常に、正常に取得された最新のスナップショットに基づいて作成されます。

スナップショットを作成する方法

スナップショットの削除

Compute Engine は増分スナップショットを使用しているので、各スナップショットには前回のスナップショットより後に変更されたデータのみが含まれます。変更されていないデータについては、スナップショットは以前のスナップショットのデータを参照します。永続ディスクのスナップショットのストレージ コストは、スナップショットの合計サイズに対してのみ請求されます。

スナップショットを削除すると、Compute Engine は直ちにシステム内でスナップショットを DELETED とマークします。依存スナップショットを持たないスナップショットは、無条件に削除されます。一方、依存スナップショットがあるスナップショットは、次のように処理されます。

  1. 他のスナップショットの復元に必要なすべてのデータが、次のスナップショットに移動され、移動先のスナップショットのサイズが増えます。
  2. 他のスナップショットの復元に必要ないデータはすべて削除されます。これにより、すべてのスナップショットの合計サイズは減ります。
  3. 次のスナップショットは、削除としてマークされたスナップショットを参照しなくなり、それより前のスナップショットを参照します。

後のスナップショットで前のスナップショットに保存されていた情報が必要になることがあるため、スナップショットを削除してもスナップショット上のすべてのデータが削除されるとは限らないことに注意してください。スナップショットからデータを完全に削除するには、すべてのスナップショットを削除する必要があります。

ディスクにスナップショット スケジュールが設定されている場合は、スケジュールを削除する前に、ディスクからスナップショット スケジュールを削除する必要があります。ディスクからスナップショット スケジュールを削除すると、それ以上スナップショット アクティビティが発生しなくなります。ディスクに関連付けられているスケジュールを削除することはできません。スナップショットはいつでも手動で削除できます。

次の図は、このプロセスを示しています。

スナップショットを削除するプロセス。

スナップショットのサイズと削除されたブロック

スナップショットは、書き込みが行われて破棄されていないディスク部分をキャプチャします。ディスクのファイル システム構成によっては、削除されたファイルが破棄されない場合があります。この場合は、スナップショットのサイズがファイル システムによって報告されたディスクの使用済み容量よりも大きい場合があります。これを回避するには、discard オプションを有効にするか、ディスクで fstrim を実行することをおすすめします。

スナップショット チェーン

gcloud CLI または Compute Engine API を使用して、スナップショットの chainName を指定することで、スナップショット チェーンごとにスナップショットを作成できます。チェーン名を使用して永続ディスクのスナップショットを複数作成する場合、各スナップショットは、そのチェーン名で最後に正常に作成されたスナップショットからの増分で作成されます。この機能はベータ版です。このフィールドは、チャージバック トラッキングなど、別のスナップショット チェーンを作成する必要がある高度なサービスのオーナーのみが使用してください。

アーカイブ スナップショット

スナップショットを作成するときに、標準スナップショットまたはアーカイブ スナップショットを作成できます。アーカイブ スナップショットには、増分チェーン、圧縮、暗号化などの標準スナップショットと同じ利点があります。ただし、アーカイブ スナップショットは低コストで、コンプライアンス、監査、長期的なコールド ストレージに関連するユースケースに適しています。スナップショットの保持期間が数か月または数年であり、スナップショットへのアクセスはほとんど必要ない場合は、標準スナップショットではなくアーカイブ スナップショットを使用することを検討してください。各スナップショット タイプは異なる増分スナップショット チェーンに保存され、アーカイブ スナップショットは Google Cloud コンソールに個別にリスト表示されます。

スナップショットのストレージのロケーション

スナップショットを作成するときに、ストレージのロケーションを指定できます。スナップショットのロケーションは、可用性に影響するとともに、スナップショットの作成または新しいディスクへの復元の際にネットワーク コストを発生させる要因となる可能性があります。

スナップショットは、1 つの Cloud Storage マルチリージョン ロケーションasia など)、または 1 つの Cloud Storage リージョン ロケーションasia-south1 など)のいずれかに保存できます。

マルチリージョンのストレージ ロケーションにより、可用性と復元力が最も高くなります。リージョンのストレージ ロケーションを使用すると、単一のリージョンが指定されるため、データの物理的な位置をより細かく制御できます。

スナップショットのストレージの場所に関係なく、スナップショットを使用すると任意のリージョンとゾーンに新しいディスクを作成できます。

リソース ロケーションの制約を含む組織のポリシーがある場合、指定するスナップショット ストレージの場所は、制約で定義された一連のロケーション内に置かれる必要があります。詳細については、Compute Engine リソースのロケーションをご覧ください。

スナップショットのストレージ ロケーションを指定しない場合、Google Cloud はデフォルトのロケーションを使用します。この場合、ソースディスクのリージョンに最も近い Cloud Storage マルチリージョン ロケーションにスナップショットを保存します。リージョンのストレージを選択する必要がある場合、または別のマルチリージョン ロケーションを指定する必要がある場合は、カスタム ロケーションにスナップショットを保存してください。

デフォルトのロケーション

ストレージ ロケーションを指定しない場合、スナップショットは永続ディスクのロケーションから地理的に最も近いマルチリージョンに保存されます。

たとえば、永続ディスクが us-central1 に保存されている場合、スナップショットは us マルチリージョンにデフォルトで保存されます。

ただし、australia-southeast1 のようなデフォルトのロケーションはマルチリージョンのいずれにも該当しません。最も近いマルチリージョンは asia です。スナップショットの作成と復元にはネットワーク コストが発生します。

デフォルトのロケーションをスナップショットの保存先とする例としては、次のような場合があります。

  • デフォルトのマルチリージョン ロケーションが、企業または政府のデータ配置ポリシーを満たしている。
  • 永続ディスクが、デフォルトのマルチリージョン ロケーションに含まれるリージョン ロケーションに保存されている。たとえば、永続ディスクが us-central1 リージョンにあるとすると、デフォルトのマルチリージョンは us になります。この場合、スナップショットの可用性の高さを、スナップショットの復元のパフォーマンス低下のリスクよりも優先します。
  • スナップショットがデフォルトのロケーション以外にあるディスクに高い頻度で復元されることを想定していない。

カスタム ロケーション

スナップショットをリージョン ロケーションに保存する場合、あるいは異なるマルチリージョン ロケーションを指定する必要がある場合は、カスタム ロケーションを選択します。

スナップショットの保存先としてカスタム ロケーションを選択する場合の例をいくつか示します。

  • カスタムのマルチリージョン ロケーションが、企業または政府のデータ配置ポリシーを満たしている。
  • アプリは、Cloud Storage マルチリージョンのいずれにも含まれていないリージョンにデプロイされます。スナップショット可用性よりもスナップショット復元のパフォーマンスが優先されます。
  • デフォルトのスナップショットのロケーション外にあるディスクから、スナップショットを何度も復元する。

企業または政府のデータ配置ポリシーに準拠する必要がある場合は、そのポリシーに準拠している最も近いリージョン ロケーションにスナップショットを保存してください。

アプリケーションがマルチリージョン内にデプロイされておらず、スナップショットの可用性よりもネットワーク コストを優先する場合は、ソースディスクがあるリージョンにスナップショットを保存します。ソースディスクがあるリージョンにスナップショットを保存すると、そのソースディスクからのスナップショットの復元と作成にかかるネットワークコストが最小限に抑えられます。

ただし、マルチリージョンのストレージ ロケーションとは異なり、リージョンのストレージ ロケーションでは、複数のデータセンターにまたがってデータが重複して保存されないため、大規模な障害が発生した場合はデータにアクセスできない可能性があります。データの可用性を確保するために、別のロケーションに同じスナップショットを重複して保存しておくことも考えられます。

ネットワーク コスト

ディスクがマルチリージョンのメンバー リージョンにある場合、すべてのマルチリージョン スナップショットの作成または復元にはネットワーク料金が発生します。マルチリージョン スナップショット(追加のレプリケーションと耐障害性)が不要な場合は、スナップショットの作成時に 1 つのリージョン ロケーションを指定して、リージョン スナップショットを使用することをおすすめします。

ネットワーク コストを最小限にするうえで、スナップショットの保存場所は重要な要素になります。スナップショットをソースディスクと同じリージョンに保存した場合、同じリージョンからスナップショットにアクセスする際にはネットワークの使用料金はかかりません。別のリージョンからスナップショットにアクセスすると、ネットワークの使用料金が発生します。ネットワーク コストは、スナップショットがソースディスクと異なるリージョンで作成された場合や、スナップショットがスナップショットとは異なるリージョンのディスクに復元された場合に発生します。

リージョン間でアクセスすると、ネットワークの使用料金が発生します。たとえば、ソースディスクが asia-east1 にあり、スナップショットを asia-east2 に保存すると、スナップショットに使用するときにリージョンをまたいでアクセスすることになるため、ネットワーク コストが発生します。

australia-southeast1southamerica-east1 の 2 つのリージョンの場合、デフォルトでは、マルチリージョンの保存場所にスナップショットが保存されます。スナップショットを作成するときにデフォルト値を変更しない限り、ネットワーク コストが発生します。

  • ソースディスクが australia-southeast1 にある場合、デフォルトのスナップショットの保存場所は asia マルチリージョンになります。コストを抑えるには、デフォルトの保存場所を変更し、スナップショットを australia-southeast1 リージョンに保存します。
  • ソースディスクが southamerica-east1 にある場合、デフォルトのスナップショットの保存場所は us マルチリージョンになります。コストを抑えるには、デフォルトの保存場所を変更し、スナップショットを southamerica-east1 リージョンに保存します。

スナップショットのストレージ ロケーションに含まれていないリージョンに置かれたディスクにスナップショットを復元すると、ネットワーク コストが発生します。たとえば、australia-southeast1 で新しいリージョン永続ディスクをマルチリージョン ロケーションの asia に保存されたスナップショットから作成する場合、ネットワーク コストが発生します。

次のステップ