SOAモニタリング、ロギング、分析、修復、およびパフォーマンスの最適化
ある企業は、EC2インスタンス上のJavaアプリケーションのログをCloudWatch Logsに集約しています。運用チームは、アプリケーションログに `OutOfMemoryError` という文字列が出力された場合、数分以内にSNS経由で担当者へ通知したいと考えています。追加のインフラを増やさず、最小の運用負荷でこの検知と通知を実現する方法はどれですか。
ACloudWatch Logs のメトリクスフィルターで `OutOfMemoryError` を検出してカスタムメトリクスに変換し、そのメトリクスにしきい値アラームを設定してSNSトピックへ通知する
✓ 正解
メトリクスフィルターがロググループのログを取り込み時にパターン評価し、一致をカスタムメトリクスに変換する。そのメトリクスへアラームを設定すればサーバーレスかつ低遅延でSNS通知でき、追加リソース不要で運用負荷が最小となる。
BLogs Insights のクエリを定期実行するLambda関数を作成し、EventBridge スケジュールで5分ごとに起動して該当ログがあればSNSへ通知するよう構成する
Logs Insightsを定期実行する方式は、Lambdaとスケジュールの保守が必要でリソースが増える。さらにクエリ間隔分の検知遅延が生じ、メトリクスフィルターより運用負荷と遅延の両面で劣る。
Cサブスクリプションフィルターでロググループの全ログをAmazon Data Firehose経由でS3へ送信し、Athenaクエリで文字列を判定して通知する
全ログをFirehose経由でS3へ送りAthenaで判定する構成は、配信バッファやクエリ実行の遅延が大きくニアリアルタイム通知に適さない。パイプラインも複雑で運用負荷が高くなる。
DCloudTrail の証跡でアプリケーションのメモリ不足イベントを記録し、EventBridge ルールでパターンに一致した際にSNSトピックへ通知する
CloudTrailはAWSのAPIコールを記録する監査サービスであり、アプリケーション内部で発生するメモリ不足はAPIイベントとして記録されない。この検知要件には利用できない。
解説
CloudWatch Logs のメトリクスフィルターは、ロググループに取り込まれるログイベントを指定したパターン(`OutOfMemoryError` など)でリアルタイムに評価し、一致数をカスタムメトリクスとして発行できます。このメトリクスにCloudWatchアラームを設定すればSNS通知が可能で、追加のコンピューティングリソースを必要とせず最小の運用負荷で数分以内の検知を実現できます。
選択肢Bの Logs Insights 定期実行は、Lambdaとスケジュールの管理が増え、実行間隔分の検知遅延も生じるため運用負荷が高い。
選択肢Cのサブスクリプションフィルター+Firehose+Athenaは、配信バッファやクエリ実行を挟むためニアリアルタイム通知に不向きで構成も複雑。
選択肢Dの CloudTrail はAWS APIコールを記録するサービスで、アプリケーション内部のメモリ不足はログとして残らない。
ドメイン別正答率・予想スコアでリアルタイムに実力把握
無限ノックでSOAを徹底対策。全問AI生成のオリジナル問題。
無料で演習を始める →