BLOGAzureブログ

ITインフラの障害をシミュレートするAzure Chaos Studioとは (後編)

2022.06.17

クラウドサーバーご検討中の方必見 お役立ち資料一覧

皆さまこんにちは。SB C&Sの井上です。
前編の記事では、Azure上で簡単にChaos Engineeringを行うことのできるサービス、「Azure Chaos Studio」の概要をご紹介し、Chaos StudioのFault Injection実験を行うための検証環境を作成しました。

今回は実際にChaos Studioにリソースをオンボードし、カオス実験でリソースに障害を発生させる方法についてご紹介いたします。また、カオス実験とAzure Logic Appsを組み合わせて、障害発生を自動化する方法もご紹介します。

※Azure Chaos StudioはAzureリソースに対してVMシャットダウンなどの障害を発生させるため、障害対応の検証自体はサービスが停止しても問題のない検証環境での利用をお勧めいたします。検証環境の作成例は前編記事にてご紹介しています。

1.Azure Chaos Studio設定方法

Azure仮想マシンでChaos Studioを有効にしてFault Injection実験を行うには、以下手順で操作を行います。

  • Chaos Studioリソースプロバイダーを登録
  • 仮想マシンをChaos Studioにオンボード
  • カオス実験を作成
  • 仮想マシンにカオス実験のアクセス許可を付与

(1)Chaos Studioリソースプロバイダーを登録

サブスクリプションでChaos Studioリソースプロバイダーを登録します。

図1. リソースプロバイダー登録.png

図1. リソースプロバイダー登録

(2)仮想マシンをChaos Studioにオンボード

Azure PortalのChaos StudioページでFault Injection実験対象のリソースを選択して有効化します。有効化する際にサービス直接ターゲットかエージェントベースのターゲットを選択することができます。今回はインスタンス停止の障害を発生させるため、サービス直接ターゲットを選択します。(エージェントベースのターゲットでサポートされるのはVM, VMSSのみです。)

図2. 仮想マシンのオンボード.png

図2. 仮想マシンのオンボード

図3. オンボード確認.png

図3. オンボード確認

エージェントベースのターゲットでは、機能別に有効/無効を選択することができます。

図4. アクションの管理.png

図4. アクションの管理

(3)カオス実験を作成

カオス実験を作成し、発生させる障害を定義します。1つのカオス実験で複数の障害を連続で発生させたり、並列に発生させることもできます。今回はインスタンスを5分間停止する障害を定義したカオス実験を作成します。

図5. カオス実験の作成①.png

図5. カオス実験の作成①

図6. カオス実験の作成②.png

図6. カオス実験の作成②

実験デザイナータブで障害の種類や障害の継続時間、対象リソースなどを選択します。

図7. カオス実験の作成③.png

図7. カオス実験の作成③

図8. カオス実験の作成④.png

図8. カオス実験の作成④

複数の障害を1つのカオス実験で定義したい場合や、障害を連続で発生させたい場合は、ブランチとステップを追加して同様に障害の種類などを設定します。

図9. カオス実験の作成⑤.png

図9. カオス実験の作成⑤

内容を確認してカオス実験を作成します。

図10. カオス実験の作成⑥.png

図10. カオス実験の作成⑥

(4)仮想マシンにカオス実験のアクセス許可を付与

カオス実験が対象リソースに対してインスタンス停止などの操作をできるように、アクセス許可を付与します。今回はカオス実験に[仮想マシン共同作成者ロール]を付与します。

図11. アクセス許可を付与①.png

図11. アクセス許可を付与①

図12. アクセス許可を付与②.png

図12. アクセス許可を付与②

図13. アクセス許可を付与③.png

図13. アクセス許可を付与③

内容を確認してアクセス許可を付与します。

図14. アクセス許可を付与④.png

図14. アクセス許可を付与④

2.Fault Injection実験

Chaos Studioで設定したカオス実験を実行して、仮想マシンにインスタンス停止の障害を発生させます。今回はカオス実験を手動実行する方法と、Logic Appsと組み合わせて自動実行する方法の2通りをご紹介します。
手動実行する方法では、Azure Portalからカオス実験を手動で開始することで障害を発生させることができます。Logic Appsと組み合わせて自動実行する方法では、特定の時刻などをトリガーとして自動的に障害を発生させることができます。

