このページでは、Fail Compute 障害タイプのテスト中に発生する事象と、障害挿入テストでテストを停止できない場合の対策について説明します。
Fail Compute フォルトの仕組み
Fail Compute 障害は、リソースタグを使用して VM をマークし、それらのタグをターゲットとするルールを含むファイアウォール ポリシーを使用して、すべての上り(内向き)トラフィックと下り(外向き)トラフィックをブロックします。この設定により、ターゲット リソースが停止しているように見えますが、リソースは損傷することなく、迅速に復元できます。
この障害のターゲットは次のいずれかになります。
- 仮想マシン インスタンス
- 指定されたリソースタグに基づく VM
- 指定されたゾーンまたはリージョンのマネージド インスタンス グループ(MIG)内の VM
- ゾーン内の非 MIG VM とゾーン MIG 内の VM。
- リージョン内の非 MIG とすべての MIG 内の VM。
テストの実行中に発生する処理
テストが状態を遷移するにつれて、関連するリソースは次のように変化します。
リソース |
|
|
|
VM |
なし |
リソースタグをバインドする |
リソースタグのバインドを解除する |
MIG / RMIG |
なし |
自動修復と自動スケーリングをオフにする(有効になっている場合) |
自動修復と自動スケーリングの設定を復元する |
タグ |
テスト用に一意の TagValue リソースを作成する |
なし |
Delete TagValue |
ファイアウォール ポリシー |
SYSTEM レベルの FirewallPolicy リソースを作成する |
DENY ルールを入力し、ポリシーを関連する VPC にバインドする |
VPC からバインドを解除して FirewallPolicy を削除する |
緊急時の手動復旧
障害注入テストで実験を自動的に停止できないバックエンドの壊滅的な障害が発生した場合は、影響を受ける VM にバインドされているリソースタグを手動で削除することで、VM リソースへの接続を手動で復元できます。これらのタグをターゲットとするシステム ファイアウォール ポリシーは適用されなくなり、VM は分離障害から効果的に切り離されます。
必要な権限
次の IAM 権限が必要です。
- VM インスタンスを表示するために必要:
compute.instances.getcompute.instances.list
- タグ バインディングの表示と削除に必要です。
resourcemanager.tagValueBindings.listresourcemanager.tagValueBindings.delete
Google Cloud コンソール UI を使用した手動復元
Google Cloud コンソールを使用して復元を行うには:
- Google Cloud コンソールの [VM インスタンス] ページに移動します。
- 分離障害の影響を受ける特定の VM インスタンスを選択します。
- インスタンスの詳細ページで、[タグ] を管理するセクションに移動します。
- Fault Injection Testing Fail Compute 障害に関連付けられている試験固有のタグ バインディングを特定します。
- VM からタグ バインディングを削除します。
タグが削除されると、関連付けられたファイアウォール ポリシーは VM をターゲットにしなくなり、接続が復元されます。
gcloud CLI を使用した手動復元
Google Cloud CLI を使用して、VM からテストタグ バインディングを手動で削除できます。次のコマンドで、TAG_VALUE_NAME,
PROJECT_NUMBER, ZONE と VM_NAME を環境の特定の値に置き換えます。
まず、VM の現在のタグ バインディングを一覧表示して、テスト固有のタグ値名を取得します。
gcloud resource-manager tag bindings list --resource=//compute.googleapis.com/projects/PROJECT_NUMBER/zones/ZONE/instances/VM_NAME
前のコマンドの出力を使用して、削除手順に必要な TAG_VALUE_NAME を特定します。
gcloud resource-manager tag bindings delete --tag-value=TAG_VALUE_NAME --resource=//compute.googleapis.com/projects/PROJECT_NUMBER/zones/ZONE/instances/VM_NAME
タグが削除されると、関連付けられたファイアウォール ポリシーは VM をターゲットにしなくなり、接続が復元されます。