Amazon Web Services ブログ

Resiliency Quest のご紹介 – カオスエンジニアリングを体験できるゲーム形式のワークショップ

今回は、AWS Fault Injection Service (FIS) を使ったアプリケーションのレジリエンス向上をテーマにした新しいワークショップ、Resiliency Quest をご紹介します。このワークショップでは、ゲーミフィケーションの要素を取り入れ、実際に手を動かしながら、AWS FIS の使い方とレジリエンスのベストプラクティスを楽しく学ぶことができます。レジリエンスに関する技術的な経験をお持ちの無い方でも参加できますので、ぜひお試しください。

Resiliency Quest とは?

Resiliency Quest は、ゲーム形式の体験型ワークショップです。参加者はアプリケーションを運用する架空の企業の一員として、AWS FIS を使ってアプリケーションに実際に障害を引き起こし、その対応策を学びます。これにより、インフラストラクチャのレジリエンスを高める方法を体感し、実践的なスキルを習得できるイベントとなっています。

AWS Fault Injection Service (FIS) とは?

AWS FIS は、カオスエンジニアリングを実践するための強力なツールです。カオスエンジニアリングとは、意図的に障害を発生させてシステムの応答を観察し改善を行う手法で、システムの盲点や実装上の問題を明らかにし、運用スキルの向上を通じてリカバリ時間の短縮にも貢献します。

AWS FIS は以下のような特徴があります。

  • 管理された障害実験:実際の運用環境で発生する可能性のある障害をシミュレートすることで、事前に対策を講じることができます。
  • 多様なリソース対応:AWS FIS は Amazon EC2 (EC2)Amazon Elastic Container Service (ECS)Amazon Elastic Kubernetes Service (EKS)Amazon Relational Database Service (RDS) のほか、多くのAWSサービスをサポートしており、今後も追加のリソースやアクションがサポートされる予定です。
  • 実験の安全性確保:CloudWatch アラームを使用して、特定の条件下で実験を自動的に停止させることができ、重要なビジネスメトリクスへの予期しない影響を防ぎます。

Resiliency Quest で学べること

Resiliency Quest では、AWS FIS を通じてどのように障害をシミュレーションし、いかに障害に対する対応を実施するか学ぶことができます。また、アプリケーションの信頼性を高めるためのレジリエンスのベストプラクティスを理解し、レジリエンスの向上を図るための実践的なスキルが身につきます。

Resiliency Quest の内容のご紹介

次は、本ワークショップのより具体的な流れとシナリオをご紹介します。

あなたは MyDigitalWallet という架空のアプリケーションを運用しています。そんなある日、社長からあなた宛に「アプリケーションがダウンしている」との緊急連絡を受けます。顧客や社内からのプレッシャーが高まり、何とかしてアプリケーションを安定させなければなりません。

1 つのシナリオでは、アプリケーションがダウンした理由は MyDigitalWallet のユーザーが増加し、突然トラフィックが増加したといったケースです。この場合、AWS FIS を使ってトラフィック増加シナリオをシミュレーションし、どのように対策を講じるかを学びます。さらに、システムのパフォーマンスを監視し、問題の根本原因を特定するプロセスも体験します。

具体的なワークショップの流れは次のとおりです。

ワークショップの流れ

  1. シナリオ紹介:はじめの第一歩!前提となるシステムのアーキテクチャを理解します。
  2. 障害シミュレーション:AWS Fault Injection Service を使って実際に障害を引き起こします。
  3. 対応策の実装:アーキテクチャを修正し、同じ障害が再発してもシステムを止めない方法を考えます。
  4. スコア表示:システムの稼働状況によってスコアリングされ、ダッシュボードに参加者の点数が表示されます。
  5. ヒントと詳細実装方法:行き詰まっても大丈夫!ヒントや実装方法を参考に問題をクリアしていきます。

具体的なシナリオのご紹介

ここからは実際にワークショプで体感していただくコンテナタスク障害のシナリオを Dive Deep してご紹介します。

まずは、提供されるワークショップのアーキテクチャを理解します。

ワークショップを開始すると、実験を行うための画面が表示されます。この画面に従って実験を進めていきます。

現在、画面表示は英語をサポートしていますが、近日中での日本語化を目下進めております。

MyDigitalWallet アプリケーションはサポートする ECS タスクに障害が発生しても、システムはアプリケーションがダウンタイムなしで機能し続け、すべての支払いトランザクションが正常に処理されるか、損失を最小限に抑えるように設計されている必要があります。ここでは、このアプリケーションがそのように設計されているという仮説を置きます。

この仮説を検証するために、FIS 実験テンプレートを活用します。FIS 実験テンプレートでは、’aws:ecs:stop-task’ アクションを使用して、1 つの ECS タスクを停止して中断することをシミュレートします。アプリケーションへの影響は 100 秒間監視されます。

Start ボタンをクリックすると、実際に FIS 実験テンプレートが起動され障害を引き起こします。その結果、ダウンタイムが発生しリクエストが失われることがわかりました。スコアは残念ながら 0 点です。

この状況に対応するために、ここからは実際の AWS 環境を操作しアーキテクチャを修正することで、同じ障害が再発しても継続的に稼働する環境を目指します。まずはヒントをみて解決策に関する大まかな推奨事項を把握します。進め方がわからない場合は、ポイントを消費してより詳細なガイダンスを見ることもできます。

ヒントに従って、AWS のマネジメントコンソールで設定を行っていきます。ECS の障害ということで、実際の設定の確認を進めます。ここから先は、ぜひ実際のワークショップでご確認ください。

設定を行った後に再度障害を引き起こしたところ、当初の仮説の通り、ダウンタイムなしで機能し続けることができました。スコアも満点になっています。

ダッシュボードを見ると自身の点数だけではなく参加者の点数も表示されます。競いながら楽しくハイスコアを目指してください!

シナリオのご紹介は以上となります。雰囲気が少しでも伝われば幸いです。

こんな方におすすめ

本ワークショップは、以下の方々に参加をおすすめしております。

  • AWS ユーザー:すでに AWS のサービスに触れているが、AWS FIS については未経験の方。
  • 開発者:アプリケーションのレジリエンスを高めたいと考えているが、コーディングの経験が少ない方。
  • 運用エンジニア:インフラストラクチャの信頼性を向上させるための実践的なスキルを身につけたい方。
  • チームリーダーやマネージャー:チーム全体でレジリエンスの重要性を学び、実践的なトレーニングを通じてスキルを高めたいと考えている方。

ワークショップの実施前提

参加に向けて AWS FIS の経験は不要です。また EC2、ECS、RDS の知識があるとより良いスコアを狙うことができますが、必須ではありませんので安心してご参加ください。

また現在本ワークショップは、AWS がホストする形式で開催しております。ワークショップの開催をご希望の際は AWS の担当営業もしくはソリューションアーキテクトにお問い合わせください。

Resiliency Quest まとめ

Resiliency Quest は、レジリエンスを高める方法を学ぶための絶好の機会です。ハンズオン形式で学べるこのワークショップに参加して、実践的なスキルを身につけてください。興味を持たれた方は、ぜひ AWS のメンバーにお問い合わせください。一緒にアプリケーションの信頼性を高め、レジリエンスを強化しましょう!

この記事は、ソリューションアーキテクト 渡部 拓実 が執筆いたしました。