無限ノック › DVA 練習問題一覧 › 問題
DVAトラブルシューティングと最適化

Lambda関数が処理中に「PaymentDeclinedException」というエラーメッセージをCloudWatch Logsに記録しています。開発者は、このエラーが5分間に10件以上発生した場合にSNSトピックに通知を送る仕組みを、追加のアプリケーションコードを書かずに実装したいと考えています。最も効率的な方法はどれですか?

A
CloudWatch Logs InsightsクエリをEventBridgeのスケジュールルールで5分ごとに実行し、クエリ結果をLambda関数で評価してSNSトピックにパブリッシュする
CloudWatch Logs Insightsはアドホッククエリツールであり、リアルタイムアラートには設計されていない。EventBridgeスケジュール→Lambda→SNS通知という構成は追加コードと多くのコンポーネントが必要で、メトリクスフィルター+アラームに比べて効率的ではない。
B
Lambda関数のロググループにメトリクスフィルターを作成して「PaymentDeclinedException」をカスタムメトリクスとして集計し、そのメトリクスにCloudWatchアラームを設定してSNSトピックに通知する
✓ 正解
メトリクスフィルターはログ内のパターンを自動集計しカスタムメトリクスを発行する機能であり、Lambda関数のコード変更が不要。CloudWatchアラームと組み合わせることで5分間の閾値超過をSNSトピックに通知できる最もシンプルな構成で要件をすべて満たす。
C
Lambda関数のコードでPaymentDeclinedExceptionが発生するたびにAWS SDK経由でCloudWatch PutMetricDataを呼び出し、発行されたカスタムメトリクスにCloudWatchアラームを設定する
PutMetricDataでカスタムメトリクスを発行する方法は機能するが、Lambda関数に追加コードの実装が必要になり「アプリケーションコードを書かずに」という要件に反する。メトリクスフィルターを使えばコード変更なしで同じ結果を得られる。
D
Lambda関数でX-Rayアノテーションにエラー情報を記録してX-Rayグループを作成し、CloudWatch ServiceLensからSNS通知アラームを設定する
X-Rayアノテーションはトレースデータを検索するための機能であり、件数の閾値に基づくアラームをSNSと連携させる仕組みはない。エラーカウントのアラート通知には適したサービスではない。

解説

CloudWatch Logsメトリクスフィルターはロググループに対してパターン(例:"PaymentDeclinedException")を設定するだけで、Lambdaのコード変更不要でカスタムメトリクスをリアルタイムに発行できる機能。発行されたメトリクスに対してCloudWatchアラームを設定し(期間5分・閾値10)、アクションにSNSトピックを指定するだけで要件をすべて満たせる。追加コンポーネントが少なく運用コストも低い最も効率的な構成。 選択肢AのCloudWatch Logs InsightsはEventBridgeから直接Lambdaを呼び出してSNSに通知する構成が必要で、追加コンポーネントが多く複雑になる。また、Logs Insightsはアドホッククエリツールでありリアルタイムアラートには設計されていない。 選択肢CのPutMetricData呼び出しはLambda関数に追加コードが必要になり、「追加のアプリケーションコードを書かずに」という要件に反する。メトリクスフィルターで同じ結果をコードなしで実現できる。 選択肢DのX-Rayアノテーションはトレースの検索・分析用機能であり、件数の閾値に基づくアラームを設定してSNS通知を送る標準機能はないため、このユースケースには適していない。

ドメイン別正答率・予想スコアでリアルタイムに実力把握

無限ノックでDVAを徹底対策。全問AI生成のオリジナル問題。

無料で演習を始める →
← DVA の問題一覧に戻る