Amazon.com CTO の Werner Vogels は「すべてのものは常に故障する」と述べ、障害を前提としたシステム設計の重要性を説いています。クラウドは非常に高い可用性を可能にしますが、アベイラビリティゾーン内のサービス停止などの障害に耐えられるよう、レジリエントなアーキテクチャを構築するのはお客様の責任です。
そのために、AWS Well-Architeted Framework の信頼性の柱 を活用できます
アーキテクチャが、激しい状況や障害に耐えられるかを確信するには、障害をシミュレーションしてアーキテクチャの挙動を観察するのが良いでしょう。これにより、アーキテクチャが正しく動作してユーザーへの影響を軽減できるか、または失敗して調整が必要かを確認できます。これがカオスエンジニアリングの概念です。
カオスエンジニアリングを実施するには、AWS Fault Injection Simulator を活用できます。
また、Netflix チームの Chaos Monkey など、カオスエンジニアリング用のオープンソースツールもいくつかあります
本番環境で障害をシミュレーションする前に、テスト環境でカオスエンジニアリングを実践してください。混乱を引き起こさないためです。
これは高度な推奨事項で、レジリエンスをテストするために故意に障害を発生させるのは誰にでもできることではありません。
以下の場合にこの推奨事項を実施してください
– 可用性に対する厳しい要件がある環境で運用している場合や、環境が障害に耐えられることを他者に証明する必要がある場合
– このようなテストを実行できる熟練したセキュリティチームがいる場合
このタイプのテストでは、ミスが障害を引き起こす可能性があることを理解してください。
カオスエンジニアリングに関するセッション
AWS Fault Injection Simulator に関するセッション