AWS環境でのEC2ステータスチェック自動通知設定手順

記事タイトルとURLをコピーする

Xin chào! クラウドコンサルティング課のアンです。

南国出身の私ですが実は日本の夏があんまり得意ではありません。 そのため、今の時期をどう乗り越えるか苦戦しています。

さて、EC2サーバの数が増えるにつれて、EC2のステータスチェックが失敗した時に気づかない経験がありませんか。

本ブログはそのような場合にAWS環境のみでステータスチェックの自動通知してくれる設定手順を紹介します。

構成図

今回はEC2のステータスチェックが失敗時にCloudWatchアラームとSNSを使って、ユーザーのメールに自動通知するアーキテクチャになります。

設定手順

1. SNSトピックの作成

  • AWSコンソールにログインし、Amazon Simple Notification Serviceを選択します。左のタブで「トピック」を選択し、「トピックの作成」をクリックします。

  • 以下通りで各パラメータに設定した後、「トピックの作成」ボタンをクリックします。トピックが作成されたら、そのトピックのARN(Amazon Resource Name)をメモします。

パラメータ名 選択項目
タイプ スタンダード
名前 任意の名前を入力
その他パラメータ デフォルトのまま

2. SNSサブスクリプションの設定

  • 作成したSNSトピックを選択し、「サブスクリプションの作成」をクリックします。

以下通りパラメータを設定し、「サブスクリプションの作成」をクリックします。

パラメータ 設定値
トピック ARN 1で作成したトピックのARNを選択
プロトコル Eメールを選択
エンドポイント 通知したいメールアドレスを入力
その他項目 デフォルトのまま

  • メールアドレスに確認メールが届きますので、「Confirm subscription」をクリックしてサブスクリプションを確認します。

3.CloudWatchアラームの作成

  • AWSコンソールのEC2画面でアラームを設定したい特定のインスタンスIDを選択します。
  • 「ステータスとアラーム」タブで「アクション」→「ステータスチェックアラームを作成」をクリックします。
  • 「CloudWatch アラームの管理」画面で以下のパラメータを設定した後、「作成」で確定します。
    • アラームの追加または編集:「アラームを作成」
    • アラーム通知:作成したSNSトピック
    • アラームアクション:デフォルトのまま
    • 「アラームのしきい値」の欄では以下の値を設定
      • サンプルのグループ化基準:「平均」
      • サンプリングするデータのタイプ:「ステータスチェックの失敗:インスタンス」
      • 連続した期間:1
      • 期間:1分

4 .確認テスト

  • 1から3までが意図通りに設定できたことを確認するため、以下のコマンドを使って StatusCheckFailed_Instance を発生させます。 (今回のEC2はAmazon Linux 2023)

注意:障害の原因になりますので、本番のEC2で実行させないこと!

sudo systemctl stop systemd-networkd.service systemd-networkd.socket

  • EC2画面で確認し、アラームが発動したことを確認でました。

  • CloudWatchサービスの画面でもアラームの状態が確認でました。

  • 最後、登録したメールでアラームが発動した通知もきました。

補足-ステータスチェックの種類について

1. StatusCheckFailed_System( システムステータスチェック)

  • インスタンスが実行されている AWS システムをモニタリングします。
  • インスタンスの根本的な問題 (AWS 側の障害など) が検出されます。
  • システムステータスチェックが失敗した場合、AWS が問題を解決するのを待つか、自分で解決できるかを選択できます。

2. StatusCheckFailed_Instance(インスタンスステータスチェック)

  • インスタンスのソフトウェアとネットワークの設定をモニタリングします。
  • NIC (ネットワークインターフェース) に対して、ARP (アドレス解決プロトコル) リクエストを送信することでインスタンスのヘルスチェックを行います。
  • インスタンスステータスチェックの失敗の原因となる問題の例:
    • システムステータスチェックが失敗した
    • ネットワークの正しくない設定または起動設定
    • メモリの枯渇
    • ファイルシステムの破損
    • 互換性のないカーネルなど

おわり

以上がEC2のステータスチェックが失敗時にCloudWatchアラームとSNSを使って、ユーザーのメールに自動通知する手順でした。

本記事がEC2を運用・監視する上でお役に立てば嬉しいです。