SOAモニタリング、ロギング、分析、修復、およびパフォーマンスの最適化
ある企業は本番環境のREST APIエンドポイントに対して、実際のユーザーが障害を報告する前にレイテンシ増加や可用性低下を検知したいと考えています。毎分APIを自動的に呼び出し、HTTPステータスコードとレスポンスボディを検証し、結果をCloudWatchメトリクスとして記録できるソリューションとして最も適切なものはどれですか?
※ canary:本番トラフィックより先にエンドポイントを試験的に叩くスクリプト実行ユニット。鉱山のカナリアに由来する早期警戒の概念から命名。
AAmazon CloudWatch Syntheticsでcanaryスクリプトを作成し、スケジュールに従ってAPIエンドポイントを定期的にテストする
✓ 正解
CloudWatch SyntheticsのcanaryはスクリプトベースでAPIのレスポンスコード・ボディ・レイテンシを自動検証し、結果をCloudWatchメトリクスとして自動記録します。マネージドサービスのため追加の実装なく外形監視を実現できます。
BAWS Lambda関数をEventBridgeルールで1分ごとにトリガーし、APIを呼び出した結果をCloudWatchカスタムメトリクスとして手動発行する
Lambda+EventBridgeで定期的なAPI呼び出しとメトリクス記録は技術的に可能ですが、Lambda関数の管理・canaryスクリプトの実装・PutMetricData呼び出しコードの作成が必要で、CloudWatch Syntheticsと比べて運用負荷が大きくなります。
CAmazon Route 53ヘルスチェックを設定し、エンドポイントの死活監視を実施してCloudWatchアラームと連携させる
Route 53ヘルスチェックはHTTPステータスコードによる死活監視とCloudWatchアラーム連携が可能ですが、レスポンスボディの内容検証やカスタムシナリオテストには対応しておらず要件を満たしません。
DAWS Health Dashboardのイベントを購読し、APIが稼働するリージョンのサービス障害通知を受け取る
AWS Health Dashboardはリージョン・サービス単位のAWSインフラ障害を通知するサービスであり、ユーザー固有のAPIエンドポイントのレイテンシや可用性を個別に監視する機能はありません。
解説
選択肢AのAmazon CloudWatch Syntheticsはスケジュール実行されるcanaryスクリプトを使ってAPIやUIを自動テストするマネージドサービスです。Node.jsまたはPythonスクリプトでリクエストを送信し、レスポンスコード・レイテンシ・ボディ内容を細かく検証できます。結果は自動的にCloudWatchメトリクスとして記録され、アラーム設定も容易です。
選択肢BのLambda関数とEventBridgeの組み合わせも技術的には実現可能ですが、canaryスクリプトの記述・Lambdaの管理・カスタムメトリクス発行の実装など、Syntheticsより運用負荷が高くなります。
選択肢CのRoute 53ヘルスチェックは単純な死活監視(HTTPステータス確認)には適しますが、レスポンスボディの詳細検証やカスタムシナリオテストには対応していません。
選択肢DのAWS Health Dashboardはリージョン全体のAWSサービス障害を通知するものであり、特定のAPIエンドポイントのレイテンシや可用性を個別監視する機能はありません。
ドメイン別正答率・予想スコアでリアルタイムに実力把握
無限ノックでSOAを徹底対策。全問AI生成のオリジナル問題。
無料で演習を始める →