BLOGAzureブログ

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

2022.06.17

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

皆さまこんにちは。SB C&Sの井上です。
今回は、Azure上で簡単にChaos Engineeringを行うことのできるサービス、「Azure Chaos Studio」についてご紹介します。

近年多様化するサイバー攻撃やシステム障害によるサービスダウンに備えることは非常に重要で、特にクラウドの場合はダウンしないシステムを作るよりも、ダウンしても問題なくサービス提供を継続できるシステムを作ることを目指すべきだと言われています。このためには、いざ障害が発生した際にどのように対処すべきかを事前に計画して、障害対応の検証を行う必要があります。

そこで今回のブログでは、Chaos Engineeringによる障害対応検証によってサービスダウンに備えることができるAzureサービスである「Azure Chaos Studio」についてご紹介します。また、サービス紹介の他に、検証環境の作成方法や実際の障害に備えた障害対応検証方法などについてもご紹介します。

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

1. Chaos Engineeringとは

Chaos Engineeringとは、ITインフラのリソースやシステムに対して意図的に障害を発生させ、障害に対応できるインフラを構築することで、本番環境の実際の障害に対してサービス継続性を強化する方法論です。
大規模システムでは、障害発生時の単一障害点や依存関係、障害の影響範囲を予測することが困難になってきますが、Chaos Engineeringで意図的に障害を発生させて障害対応実験を行い対処することで、防災訓練を行うようなもので、実際の障害が発生した時、その影響を最小限に抑えることができるようにあらかじめ備えることができます。

Chaos Engineeringは、動画配信サービスのNetflixがITインフラの回復性を実験するためにChaos MonkeyというChaos Engineeringツールを開発して自社導入し、2011年にAWS US Eastリージョンで発生した大規模障害の影響を回避したことで注目を集めるようになりました。

NetflixではChaos Monkeyだけでなく、Janitor Monkeyという未使用リソースを破壊するツールや、Chaos Gorillaという可用性ゾーン全体を停止するツールなどを開発し、これらのFault Injection Testing(FIT)ツールをスイートでSimian ArmyとしてOSSで公開しています。

NetflixのSimian Army以外にもGremlinやpumbaをはじめ多くのChaos Engineeringツールが存在していますが、今回ご紹介するAzure Chaos StudioはMicrosoft製のChaos Engineeringツールです。

2. Azure Chaos Studioとは

Azure Chaos Studioとは、Azureアプリケーションに意図的に障害を発生させて、システムの耐障害性をテストしたり、回復性を向上させたりするのに役立つChaos Engineeringツールです。Chaos Studioでは、Azureリソースに対して様々なFault Injection実験を行うことができます。
例えばインスタンスの停止やCPUへの高負荷を引き起こしたり、ネットワーク障害を発生させたりして、インシデントに対する回復性の測定や影響範囲の測定、インシデント対応の方針などを立てることができます。

Chaos Studioを利用する際には「カオス実験」というリソースで、発生させる障害の種類と、障害の対象となるリソースを定義します。発生させる障害はニーズに応じて並列実行したり、複数の障害を順番に実行できます。
例えばVMのCPUに99%の負荷を10分間発生させ、その後VMをシャットダウンする、といった一連の障害シナリオを1つのカオス実験で定義することもできます。

また、Chaos Studioの障害ターゲットを有効化する方法は2種類あります。
1つ目は、インストールやエージェントなしでAzureリソースに対して直接障害を実行する「サービス直接ターゲット」、2つ目は、仮想マシンや仮想マシンスケールセットのゲスト内障害を実行する「エージェントベースのターゲット」で、それぞれの有効化方法で実行できる障害の種類が異なります。
例えばVMやVMSSの場合は、有効化方法によって以下の障害を発生させることができます。

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

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

3. 検証環境作成

今回はWebサーバーの利用シーンを想定し、1台のサーバーに障害が発生した場合でもWebサイトにアクセスできる構成の検証環境を用意しました。
検証環境でIISをホストするWindows Server 2019を2台用意し、パブリックロードバランサーで負荷分散構成した後Chaos Studioで1台のVMに障害を発生させ、障害が発生している様子と障害発生時でもWebサイトにアクセスできることを確認してみようと思います。

今回用意する検証環境は以下のようになります。

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

図2. 検証環境構成図

