スナップショット設定を使用してデフォルトのストレージ ロケーションを設定する


スナップショットを作成する際、Google Cloud では明示的に異なる値を指定しない限り、構成オプションに事前定義されたデフォルト値が使用されます。スナップショット設定は、Google Cloud がスナップショットを保存するデフォルト ロケーションをカスタマイズを可能にする、プロジェクト レベルの一元化された構成パラメータです。スナップショット設定を使用して独自のカスタム デフォルト値を定義すると、各スナップショットの作成時に手動でロケーションを指定する必要がなくなります。

このドキュメントでは、スナップショット設定と、その設定を使用してプロジェクトのスナップショット用のデフォルト ストレージ ロケーションをカスタマイズする方法について説明します。

準備

  • まだ設定していない場合は、認証を設定します。認証とは、Google Cloud サービスと API にアクセスするために ID を確認するプロセスです。ローカル開発環境からコードまたはサンプルを実行するには、次のように Compute Engine に対する認証を行います。

    このページのサンプルをどのように使うかに応じて、タブを選択してください。

    gcloud

    1. Install the Google Cloud CLI, then initialize it by running the following command:

      gcloud init
    2. デフォルトのリージョンとゾーンを設定します

    REST

    このページの REST API サンプルをローカル開発環境で使用するには、gcloud CLI に指定した認証情報を使用します。

      Install the Google Cloud CLI, then initialize it by running the following command:

      gcloud init

制限事項

  • スナップショット設定を表示および更新するには、gcloud CLI または REST を使用する必要があります。
  • 即時スナップショットのデフォルトのストレージ ロケーションはカスタマイズできません。これは、標準スナップショットとアーカイブ スナップショットに対してのみ可能です。
  • プロジェクトのスナップショット設定でロケーション ポリシーを変更すると、変更後に作成されたスナップショットにのみ影響します。プロジェクトのスナップショット設定を更新しても、既存のスナップショットのロケーションは変更されません。
  • スナップショットの作成時に手動でロケーションを指定すると、Google Cloud はスナップショット設定をオーバーライドし、新しく指定したロケーションにスナップショットを作成します。ただし、スナップショット設定のストレージ ロケーション ポリシーは変わりません。

スナップショット設定の仕組み

プロジェクトのスナップショット設定のストレージ ロケーション ポリシーは、そのプロジェクトのスナップショットを Google Cloud が自動保存するロケーションを定義します。Google Cloud は、スナップショット設定を更新して新しいデフォルトを構成するまで、このストレージ ロケーション ポリシーの事前定義された値を維持します。スナップショット設定を更新して新しいデフォルトのストレージ ロケーションを設定すると、Google Cloud はこのロケーションを使用してプロジェクト内に作成されたすべての新しいスナップショットを保存します。

スナップショット設定を更新することで、ストレージ ロケーション ポリシーを回数制限なく変更できます。一方で、プロジェクトのスナップショット設定を変更すると、変更後に作成されたスナップショットのロケーションにのみ影響します。プロジェクトのスナップショット設定を更新しても、既存のスナップショットのロケーションは変更されません。

Google Cloud がスナップショット設定で定義されたストレージ ロケーションを使用するようにするには、スナップショットの作成時に手動でロケーションを指定しないでください。スナップショットの作成時に手動でロケーションを指定すると、Google Cloud はスナップショット設定をオーバーライドし、新しく指定したロケーションにスナップショットを作成します。ただし、スナップショット設定のストレージ ロケーション ポリシーは変わりません。

スナップショット設定を使用して、標準スナップショットとアーカイブ スナップショットのデフォルトのストレージ ロケーションをカスタマイズできます。即時スナップショットのデフォルトのストレージ ロケーションはカスタマイズできません。

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

