SOAモニタリング、ロギング、分析、修復、およびパフォーマンスの最適化
ある企業はEC2インスタンス上のアプリケーションからCloudWatch Logsにログを送信しています。ログには「ERROR」を含むエラーメッセージが出力されており、5分間に「ERROR」が10件を超えた場合にSNS通知を受けたいと考えています。Lambda関数などの追加コンポーネントを最小限に抑えて実装するには、どの方法が最適ですか?
ACloudWatch Logsのメトリクスフィルターで「ERROR」パターンをカスタムメトリクスとして発行し、CloudWatchアラームからSNSに通知する
✓ 正解
CloudWatch Logsのメトリクスフィルターはパターン一致ログをリアルタイムでカスタムメトリクスとして発行する。CloudWatchアラームとSNSを組み合わせれば、Lambda不要・最小構成で5分間10件超の通知要件を実現できる。
BCloudWatch LogsのサブスクリプションフィルターでログをLambda関数に転送し、Lambda関数で「ERROR」件数を集計してSNSに通知する
サブスクリプションフィルターでLambdaにログを転送して集計する方法は機能するが、Lambda関数の実装・デプロイ・管理が必要なため、メトリクスフィルターに比べて追加コンポーネントが増え運用負荷が高い。
CEventBridgeルールを作成してCloudWatch Logsのパターンマッチイベントをトリガーとし、SNSトピックへ直接通知を送信する
EventBridgeはCloudWatch Logsのリアルタイムパターンマッチイベントを直接SNSにルーティングする標準機能を持たない。CloudWatch Logsからのイベント転送にはサブスクリプションフィルターを介する構成が別途必要となる。
DCloudWatch Logs Insightsのスケジュール済みクエリで「ERROR」件数を定期計算し、Lambda関数経由でSNSに通知する
CloudWatch Logs InsightsはアドホックなSQLライクなログ分析ツールで、定期実行機能があっても結果をSNSに送るにはLambdaなどの追加コンポーネントが必要となり、最小構成という要件に合わない。
解説
CloudWatch Logs メトリクスフィルターは、ロググループ内のログイベントをリアルタイムでスキャンし、指定パターン(「ERROR」など)に一致したイベント数をCloudWatchカスタムメトリクスとして自動発行する機能です。このメトリクスにCloudWatchアラーム(期間:5分、閾値:10)を設定し、アクションにSNSトピックを指定するだけで実装が完結します。Lambda関数などの追加リソースが不要なため、最小の構成で要件を満たせます。
選択肢BのCloudWatch Logsのサブスクリプションフィルターは、ログをLambda関数に転送するには有効ですが、Lambda関数のコード作成・デプロイ・管理が必要となり、メトリクスフィルターより運用負荷が高くなります。
選択肢CのEventBridgeは、CloudWatch Logsのリアルタイムなパターンマッチイベントを直接検知してSNSに転送する標準機能を持たないため、このユースケースには直接使用できません。
選択肢DのCloudWatch Logs Insightsはアドホックなログ分析ツールであり、定期実行する場合でもSNSへの通知にLambda関数との連携が必要となり、メトリクスフィルターより構成が複雑になります。
ドメイン別正答率・予想スコアでリアルタイムに実力把握
無限ノックでSOAを徹底対策。全問AI生成のオリジナル問題。
無料で演習を始める →