検証環境作成は以下の手順で行います。

  • Windows Server 2019 VMを2台作成
  • 2台のVMでIISを構成
  • IISのトップページ用HTMLファイルを作成/構成
  • パブリックロードバランサーを作成/構成
  • Webサイトへの接続テスト

(1) Windows Server 2019 VMを2台作成

Azure Portalで同一構成のVMを2台作成します。IISをホストするためにHTTP(80)受信規則を許可し、可用性を向上させるために負荷分散規則を可用性セットに設定します。

図3. 仮想マシンの作成.png

図3. 仮想マシンの作成

図4. 作成した仮想マシン一覧.png

図4. 作成した仮想マシン一覧

(2) 2台のVMでIISを構成

作成したVMにRDP接続し、サーバー機能にIISを追加します。

図5. IIS を構成①.png

図5. IIS を構成①

図6. IIS を構成②.png

図6. IIS を構成②

ブラウザからVMのパブリックIPアドレスにアクセスし、IISが正常に追加されたことを確認します。

図7. IIS 機能の確認.png

図7. IIS 機能の確認

(3) IISトップページ用HTMLファイルを作成/構成

VMのIPアドレスにアクセスした際に表示されるトップページ用HTMLファイルを作成します。今回は接続されたVMを判別しやすいように、HTMLファイルの中身はHTML形式ではなく平文でVM名を記載しています。

図8. IIS トップページ用 HTML 作成.png

図8. IIS トップページ用 HTML 作成

HTMLファイルを作成後、VMのパブリックIPアドレスにアクセスした際のトップページとして表示されるように構成します。

図9. IIS トップページ構成①.png

図9. IIS トップページ構成①

図10. IIS トップページ構成②.png

図10. IIS トップページ構成②

図11. IIS トップページ構成③.png

図11. IIS トップページ構成③

図12. IIS トップページ構成④.png

図12. IIS トップページ構成④

(4) パブリックロードバランサーを作成/構成

NSGのRDP受信許可規則を削除し、2台のVMのパブリックIPアドレスの関連付けを解除します。

図13. RDP 受信規則削除.png

図13. RDP 受信規則削除

図14. パブリックIPアドレス 関連付け解除.png

図14. パブリックIPアドレス 関連付け解除

図15. パブリックIPアドレス 関連付け解除確認.png

図15. パブリックIPアドレス 関連付け解除確認

パブリックロードバランサーを作成します。

図16. パブリックロードバランサー作成.png

図16. パブリックロードバランサー作成

フロントエンドIP、バックエンドプール、負荷分散規則、正常性プローブの設定を行い、2台のVMの負荷分散ができるように構成します。

図17. パブリックロードバランサー フロントエンドIPアドレス構成.png

図17. パブリックロードバランサー フロントエンドIPアドレス構成

図18. パブリックロードバランサー バックエンドプール構成.png

図18. パブリックロードバランサー バックエンドプール構成

図19. パブリックロードバランサー 負荷分散規則構成.png

図19. パブリックロードバランサー 負荷分散規則構成

図20. パブリックロードバランサー 構成確認.png

図20. パブリックロードバランサー 構成確認

(5) Webサイトへの接続テスト

ロードバランサーのフロントエンドIPにアクセスし、Webサイトにアクセスできること、2台のVMで負荷分散されていることを確認します。

図21. Webサイトへの接続テスト.png

図21. Webサイトへの接続テスト

4. まとめ

今回はITインフラのリソースやシステムに対して意図的に障害を発生させ、障害に対応できるインフラを構築することで、本番環境の実際の障害に対してサービス継続性を強化する方法論であるChaos Engineeringと、Azureリソースに対して様々なFault Injection実験を行うことができるChaos EngineeringツールであるAzure Chaos Studioの概要についてご紹介しました

また、Chaos Studio でFault Injection実験を行うための事前準備として、IISをホストする2台のWindows Server 2019 VMをパブリックロードバランサーで負荷分散する検証環境を作成し、作成方法をご紹介しました。

次回の後編の記事では、今回作成した検証環境のVMにChaos Studioで障害を発生させ、カオス実験の動作と、障害発生時のロードバランサーによる負荷分散の動作をご紹介します。
ぜひ次回の記事も合わせてお読みください!

 

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

利用方法やユースケースなど、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にご相談を!

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