このドキュメントでは、修復オペレーション中に VM を再作成するときに、最新のインスタンス テンプレートとインスタンスごとの構成を適用するように MIG を構成する方法について説明します。修復オペレーション中に使用可能な最新の構成を適用する方法は、修復時の更新とも呼ばれます。このドキュメントでは、MIG で修復時の更新が有効になっているかどうかを確認する方法と、有効になっている場合は修復時の更新を無効にする方法についても説明します。
デフォルトでは、修復中に MIG は VM の作成に最初に使用した同じインスタンス構成を使用して VM を再作成します。グループのインスタンス テンプレートまたはインスタンスごとの構成に対する更新が利用可能な場合は、修復中の VM にこれらの変更を適用するオプションがあります。
構成の更新をすべての VM または一連の VM に自動的に適用する場合(PROACTIVE
)、または特定のインスタンスを選択的に更新する場合(OPPORTUNISTIC
)、新しい構成を MIG 内の VM に適用するをご覧ください。
始める前に
-
まだ設定していない場合は、認証を設定します。認証とは、Google Cloud サービスと API にアクセスするために ID を確認するプロセスです。ローカル開発環境からコードまたはサンプルを実行するには、次のように Compute Engine に対する認証を行います。
このページのサンプルをどのように使うかに応じて、タブを選択してください。
コンソール
Google Cloud コンソールを使用して Google Cloud サービスと API にアクセスする場合、認証を設定する必要はありません。
gcloud
-
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
- デフォルトのリージョンとゾーンを設定します。
REST
このページの REST API サンプルをローカル開発環境で使用するには、gcloud CLI に指定した認証情報を使用します。
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
-
修復時の更新を構成する
修復時の更新を構成するには、Google Cloud コンソール、gcloud CLI、または REST を使用します。
コンソール
Google Cloud コンソールの [インスタンス グループ] ページに移動します。
修復時の更新を構成する MIG の名前をクリックします。
[編集] をクリックして、MIG を変更します。
[VM インスタンスのライフサイクル] セクションの [VM インスタンス修復中の更新] で [インスタンス構成を更新する] を選択します。
[保存] をクリックします。
gcloud
既存の MIG の場合は、update
コマンドを使用します。
gcloud compute instance-groups managed update MIG_NAME \ --force-update-on-repair
新しい MIG の場合は、create
コマンドを使用します。
gcloud compute instance-groups managed create MIG_NAME \ --template INSTANCE_TEMPLATE \ --size SIZE \ --force-update-on-repair
次のように置き換えます。
MIG_NAME
: インスタンス グループの名前。INSTANCE_TEMPLATE
: グループに使用するインスタンス テンプレートの名前。SIZE
: インスタンス グループのターゲット サイズ。
REST
既存のゾーン MIG の場合は instanceGroupManagers.patch
メソッドを使用し、既存のリージョン MIG の場合は regionInstanceGroupManagers.patch
メソッドを使用します。
既存のゾーン MIG で修復時の更新を構成するには、次の呼び出しを行います。
PATCH https://www.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers/MIG_NAME { "instanceLifecyclePolicy": { "forceUpdateOnRepair": YES } }
新しいゾーン MIG の場合は、instanceGroupManagers.insert
メソッドを使用し、新しいリージョン MIG の場合は regionInstanceGroupManagers.insert
メソッドを使用します。
ゾーン MIG の作成時に修復時の更新を構成するには、次の呼び出しを行います。
POST https://www.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers { "name": "MIG_NAME", "instanceTemplate": "INSTANCE_TEMPLATE", "targetSize": SIZE, "instanceLifecyclePolicy": { "forceUpdateOnRepair": YES } }
次のように置き換えます。
PROJECT_ID
: 実際のプロジェクト ID。ZONE
: MIG が配置されているゾーン。MIG_NAME
: インスタンス グループの名前。INSTANCE_TEMPLATE
: グループに使用するインスタンス テンプレートの名前。SIZE
: インスタンス グループのターゲット サイズ。
修復時の更新が有効かどうかを確認する
デフォルトでは、修復中に MIG が VM を更新しません。修復時の更新が MIG に対して有効になっているかどうかを確認するには、Google Cloud コンソール、gcloud CLI、または REST を使用して、修復時の更新の構成を表示します。
コンソール
Google Cloud コンソールの [インスタンス グループ] ページに移動します。
構成を確認する MIG の名前をクリックします。
[詳細] タブをクリックします。
[VM インスタンスのライフサイクル] セクションで、[VM インスタンス修復中の更新] で選択されているオプションをオンにします。[インスタンス構成を更新します] を選択した場合、修復時の更新が有効になります。
gcloud
次のように describe
コマンドを使用します。
gcloud compute instance-groups managed describe MIG_NAME \ --format="(instanceLifecyclePolicy)"
レスポンスの本文で、次のいずれかの値を持つ forceUpdateOnRepair
フィールドを確認します。
NO
: デフォルト。MIG は、修復中に VM を更新しません。YES
: MIG は修復中に VM を更新します。
出力例は次のとおりです。
instanceLifecyclePolicy: forceUpdateOnRepair: YES
REST
ゾーン MIG の場合は、instanceGroupManagers.get
メソッドを使用し、リージョン MIG の場合は regionInstanceGroupManagers.get
メソッドを使用します。
たとえば、ゾーン MIG で、次のコマンドを使用します。
GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers/MIG_NAME
レスポンスの本文で、次のいずれかの値を持つ instanceLifecyclePolicy.forceUpdateOnRepair
フィールドを確認します。
NO
: デフォルト。MIG は、修復中に VM を更新しません。YES
: MIG は修復中に VM を更新します。
レスポンスの例を次に示します。
{ ... "name": "example-mig", "targetSize": 12, ... "instanceLifecyclePolicy": { "forceUpdateOnRepair": "YES" }, ... }
次のように置き換えます。
PROJECT_ID
: 実際のプロジェクト ID。ZONE
: MIG が配置されているゾーン。MIG_NAME
: インスタンス グループの名前。
修復時の更新を無効にする
MIG が VM を修復するときに、元のインスタンス テンプレートまたは VM の作成に使用されたインスタンスごとの構成を MIG で使用する場合は、修復時の更新を無効にする必要があります。デフォルトでは、修復時の更新は MIG で無効になっています。
修復時の更新を無効にするには、Google Cloud コンソール、gcloud CLI、または REST を使用します。
コンソール
Google Cloud コンソールの [インスタンス グループ] ページに移動します。
修復時の更新を無効にする MIG の名前をクリックします。
[編集] をクリックして、MIG を変更します。
[VM インスタンスのライフサイクル] セクションの [VM インスタンス修復中の更新] で [インスタンス構成を維持します] を選択します。
[保存] をクリックします。
gcloud
update
コマンドを使用して、--no-force-update-on-repair
フラグを次のように設定します。
gcloud compute instance-groups managed update MIG_NAME \ --no-force-update-on-repair
REST
ゾーン MIG の場合は、instanceGroupManagers.patch
メソッドを使用し、リージョン MIG の場合は regionInstanceGroupManagers.patch
メソッドを使用します。
たとえば、ゾーン MIG の修復時の更新を無効にするには、次のコマンドを使用します。
PATCH https://www.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers/MIG_NAME { "instanceLifecyclePolicy": { "forceUpdateOnRepair": NO } }
次のように置き換えます。
PROJECT_ID
: 実際のプロジェクト ID。ZONE
: MIG が配置されているゾーン。MIG_NAME
: インスタンス グループの名前。
次のステップ
- アプリケーションのヘルスチェックと自動修復を設定する。
- MIG を対象としたアプリケーション ベースのヘルスチェックが構成済みである場合は、VM のヘルス状態の変化をモニタリングします。