リージョン マネージド インスタンス グループ(MIG)が十分にオーバープロビジョニングされており、ゾーンがサービス停止した場合でも継続できることをテストするには、次のサンプルを使用して、ゾーンの障害をシミュレートします。
始める前に
- このガイドのコマンドラインの例を使用する場合は、Google Cloud CLI をインストールします。
-
まだ設定していない場合は、認証を設定します。認証とは、Google Cloud サービスと API にアクセスするために ID を確認するプロセスです。ローカル開発環境からコードまたはサンプルを実行するには、次のように Compute Engine に対する認証を行います。
このページのサンプルをどのように使うかに応じて、タブを選択してください。
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
-
スクリプトを使用してゾーンの停止をシミュレートする
このスクリプトはデフォルトのシナリオとして、Apache を停止して開始します。使用しているアプリケーションに適さない場合は、Apache を停止および開始するコマンドを、該当する障害と復元のシナリオに置き換えます。
このスクリプトをグループ内のすべての VM にデプロイし、継続的に実行します。それには、スクリプトをインスタンス テンプレートに追加するか、カスタム イメージにスクリプトを組み込んで、そのイメージをインスタンス テンプレートで使用します。
2 つのプロジェクトのメタデータ項目を設定して、ゾーンの障害をシミュレーションします。
failed_zone
: 停止した場合をシミュレーションするゾーンを設定します(障害が発生するゾーンを 1 つに限定します)。failed_instance_names
: オフラインにする VM を名前で選択します(これにより、この文字列を含む VM 名のみに障害が限定されます)。
このメタデータを設定するには、gcloud CLI を使用します。たとえば、次のコマンドではゾーンの停止を
europe-west1-b
ゾーンに設定し、base-instance-name
で始まる名前の VM にゾーン停止状態を適用します。gcloud compute project-info add-metadata --metadata failed_zone='europe-west1-b',failed_instance_names='base-instance-name-'
停止状態をシミュレーションしたら、メタデータキーを削除して障害から復元します。
gcloud compute project-info remove-metadata --keys failed_zone,failed_instance_names
このスクリプトを使用して実行できる障害の事例は次のとおりです。
- アプリケーションを完全に停止して、MIG がどのように対処するかを確認する。
- VM に対するロード バランシング ヘルスチェックの結果が「異常」になるようにする。
- VM との間で一部のトラフィックの流れが遮断されるように、iptables を変更する。
- VM をシャットダウンする。デフォルトでは直後にリージョン MIG によって VM が再作成されますが、新しく作成された VM も、メタデータ値が設定されている限り、スクリプトが実行されるとすぐにシャットダウンします。その結果、障害ループが発生します。
次のステップ
- 拡張性と復元性の高いウェブ アプリケーションを構築する方法を確認する。
- Google Cloud Platform での障害復旧について確認する。