Azure Chaos Studio プレビューとは

Azure Chaos Studio は、Azure アプリケーションに障害を挿入することで回復性を向上させる管理サービスです。 アプリケーションに対して、制御されたフォールト挿入実験を実行すると (カオス エンジニアリングとして知られるプラクティス)、リージョンの停止や VM で高 CPU 使用率を引き起こすアプリケーション障害といった実際のインシデントに対する回復性を測定して理解し、向上させることができます。

Chaos Studio を使用する必要がある理由

Azure でホストされる新しいアプリケーションを開発する場合、既存のアプリケーションを Azure に移行する場合、または Azure で既に実行されているアプリケーションを運用する場合は、アプリケーションの回復性を検証して向上させることが重要です。 回復性は、中断を処理して復旧するためのシステムの機能です。 アプリケーションの可用性が失われると、ユーザーに対してエラーや障害が発生し、その結果、ビジネスやミッションに悪影響が及ぶ可能性があります。

クラウドでアプリケーションを実行する場合、このような悪影響を回避するには、依存しているサービスが原因で発生する可能性がある中断、サービス自体の障害による中断、インシデント対応ツールとプロセスの中断に対して、アプリケーションが効果的に対応していることを検証する必要があります。 カオス実験では、クラウドでホストされているアプリケーションに障害に対する回復性があるかどうかをテストできます。

Chaos Studio を使用するタイミング

カオス エンジニアリングは、さまざまな回復性検証シナリオに使用できます。 これらのシナリオはサービス開発と運用のライフサイクル全体を対象としており、 "右シフト" (シナリオは、運用環境または実稼働前環境において最適に検証されます) または "左シフト" (シナリオは、開発環境または共有テスト環境で検証可能です) に分類できます。 通常、右シフトのシナリオは、実際の顧客トラフィックまたはシミュレートされた負荷で実行する必要があります。一方、左シフトのシナリオは、実際の顧客トラフィックなしで実行できます。 カオス エンジニアリングを適用できる一般的なシナリオを次に示します。

  • アプリケーションに影響を与えたインシデントを再現して、障害モードをさらに理解したり、インシデント後の修復項目によってインシデントが繰り返し発生するのを確実に回避する。
  • "ゲームの日" の実行 - 主要なユーザー イベントまたは季節に備えて、サービスの負荷、スケーリング、パフォーマンス、回復性を検証する。
  • 事業継続とディザスター リカバリー (BCDR) の訓練を実施して、アプリケーションが大きな障害の影響を受けた場合に、迅速に復旧し、重要なデータが保持されることを確認する。
  • 高可用性の訓練を実施して、リージョンの停止、ネットワーク構成エラー、高ストレス イベント、近隣ノイズの問題など、特定の障害に対するアプリケーションの回復性をテストする。
  • アプリケーション パフォーマンス ベンチマークを開発する。
  • 運用環境の容量ニーズを計画する。
  • ストレス テストまたはロード テストを実行する。
  • オンプレミスまたは他のクラウド環境から移行されたサービスが既知の障害に対する回復性を維持していることを確認する。
  • クラウドネイティブ アーキテクチャ上に構築されたサービスに対する信頼度を高める。
  • ライブ サイト ツール、監視データ、オンコールのプロセスなどが、予期しない条件下において期待通りに動作することを検証する。

これらのシナリオの多くでは、まずアドホック カオス実験を使用して回復性を構築し、次に CI/CD パイプラインのデプロイ ゲートとしてカオス実験を使用して、新しいデプロイが原因で回復性が後退しないことを継続的に検証します。

Chaos Studio の動作

Chaos Studio を使用すると、安全かつ制御された方法で Azure リソースでのフォールト挿入を調整できます。 Chaos Studio の中核となるのはカオス実験です。 カオス実験とは、実行する必要がある障害と、それらの障害を実行する必要があるリソースを示す Azure リソースです。 障害は、ニーズに応じて並列または順番に実行されるように整理できます。 Chaos Studio では、2 つの種類の障害がサポートされています。つまり、インストールやインストルメンテーションなしで Azure リソースに対して直接実行される "サービスダイレクト" 障害 (Azure Cache for Redis クラスターの再起動、AKS ポッドへのネットワーク待機時間の追加など) と、ゲスト内障害を実行するために仮想マシンまたは仮想マシン スケール セットで実行される "エージェントベース" の障害 (仮想メモリの負荷の適用、プロセスの中止など) です。 各障害には、中止するプロセスや生成するメモリ負荷の量など、制御できる特定のパラメーターがあります。

カオス実験を構築する場合は、順番に実行する 1 つ以上の "ステップ" を定義します。各ステップには、ステップ内で並列に実行される 1 つ以上の "分岐" を含め、各分岐には障害の挿入や一定期間の待機といった 1 つ以上の "アクション" を含めます。 最後に、各障害が実行されるリソース ( "ターゲット" ) をセレクターと呼ばれるグループに整理して、各アクションでリソースのグループを簡単に参照できるようにします。

Diagram showing the layout of a chaos experiment.

カオス実験は、サブスクリプションとリソース グループに含まれる Azure リソースです。 Azure portal または Chaos Studio REST API を使用して、実験の作成、更新、開始、キャンセル、状態の表示などを行うことができます。

次のステップ

以下のリンクを使用して、Chaos Studio で、アプリケーションの回復性を向上させるカオス実験の作成と実行を開始します。