CloudWatchでWebサーバー(EC2)を監視する方法

サービスを運営していると、予期せぬ障害が発生することがありますが、一番怖いのは発生したことに気付けないことです。

CloudWatchを設定して障害に気付けるようにしましょう。

CloudWatchの設定

1.CloudWatch コンソールにログイン
AWS Management Consoleにログインし、CloudWatchサービスを開きます。

2.メトリクスの選択
メトリクスのダッシュボードやメトリクスエクスプローラから、監視したいメトリクス(例: EC2インスタンスのCPU使用率、ELBのレイテンシー、データベースのディスク使用率など)を選択します。

3.アラームの作成
メトリクスのグラフを表示し、右上の「アラームを作成」ボタンをクリックします。
アラームの設定ウィザードが表示されます。

4.条件の設定
条件タイプ: 閾値を選択します。単一のメトリクス値のみ、または複数のメトリクス値の平均や合計を使用することができます。
対象メトリクス: 監視したい具体的なメトリクスを選択します。
閾値: アラームをトリガーする閾値を設定します(例: CPU使用率が80%以上)。
期間: メトリクスデータをどの期間で平均化するかを設定します(通常は1分間隔での平均が推奨されます)。
アクション: アラームがトリガーされた場合のアクションを設定します(通知の送信、Auto Scalingの起動、Lambda関数の実行など)。

5.通知の設定
アラームがトリガーされたときに通知を受け取るための設定を行います。
SNSトピックを選択し、メール、SMS、またはカスタム通知先を設定します。
アラームの名前と説明:

アラームに適切な名前と説明を付けて、最終確認を行います。

6.アラームの作成
設定が完了したら「アラームの作成」をクリックしてアラームを有効化します。

Webサーバー(EC2)のおすすめ設定

WebサーバーはApplication Load Balancerを使用して構築することが多いと思いますが、CloudWatchのアラームでターゲットグループのUnHealthyHostCountをチェックするのをオススメします。

Webサービスの一番の障害は「ユーザーがサービスを利用できないこと」になります。

UnHealthyHostCountはヘルスチェックが失敗しているホストの数をカウントしているため、サーバーのCPU率の増加・バックエンドのDBの障害などの原因に依らずサービスが見れない・使用できない状態になっていることを検知することができます。

迷ったらまずUnHealthyHostCountのアラームを設定し、サービスに合わせてその他を設定するのがベターだと思います。