Azure portal でエージェント ベースの障害を使用するカオス実験を作成する

カオス実験を使用して、制御された環境で障害を引き起こすことで、アプリケーションにこれらの障害に対する回復性があることを確認できます。 この記事では、カオス実験と Azure Chaos Studio を使用して、Linux 仮想マシン (VM) に高い割合の CPU 使用率イベントを発生させます。 この実験は、アプリケーションがリソース不足になることを防ぐのに役立ちます。

お客様がエージェント ベースの任意の障害の実験をセットアップして実行する際には、ここに示す手順をそのまま使用できます。 エージェント ベースの障害を使用するには、カオス エージェントのセットアップとインストールが必要です。 サービス直結の障害は、インストルメンテーションを必要とせずに、Azure リソースに直接影響を与えます。

前提条件

  • Azure サブスクリプション。 Azure アカウントをお持ちでない場合は、開始する前に 無料アカウント を作成してください。
  • バージョン互換性リストにあるオペレーティング システムを実行している Linux VM。 まだ仮想マシンを作成していない場合は、1 つ作成します
  • お使いの仮想マシンへの SSH 接続を可能にするネットワーク セットアップ。
  • ユーザー割り当てマネージド ID がターゲットの仮想マシンまたは仮想マシン スケール セットに割り当てられていること。 ユーザー割り当てマネージド ID がない場合は、1 つ作成できます。

仮想マシンで Chaos Studio を有効にする

Chaos Studio で仮想マシンに対して障害を挿入するには、その前に、対象となる仮想マシンを Chaos Studio に追加しておく必要があります。 Chaos Studio に仮想マシンを追加するには、そのリソースにターゲットと機能を作成します。 次に、カオス エージェントをインストールします。

仮想マシンには、ターゲットの種類が 2 つあります。 1 つのターゲットの種類は、サービスダイレクト障害 (エージェント不要) を有効にするものです。 もう 1 つのターゲットの種類は、エージェント ベースの障害 (エージェントのインストールが必要) を有効にするものです。 カオス エージェントは、仮想マシン拡張機能として仮想マシンにインストールされるアプリケーションです。 これを使用して、ゲスト オペレーティング システムに障害を挿入します。

カオス ターゲット、機能、エージェントを有効にする

重要

以降の手順を完了する前に、ユーザー割り当てマネージド ID を作成しておく必要があります。 次に、その ID をターゲット仮想マシンまたは仮想マシン スケール セットに割り当てます。

  1. Azure Portalを開きます。

  2. 検索バーで「Chaos Studio」を検索します。

  3. [ターゲット] を選択し、仮想マシンに移動します。

    [対象] ビューを示している Azure portal のスクリーンショット。

  4. 仮想マシンの横にあるチェックボックスをオンにし、[ターゲットの有効化] を選択します。 次に、ドロップダウン メニューから [エージェント ベースのターゲットを有効にする] を選択します。

    Azure portal でのターゲットの有効化を示すスクリーンショット。

  5. カオス エージェントの認証に使用するマネージド ID を選択し、必要に応じて Application Insights を有効にして、実験イベントとエージェント ログを表示します。

    マネージド ID の選択を示すスクリーンショット。

  6. [確認と有効化]>[有効化] を選択します。

    エージェントベースのターゲット有効化の確認を示すスクリーンショット。

  7. 数分後、選択したリソースが有効化されたことを示す通知が表示されます。 Azure portal によって、ユーザー割り当て ID が仮想マシンに追加されます。 エージェントのターゲットと機能が有効化され、カオス エージェントが仮想マシン拡張機能としてインストールされます。

    ターゲットが正常に有効化されたことを示す通知が表示されたスクリーンショット。

  8. 仮想マシン スケール セットを有効にする場合は、仮想マシン スケール セットのリソース ペインに移動し、インスタンスを最新のモデルにアップグレードします。 [インスタンス] を選択し、すべてのインスタンスを選択します。 使用しているモデルが最新でない場合は、[アップグレード] を選択します。

