金融サービス企業が、Amazon ECS上でマイクロサービスアーキテクチャへの移行を進めています。各サービスは同期REST APIで通信していますが、高負荷時に下流サービスの遅延が上流サービスへ連鎖し、システム全体がダウンするカスケード障害が発生しています。個々のコンポーネントが障害を起こしてもシステム全体の可用性を維持したいと考えています。次のうち、システムの耐障害性を最も効果的に向上させる2つの対策はどれですか?(2つ選択)
非同期化が可能なサービス間通信にAmazon SQSキューを導入し、同期依存を排除する。 および Amazon ECS Service Connectを導入し、Envoyプロキシのアウトライヤー検知(outlier detection:異常なホストを負荷分散対象から自動排除するサーキットブレーカー機能)を実装する。 SQS(A)による非同期通信は下流サービスの遅延が上流に伝播するのを防ぎ、スパイク時もキューで吸収することで注文損失を防げます。 Amazon ECS Service Connect(D)はEnvoyプロキシベースのサービス間通信管理を提供し、アウトライヤー検知(outlier detection)がサーキットブレーカーとして機能することで障害サービスへのリクエストを自動遮断しカスケード障害を防止します(なお、同等機能を持っていたAWS App MeshはEOLが告知されており、ECSワークロードにはECS Service Connectへの移行が推奨されています)。 選択肢Bは静的コンテンツのキャッシュには有効ですが連鎖障害対策になりません。 選択肢Cは観測性向上ツールであり予防策にはなりません。 選択肢Eもアーキテクチャ変更なしではカスケード障害を防げません。