プロジェクトのスナップショット設定を構成して新しいデフォルトのストレージ ロケーションを指定するときは、特定のリージョンを選択するか、ディスクベースのロケーション設定を使用します。より具体的には、ストレージ ロケーション ポリシーに対して次のいずれかのロケーション オプションを選択できます。

  • ソースディスクに最も近いマルチリージョン
  • ソースディスクと同じローカル リージョン
  • 選択した特定のリージョン

Google Cloud の事前定義されたストレージ ロケーション ポリシー

スナップショット設定を最初に更新するまで、Google Cloud はストレージ ロケーション ポリシーに対して事前定義された値を保持します。この事前定義ポリシーにより、プロジェクトのスナップショット設定を更新して独自のデフォルトのストレージ ロケーションを構成するまで、スナップショットのデフォルトのストレージ ロケーションが指定されます。事前定義されたストレージ ロケーション ポリシーは、ソースディスクのロケーションに地理的に最も近いマルチリージョンに設定されます。

  • ソースディスクがマルチリージョンの一部であるロケーションにある場合、スナップショットの設定のストレージ ロケーション ポリシーがそのマルチリージョンに設定されます。たとえば、ディスクが us-central1 のようなロケーションにある場合、デフォルトのストレージ ロケーションはマルチリージョンの us です。
  • マルチリージョン外のロケーションの場合、デフォルトのストレージ ロケーションは、そのリージョン外の地理的に最も近いマルチリージョンになります。australia-southeast1 のようなロケーションの場合、デフォルトのロケーションは asia マルチリージョンになります。

料金への影響

プロジェクトのスナップショット設定の使用に追加料金は必要ありません。ただし、スナップショット設定を使用して指定したロケーションの値は、他のオペレーションに影響するため、運用コストに影響を与える可能性があります。

スナップショット設定を使用してプロジェクトのデフォルトのストレージ ロケーションを設定する

REST と gcloud CLI を使用して、プロジェクトのスナップショット設定を更新し、新しいデフォルトのストレージ ロケーションを設定できます。

スナップショット設定にストレージ ロケーション ポリシーを設定しない場合、スナップショットは Google Cloud の事前定義されたストレージ ロケーション ポリシーを使用して作成されます。

gcloud

プロジェクトのスナップショット設定の追加、または既存のスナップショット設定の更新には、gcloud compute snapshot-settings update コマンドを使用します。

  gcloud compute snapshot-settings update \
      --project=PROJECT_ID \
      --storage-location-policy=STORAGE_LOCATION \
      --storage-location-names=REGION_NAME

次のように置き換えます。

  • PROJECT_ID: プロジェクトの ID。
  • STORAGE_LOCATION: プロジェクトのスナップショットのストレージ ロケーション ポリシー。値は次のいずれかになります。

    • nearest-multi-region: ディスクのロケーションに最も近い Cloud Storage マルチリージョンとしてロケーション ポリシーを指定します。
    • local-region: ディスクが配置されているのと同じ Cloud Storage リージョンとしてロケーション ポリシーを指定します。
    • specific-locations: 任意のカスタム Cloud Storage リージョンのロケーションとしてロケーション ポリシーを指定します。このオプションを指定する場合は、--storage-location-names フラグを使用して、目的のロケーションも指定する必要があります。
  • REGION_NAME: 省略可。--storage-location-policy フラグに specific-locations の値を指定する場合は、Cloud Storage リージョンを指定する必要があります。指定できるリージョンは 1 つのみで、Cloud Storage マルチリージョンは指定できません。この値には、ストレージ ロケーション ポリシーとして指定するリージョンの名前を設定します。

スナップショット設定を使用してストレージ ロケーション ポリシーを設定する例

