ゾーン内のすべてのターゲットをシャットダウンするカオス実験を作成する
カオス実験で動的ターゲットを使用すると、実験の実行対象となるターゲットのセットを、実行中の条件評価に基づいて選択できます。 この記事では、仮想マシン スケール セットを動的ターゲットにして、可用性ゾーンに基づきインスタンスをシャットダウンする方法を説明します。 この実験は、障害発生時に備え、Azure Virtual Machine Scale Sets インスタンスを別のリージョンにフェールオーバーする動作のテストを実施するのに役立ちます。
動的ターゲットをサポートする任意の障害について、お客様が実験をセットアップして実行する際には、ここに示す手順をそのまま使用できます。 現在、動的ターゲット設定は、仮想マシン スケール セットのシャットダウンの場合についてのみサポートされています。
前提条件
- Azure サブスクリプション。 Azure サブスクリプションをお持ちでない場合は、開始する前に Azure 無料アカウントを作成してください。
- Azure Virtual Machine Scale Sets インスタンス。
仮想マシンで Chaos Studio を有効にする
Azure Chaos Studio では、リソースが Chaos Studio に追加されるまで、そのリソースに対して障害を挿入することはできません。 Chaos Studio にリソースを追加するには、リソースにターゲットと機能を作成します。
Virtual Machine Scale Sets のターゲットの種類は 1 つのみ (Microsoft-VirtualMachineScaleSet
)、機能も 1 つのみ (shutdown
) です。 その他のリソースには、ターゲットの種類が最大 2 つ含まれます。 ターゲットの種類の 1 つはサービスダイレクト障害用です。 もう 1 つのターゲットの種類はエージェントベース障害用です。 他のリソースには、場合によってその他多くの機能があります。
Azure Portalを開きます。
検索バーで「Chaos Studio」を検索します。
[ターゲット] を選択し、仮想マシン スケール セット リソースを見つけます。
仮想マシン スケール セット リソースを選択し、[ターゲットの有効化]>[サービスダイレクト ターゲットを有効にする] を順に選択します。
[確認と有効化]>[有効化] を選択します。
以上で、Chaos Studio に仮想マシン スケール セットが追加されました。
実験の作成
実験を作成するための準備ができました。 カオス実験の作成時には、ターゲット リソースに対して実行するアクションを定義します。 アクションは編成され、順番に実行されます。 カオス実験では、ブランチに対して並列に実行するアクションも定義できます。
Chaos Studio で、[実験]>[作成]>[新しい実験] に移動します。
リソースの名前付けのガイドラインに準拠した実験の名前を追加します。 [Next: Experiment designer] (次へ: 実験デザイナー >) を選択します。
ステップ 1 とブランチ 1 で、[アクションの追加]>[障害の追加] を選択します。
VMSS シャットダウン (バージョン 2.0) 障害を選択します。 希望する期間の長さと、シャットダウンを突然発生させるかどうかを選択します。 [Next: Target resources] (次へ: ターゲット リソース >) を選択します。
実験で使用する仮想マシン スケール セット リソースを選択します。 [次へ: スコープ] を選択します。
[ゾーン] ドロップダウン リストで、Virtual Machine Scale Sets インスタンス内の仮想マシン (VM) のシャットダウンを行わせるゾーンを選択します。 [追加] を選択します。
[確認と作成]>[作成] を選択して、実験を保存します。
実験に仮想マシンへのアクセス許可を付与する
カオス実験を作成すると、ターゲット リソースに対して障害を実行するシステム割り当てマネージド ID が Chaos Studio によって作成されます。 実験を正常に実行するには、この ID にターゲット リソースへの適切なアクセス許可を付与する必要があります。 これらの手順を任意のリソースとターゲットの種類に対して使用するには、手順 3 でロールの割り当てを変更し、そのリソースとターゲットの種類に適したロールに一致するようにします。
仮想マシン スケール セット リソースに移動し、[アクセス制御 (IAM)]>[ロール割り当ての追加] を選択します。
[ロール] タブで、[仮想マシン共同作成者] を選択し、[次へ] を選択します。
[メンバーの選択] を選び、実験名を検索します。 実験を選択し、[選択] を選択します。 同じテナント内に同じ名前の実験が複数ある場合は、実験名が切り詰められ、ランダムな文字列が追加されます。
[確認と割り当て]>[確認と割り当て] を選択します。
実験を実行する
実験の実行準備が整いました。
Chaos Studio で、[実験] ビューに移動し、実験を選択して、[実験の開始] を選択します。
[OK] を選択して、実験の開始を確定します。
[状態] が [実行中] に変わったら、[履歴] で、最新の実行の [詳細] を選択し、実行中の実験の詳細を確認します。 エラーが発生した場合は、[詳細] で内容を確認できます。 失敗したアクションを選択し、[失敗したターゲット] を展開表示します。
効果を確かめるには、Azure Monitor などのツールや、ポータルの [Virtual Machine Scale Sets] セクションを使用して、仮想マシン スケール セットのターゲットがシャットダウンされたかどうかをチェックします。 シャットダウンされている場合は、その仮想マシン スケール セットで実行されているサービスが期待どおり動作中になっていることを確認します。
この例では、カオス実験によって、期待どおりにゾーン 1 のインスタンスがシャットダウンされました。
次のステップ
ヒント
仮想マシン スケール セットで自動スケール ポリシーを使用している場合は、この実験によって既存の仮想マシンがシャットダウンされた後、ポリシーによって新しい仮想マシンがプロビジョニングされます。 このアクションを回避するには、実験に並列ブランチを 1 つ追加し、そこに、仮想マシン スケール セットの microsoft.insights/autoscaleSettings
リソースに対する自動スケールの無効化障害を含めます。 autoscaleSettings
リソースをターゲットとして追加し、ロールを割り当てることを忘れないでください。
以上で、動的ターゲットを使用した仮想マシン スケール セット シャットダウン実験の実行が済み、以下の内容に進む準備ができました。