(1) カオス実験を手動実行

カオス実験を手動実行するには、Chaos Studioページで実行したいカオス実験を選択し、[開始]をクリックします。

図15. カオス実験を手動実行①.png

図15. カオス実験を手動実行①

状態が「Running」になっていれば正常にFault Injection実験が実行されています。

図16. カオス実験を手動実行②.png

図16. カオス実験を手動実行②①

実行状況の詳細を確認することもできます。

図17. カオス実験を手動実行③.png

図17. カオス実験を手動実行③

カオス実験作成時に設定した障害の継続時間を経過後は、状態が「Success」になり、カオス実験が自動的に停止されます。また、障害の継続時間内でも、カオス実験の[停止]をクリックすることでFault Injection実験を停止することもできます。

図18. カオス実験を手動実行④.png

図18. カオス実験を手動実行④

(2) カオス実験を自動実行

カオス実験を自動実行するには、Logic Appsリソースを作成し、トリガーとアクションを設定します。今回は毎日12:00に、インスタンス停止障害を発生させるカオス実験を自動実行するLogic Appsを作成します。

まずはLogic Appsを作成します。

図19. カオス実験を自動実行①.png

図19. カオス実験を自動実行①

図20. カオス実験を自動実行②.png

図20. カオス実験を自動実行②

作成したLogic AppsのLogic Appsデザイナーで「空のロジックアプリ」を選択します。

図21. カオス実験を自動実行③.png

図21. カオス実験を自動実行③

Logic Appsデザイナーのトリガーで、[スケジュール>繰り返し]を選択して、毎日12:00にトリガーされるように設定します。

図22. カオス実験を自動実行④.png

図22. カオス実験を自動実行④

図23. カオス実験を自動実行⑤.png

図23. カオス実験を自動実行⑤

図24. カオス実験を自動実行⑥.png

図24. カオス実験を自動実行⑥

Logic Appsデザイナーのアクションで、[リソース操作を呼び出し]を選択して、作成したカオス実験を呼び出すように設定します。

図25. カオス実験を自動実行⑦.png

図25. カオス実験を自動実行⑦

図26. カオス実験を自動実行⑧.png

図26. カオス実験を自動実行⑧

図27. カオス実験を自動実行⑨.png

図27. カオス実験を自動実行⑨

作成したLogic Appsの概要ページに移動し、[トリガーの実行]をクリックして動作を確認します。

図28. カオス実験を自動実行⑩.png

図28. カオス実験を自動実行⑩

図29. カオス実験を自動実行⑪.png

図29. カオス実験を自動実行⑪

3.動作確認

前編の記事ではIISをホストするWindows Server 2019を2台用意し、パブリックロードバランサーで負荷分散構成した検証環境を作成しました。

図30. 検証環境構成図.png

図30. 検証環境構成図

今回はChaos Studioで、VMインスタンスを停止する障害を発生させるカオス実験を作成したので、1台のVMに障害を発生させ、障害が発生している様子と障害発生時でもWebサイトにアクセスできることを確認します。

図31. カオス実験実行時の環境構成図.png

図31. カオス実験実行時の環境構成図

まずはChaos Studioで障害を発生させる前に、2台のVMで負荷分散されていること、どちらのVMにも正常にHTTP接続できることを確認します。

ロードバランサーのパブリックIPアドレスにブラウザでアクセスすると、2台のVMに正常にアクセスできることが確認できます。

図32. IIS接続確認①.png

図32. IIS接続確認①

また、[1..100 | % {curl 52.253.117.152;write-output "`n";sleep 3 }]コマンドでも2台のVMに正常にアクセスできることが確認できます。

図33. IIS接続確認②.png

図33. IIS接続確認②

次にChaos Studioでカオス実験を実行し、1台のVMインスタンスを停止させる障害を発生させ、同じようにロードバランサーのパブリックIPアドレスへのアクセスを確認します。カオス実験によってIIS01が停止しているため、EdgeとChromeの両方でIIS02に接続されます。

図34. 障害発生時のIIS接続確認①.png

図34. 障害発生時のIIS接続確認①

コマンドでも同様にIIS02のみに接続されます。

図35. 障害発生時のIIS接続確認②.png

図35. 障害発生時のIIS接続確認②

