このドキュメントでは、Compute Engine でイメージ ファミリーを使用する場合のベスト プラクティスについて説明します。
始める前に
-
まだ設定していない場合は、認証を設定します。認証とは、Google Cloud のサービスと API にアクセスするために ID を確認するプロセスです。ローカル開発環境からコードまたはサンプルを実行するには、次のいずれかのオプションを選択して Compute Engine に対する認証を行います。
Select the tab for how you plan to use the samples on this page:
gcloud
-
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
- Set a default region and zone.
IMAGE_FAMILY_NAME
: 検索するイメージ ファミリーの名前。イメージ ファミリー名の一覧については、オペレーティング システムの詳細をご覧ください。IMAGE_PROJECT
: イメージ プロジェクトの名前。イメージ プロジェクト名の一覧については、オペレーティング システムの詳細をご覧ください。IMAGE_PROJECT
: イメージ プロジェクトの名前。イメージ プロジェクト名の一覧については、オペレーティング システムの詳細をご覧ください。IMAGE_FAMILY_NAME
: 検索するイメージ ファミリーの名前。イメージ ファミリー名の一覧については、オペレーティング システムの詳細をご覧ください。IMAGE_FAMILY_NAME
: 検索するイメージ ファミリーの名前。イメージ ファミリー名の一覧については、オペレーティング システムの詳細をご覧ください。IMAGE_PROJECT
: イメージ プロジェクトの名前。イメージ プロジェクト名の一覧については、オペレーティング システムの詳細をご覧ください。ZONE
: クエリするゾーン。IMAGE_PROJECT
: イメージ プロジェクトの名前。イメージ プロジェクト名の一覧については、オペレーティング システムの詳細をご覧ください。ZONE
: クエリするゾーン。IMAGE_FAMILY_NAME
: 検索するイメージ ファミリーの名前。イメージ ファミリー名の一覧については、オペレーティング システムの詳細をご覧ください。- 本番環境とは別にテスト環境を設定します。
- テスト環境で次の手順を実施します。
- ソースイメージ ファミリーからカスタム イメージ ファミリーを作成します。
- カスタム イメージ ファミリー内の新しいイメージがワークロードに対して安定していることを確認します。
- 問題がなければ、このカスタム イメージ ファミリーを本番環境に移行します。
テスト プロジェクトで、ソースイメージ ファミリーからイメージを作成します。この新しいソースイメージ ファミリーには、テスト環境で参照する独自のカスタム イメージ ファミリーも必要です。カスタム イメージ ファミリーを指定してイメージを作成するには、次のコマンドを実行します。
gcloud compute images create test-image-name \ --source-image-project source-project \ --source-image-family source-image-family \ --project test-project \ --family test-image-family
以下を置き換えます。
test-image-name
: テストイメージの名前。source-project
: ソースイメージ ファミリーが属するプロジェクト。source-image-family
: ソースイメージ ファミリーの名前。test-project
: イメージ ファミリーを追加するテスト プロジェクトの名前。test-image-family
: テストイメージ ファミリーの名前。
カスタム イメージ ファミリー
test-image-family
を使用して、ワークロードをテストするための VM を作成します。VM を作成するには、次のコマンドを実行します。gcloud compute instances create test-instance-name \ --image-family your-test-image-family \ --project test-project
以下を置き換えます。
test-instance-name
: テスト インスタンスの名前。test-image-family
: テストイメージ ファミリーの名前。test-project
: テスト プロジェクトの名前。
このイメージがワークロードに対して安定していることを確認できたら、イメージを本番環境にコピーします。
gcloud compute images create prod-image-name \ --source-image-family test-image-family \ --source-image-project test-project \ --project prod-project \ --family prod-image-family
以下を置き換えます。
prod-image-name
: 本番環境イメージの名前。test-image-family
: テストイメージ ファミリーの名前。test-project
: テストイメージ ファミリーが属するプロジェクト。prod-project
: 本番環境に存在するプロジェクトの名前。prod-image-family
: 本番環境で使用するイメージ ファミリーの名前。
REST
このページの REST API サンプルをローカル開発環境で使用するには、gcloud CLI に指定した認証情報を使用します。
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
詳細については、Google Cloud 認証ドキュメントの REST を使用して認証するをご覧ください。
公開イメージ ファミリー
Compute Engine には、自動化システムが最新のイメージを参照できるようにするためのイメージ ファミリーが用意されています。管理者は、イメージのセットをイメージ ファミリーとしてグループ化できます。これにより、イメージのユーザーは、正確なイメージ名の代わりにイメージ ファミリー名を把握するだけで済みます。イメージ名は一意であることが必要なので、多くの場合、イメージビルド パイプラインは、アプリケーション名、日付、バージョンなどの情報がエンコードされたイメージ名(例:
my-application-v3-20210101
)を作成します。自動化ツールを使ってイメージ ファミリー名を参照できるため、イメージ名を定期的に更新する必要はありません。イメージ ファミリーを使用すると、常にファミリー内の最新のイメージ(my-application
など)にアクセスできます。公開イメージは、イメージ ファミリーに分類されています。公開イメージ ファミリーは、各ゾーンで使用可能な最新バージョンのイメージを常に参照します。新しいイメージがグローバルでリリースされると、イメージ ファミリーの最初の可用性はゾーンに依存します。これにより、Google イメージの更新中にワークフローのゾーンのフォールト トレラントが向上します。
イメージのロールアウト中、イメージ ファミリー内の最新バージョンのイメージは、ゾーンによって異なる場合があります。たとえば、
debian-cloud
プロジェクトのdebian-10
イメージ ファミリーは、常に最新の Debian 10 イメージを参照していますが、ゾーンus-central1-a
とsouthamerica-east1-b
の最新の Debian 10 イメージは異なる場合があります。Google Cloud CLI を使用してイメージ ファミリーから VM を作成すると、Compute Engine は VM のゾーンで使用可能な最新のイメージをリクエストに使用します。Google Cloud コンソールを使用して VM を作成すると、選択したゾーンで使用可能な公開イメージのみが表示されます。グローバルに使用可能な最新のイメージを使用して VM を作成する場合は、gcloud CLI の
instances create
コマンドを使用して--image-family-scope=global
を指定します。使用可能な最新の画像モードの表示
イメージ ファミリー内のグローバルに使用可能な最新のイメージを表示するか、特定のゾーンで利用可能な最新のイメージを表示できます。
グローバル
イメージ ファミリー内のグローバルに使用可能な最新のイメージを表示するには、次のいずれかの方法を使用します。
gcloud
gcloud compute images describe-from-family
コマンドを実行します。gcloud compute images describe-from-family IMAGE_FAMILY_NAME \ --project=IMAGE_PROJECT
以下を置き換えます。
REST
images.getFromFamily
メソッドにGET
リクエストを送信します。GET https://compute.googleapis.com/compute/v1/projects/IMAGE_PROJECT/global/images/family/IMAGE_FAMILY_NAME
以下を置き換えます。
各ゾーン
特定のゾーンのイメージ ファミリー内の使用可能な最新のイメージを表示するには、次のいずれかの方法を使用します。
gcloud
--zone
フラグを指定してgcloud compute images describe-from-family
コマンドを使用します。gcloud compute images describe-from-family IMAGE_FAMILY_NAME \ --project=IMAGE_PROJECT \ --zone=ZONE
次のように置き換えます。
REST
imageFamilyViews
メソッドにGET
リクエストを送信します。GET https://compute.googleapis.com/compute/v1/projects/IMAGE_PROJECT/zones/ZONE/imageFamilyViews/IMAGE_FAMILY_NAME
以下を置き換えます。
カスタム イメージ ファミリー
カスタム イメージのカスタム イメージ ファミリーを作成できます。イメージ ファミリーは、イメージ ファミリーの作成に使用した最新のイメージを参照します。イメージ ファミリーを以前のイメージ バージョンにロールバックするには、(以前のイメージが非推奨でなければ)そのファミリー内の最新のイメージを非推奨にします。詳細については、イメージ ファミリー内のイメージのバージョンを設定するをご覧ください。
イメージ ファミリーを指定してイメージを作成する場合、またはイメージ ファミリーが存在しないときにイメージ ファミリーを作成する場合は、イメージ作成ステップに
--family
フラグを追加する必要があります。gcloud compute images create my-application-v3-20210101 \ --source-disk my-application-disk-1 \ --source-disk-zone us-central1-f \ --family my-application
このコマンドを実行すると、イメージ
my-application
に基づくインスタンスを実行するすべての呼び出しは、新しく作成されたイメージmy-application-v3-20210101
を参照します。イメージ ファミリーの名前を選択する際は、命名規則を確認してください。
イメージ ファミリーの使用方法
イメージ ファミリーを使用すると最新のイメージを参照できますが、最新のイメージがアプリケーションと互換性を持たない場合があります。したがって、確認しないと本番環境で問題が発生する可能性があります。イメージ ファミリーのメリットを利用しつつリスクを軽減するには、イメージ ファミリーが参照する最新のイメージを本番環境で使用する前にテストすることをおすすめします。
検討に値するアプローチの概要を以下に示します。
具体的には、このプロセスの手順は次のようになります。
特に記載のない限り、このページのコンテンツはクリエイティブ・コモンズの表示 4.0 ライセンスにより使用許諾されます。コードサンプルは Apache 2.0 ライセンスにより使用許諾されます。詳しくは、Google Developers サイトのポリシーをご覧ください。Java は Oracle および関連会社の登録商標です。
最終更新日 2024-12-22 UTC。
-