

ソリューションアーキテクトの問題集を解いていて、以下の問題の回答がわかりませんでした。。

> Amazon  
>
> EC2インスタンス上で動作しているアプリケーションは、定期的に処理が停止するため、動作の復旧のために再起動させています。アプリケーションログはAmazon
> CloudWatchに出力されており、問題が発生するログは特定されています。開発者はバグの修正に取り組んでいますが、修正の時期は決まっていません。修正プログラムがデプロイされるまで、インスタンスのリカバリを自動化する回避策について選択してください。
>
> A：インスタンスのメモリ使用量に関するAmazon CloudWatchアラームを作成します。作成したアラームに基づいてAmazon
> CloudWatchアクションをトリガしてインスタンスを再起動します。
>
> B：特定されたログをAmazon CloudWatch  
>
> Logsフィルタに設定してAmazonCloudWatchアラームを作成します。そのアラームに基づいてAmazonCloudWatchアクションをトリガーにしてインスタンスを再起動します。

正解はBのようなのですが、Aが不正解になる理由がよくわかりませんでした。  
Bの方がより良い答えなのでBが正解（Aが間違いではない）なのでしょうか？

Aが不正解となる理由について、ご存知の方は回答いただけると幸いです。


CC BY-SA 4.0
2022-01-12T12:58:51.297
85654
2022-02-16T06:33:51.053
50856
question
aws aws-cloudwatch
Amazon CloudWatch Logsを利用したインスタンスの自動復旧について


問題文は「アプリケーションは、定期的に処理が停止する」としか書かれておらず、メモリ使用量について触れられておりません。

> インスタンスのメモリ使用量に関するAmazon CloudWatchアラームを作成します。

が実現できる保証がありません。


CC BY-SA 4.0
2022-01-12T13:24:05.170
85656
2022-01-12T13:24:05.170
4236
85654
answer


メモリの使用量が増えたからと言ってアプリケーションが停止しているとは限りませんし、少なくともそう特定できる記述がありません。  
そのためAのケースでは問題が発生していないタイミングで再起動してしまう恐れがあります。

一方、問題文に

> 問題が発生するログは特定されています

と書いてあるので、ログを見れば確実に問題が発生したタイミングがわかることが読み取れます。  
したがってBのほうが適切です。

ちなみに、デフォルトではCloudWatchではEC2インスタンスのメモリ使用量のメトリクスはなく、CloudWatch上で確認したければCloudWatch
Agentなどで送ってやる必要があります。


CC BY-SA 4.0
2022-02-16T06:33:51.053
86380
2022-02-16T06:33:51.053
51452
85654
answer