us-central1 リージョンにあるプロジェクトの例 my-project について考えてみましょう。

  • プロジェクトのスナップショット設定のストレージ ロケーション ポリシーを、ディスクに最も近い Cloud Storage マルチリージョンとして構成するには、次のコマンドを実行します。
  gcloud compute snapshot-settings update \
      --project=my-project \
      --storage-location-policy=nearest-multi-region
  • プロジェクトのスナップショット設定のストレージ ロケーション ポリシーを、ディスクと同じ Cloud Storage リージョンとして構成するには、次のコマンドを実行します。
  gcloud compute snapshot-settings update \
      --project=my-project \
      --storage-location-policy=local-region
  • 特定のロケーション(us-central1 など)を選択してプロジェクトのスナップショット設定のストレージ ロケーション ポリシーとして構成するには、--storage-location-names フラグを使用して次のコマンドを実行します。
  gcloud compute snapshot-settings update \
      --project=my-project \
      --storage-location-policy=specific-locations \
      --storage-location-names=us-central1

REST

プロジェクトのスナップショット設定の追加、または既存のスナップショット設定の更新には、snapshotSettings.update メソッドPATCH リクエストを行います。

  PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/snapshotSettings

  {
    "storageLocation": {
      "policy": "STORAGE_LOCATION",
      "locations": {
            "REGION_NAME": { "name": "REGION_NAME" }
      }
    }
  }

次のように置き換えます。

  • PROJECT_ID: プロジェクトの ID。
  • STORAGE_LOCATION: プロジェクトのスナップショットのストレージ ロケーション ポリシー。値は次のいずれかになります。

    • NEAREST_MULTI_REGION: ディスクのロケーションに最も近い Cloud Storage マルチリージョンとしてロケーション ポリシーを指定します。
    • LOCAL_REGION: ディスクが配置されているのと同じ Cloud Storage リージョンとしてロケーション ポリシーを指定します。
    • SPECIFIC_LOCATIONS: 任意のカスタム Cloud Storage リージョンのロケーションとしてロケーション ポリシーを指定します。このオプションを指定する場合は、リクエストの locations パラメータを使用して、目的のロケーションも指定する必要があります。
  • REGION_NAME: 省略可。policy パラメータに SPECIFIC_LOCATIONS の値を指定する場合は、Cloud Storage リージョンを指定する必要があります。指定できるリージョンは 1 つのみで、Cloud Storage マルチリージョンは指定できません。この値には、ストレージ ロケーション ポリシーとして指定するリージョンの名前を設定します。

スナップショット設定を使用してストレージ ロケーション ポリシーを設定する例

us-central1 リージョンにあるプロジェクトの例 my-project について考えてみましょう。

  • プロジェクトのスナップショット設定のストレージ ロケーション ポリシーを、ディスクに最も近い Cloud Storage マルチリージョンとして構成するには、次の PATCH リクエストを行います。
    PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/snapshotSettings

    {
      "storageLocation": {
        "policy": "NEAREST_MULTI_REGION"
      }
    }
  • プロジェクトのスナップショット設定のストレージ ロケーション ポリシーを、ディスクと同じ Cloud Storage リージョンとして構成するには、次の PATCH リクエストを行います。
    PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/snapshotSettings

    {
      "storageLocation": {
        "policy": "LOCAL_REGION"
      }
    }
  • プロジェクトのスナップショット設定のストレージ ロケーション ポリシーとして特定のロケーション(us-central1 など)を構成するには、次の PATCH リクエストを行います。
    PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/snapshotSettings

    {
      "storageLocation": {
        "policy": "SPECIFIC_LOCATIONS",
        "locations": {
          "us-central1": { "name": "us-central1"}
        }
      }
    }

プロジェクトのスナップショット設定で定義されたデフォルトのストレージ ロケーションを表示する

Compute Engine API と gcloud CLI を使用して、プロジェクトのスナップショット設定を表示できます。

gcloud

プロジェクトのスナップショット設定を表示するには、gcloud compute snapshot-settings describe コマンドを使用します。

  gcloud compute snapshot-settings describe \
      --project=PROJECT_ID

PROJECT_ID は、プロジェクトの ID に置き換えます。

REST

プロジェクトのスナップショット設定を表示するには、snapshotSettings.get メソッドGET リクエストを行います。

  GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/snapshotSettings

PROJECT_ID は、プロジェクトの ID に置き換えます。

次のステップ