また、Azure Portalの仮想マシンページ、仮想マシンのアクティビティログでもIIS01が停止していることが確認できます。

図36. カオス実験の障害確認①.png

図36. カオス実験の障害確認①

図37. カオス実験の障害確認②.png

図37. カオス実験の障害確認②

最後に、Logic Appsによってカオス実験が自動実行された履歴も確認してみます。Logic Appsの実行履歴、カオス実験の履歴、仮想マシンのアクティビティログから、Logic Appsによってカオス実験が自動実行されたことが確認できます。

図38. カオス実験の実行履歴確認①.png

図38. カオス実験の実行履歴確認①

図39. カオス実験の実行履歴確認②.png

図39. カオス実験の実行履歴確認②

図40. カオス実験の実行履歴確認③.png

図40. カオス実験の実行履歴確認③

図41. カオス実験の実行履歴確認④.png

図41. カオス実験の実行履歴確認④

4.まとめ

今回はAzureリソースに対して様々なFault Injection実験を行うことができるChaos EngineeringツールであるAzure Chaos Studioの設定方法や、Fault Injection実験の実行方法についてご紹介しました。

また、前編の記事で準備した、IISをホストする2台のWindows Server 2019 VMをパブリックロードバランサーで負荷分散する検証環境に対してChaos Studioで障害を発生させても、ロードバランサーの機能によって正常に動作するVMのみに接続されることを確認しました。

図42. Chaos Studio の障害ターゲット.png

図42. Chaos Studio の障害ターゲット

ITインフラの可用性や耐障害性に不安を感じている方、いつ発生するか分からない障害に対して防災訓練的にシミュレーションしておきたい方にとっては最適のサービスですので、このようなお悩みをお持ちの方はぜひ一度お試しください。

 

Azure Chaos Studioでは、今回ご紹介したインスタンス停止障害以外にも、以下の障害を組み合わせて発生させることもできます。(仮想マシン、仮想マシンスケールセットの場合)

このように、Chaos StudioでFault Injection実験を行うことにより、実際に障害が発生した際の動きや影響範囲をシミュレーションすることができ、障害発生時にも止まらないサービスを作成することができます。

最後までお読みいただき、ありがとうございます。

利用方法やユースケースなど、Azureに関してご不明な点がございましたら、ぜひお気軽に Azure相談センター までお問い合わせください。
Azure に精通したスタッフが丁寧にご回答いたします。

著者紹介:SB C&S 井上 雄貴

  【 著者紹介 】
  井上 雄貴
  ・Azure Solutions Architect Expert
  ・JDLA Deep Lerning for ENGINEER 2019 #1
  SB C&S株式会社 技術統括部 第1技術部 2課

 

Azureの導入や運用に関するお悩みは SoftBankグループのSB C&Sにご相談ください

SoftBankグループのSB C&Sは、さまざまな分野のエキスパート企業との協力なパートナーシップによって、多岐にわたるAzure関連ソリューションをご提供しています。

「Azureのサービスを提供している企業が多すぎて、どの企業が自社にベストか分からない」
「Azure導入のメリット・デメリットを知りたい」
「Azureがどういう課題を解決してくれるのか知りたい」
など、Azureに関するお悩みならお気軽にお問い合わせください。
中立的な立場で、貴社に最適なソリューションをご提案いたします。

クラウドサーバーご検討中の方必見
お役立ち資料一覧

クラウドサーバーご検討中の方必見 お役立ち資料一覧
  • クラウドサーバーの導入を検討しているがオンプレミスとどう違うのか
  • AWSとAzureの違いについて知りたい
  • そもそもAzureについて基礎から知りたい
  • 今、話題の「WVD」って何?

そのようなお悩みはありませんか?
Azure相談センターでは、上記のようなお悩みを解決する
ダウンロード資料を豊富にご用意しています。
是非、ご覧ください。

Azureの導入・運用に役立つ資料を
無料でダウンロードしていただけますDOWNLOAD

オンプレミスからクラウドへの移行を検討している方のために、安心・スムーズな移行を実現する方法を解説し、
運用コストの削減に有効な「リザーブドインスタンス」もご紹介するホワイトペーパーです。

Azureのことなら、
SB C&Sにご相談を!

導入から活用まで専門スタッフが回答いたします。
お気軽にお問い合わせください。