以上で、Chaos Studio に Linux 仮想マシンが追加されました。 [ターゲット] ビューでは、このリソースで有効になっている機能を管理することもできます。 リソースの横にある [アクションの管理] リンクを選択すると、そのリソースに対して有効になっている機能が表示されます。

実験の作成

実験を作成するための準備ができました。 カオス実験の作成時には、ターゲット リソースに対して実行するアクションを定義します。 アクションは編成され、順番に実行されます。 カオス実験では、ブランチに対して並列に実行するアクションも定義できます。

  1. Chaos Studio の [実験] タブを選択します。 このビューでは、ご自分のすべてのカオス実験を表示および管理できます。 [作成]>[新しい実験] を選択します。

    Azure portal の実験ビューを示すスクリーンショット。

  2. [サブスクリプション][リソース グループ] 、カオス実験をデプロイする [場所] の情報を入力します。 実験に名前を付けます。 [Next: Experiment designer] (次へ: 実験デザイナー >) を選択します。

    基本的な実験の詳細の追加を示すスクリーンショット。

  3. 現在表示されている画面は、Chaos Studio の実験デザイナーです。 実験に、ステップ、分岐、障害を追加して内容を構築できます。 ステップブランチにわかりやすい名前を付けます。 次に アクションの追加 > 障害の追加 を選択します。

    実験デザイナーを示すスクリーンショット。

  4. ドロップダウンリストから [CPU 負荷] を選択します。 [期間] に、負荷をかける期間の長さを分単位で入力します。 pressureLevel を、適用する CPU 使用率の負荷の % で入力します。 virtualMachineScaleSetInstances は空白のままにします。 [Next: Target resources] (次へ: ターゲット リソース >) を選択します。

    フォールトのプロパティを示すスクリーンショット。

  5. 仮想マシンを選択し、[次へ] を選択します。

    ターゲットの追加を示すスクリーンショット。

  6. 実験が正しく見えることを確認してください。 次に、[確認と作成]>[作成] の順に選択します。

    実験の確認と作成を示すスクリーンショット。

実験に仮想マシンへのアクセス許可を付与する

カオス実験を作成すると、ターゲット リソースに対して障害を実行するシステム割り当てマネージド ID が Chaos Studio によって作成されます。 実験を正常に実行するには、この ID にターゲット リソースへの適切なアクセス許可を付与する必要があります。

  1. VM に移動し、[アクセス制御 (IAM)] を選択します。

    仮想マシンの [概要] ページを示すスクリーンショット。

  2. [追加]>[ロール割り当ての追加] の順に選択します。

    アクセス制御の概要を示すスクリーンショット

  3. 閲覧者」を検索し、このロールを選択します。 [次へ] を選択します。

    仮想マシン共同作成者ロールの割り当てを示すスクリーンショット。

  4. [メンバーの選択] を選び、実験名を検索します。 ご自分の実験を選択し、[選択] を選びます。 同じテナント内に同じ名前の実験が複数ある場合は、実験名が切り詰められ、ランダムな文字列が追加されます。

    ロールへの実験の追加を示すスクリーンショット。

  5. [確認と割り当て]>[確認と割り当て] の順に選択します。

実験を実行する

実験の実行準備が整いました。 影響を確認するため、Azure Monitor メトリック グラフを別のブラウザー タブで開き、仮想マシンの CPU 負荷を表示しておくことをお勧めします。

  1. [実験] ビューで、使用する実験を選択します。 [開始]>[OK] を選択します。

    実験の開始を示すスクリーンショット。

  2. [状態][実行中] に変わったら、[履歴] で、最新の実行の [詳細] を選択し、実行中の実験の詳細を確認します。

次のステップ

以上でエージェント ベースの実験の実行が済みました。この後は、以下の内容に進むことができます。