最近、仕事でCloudWatchをしっかり使うようになったので、勉強がてらCloudWatchでメール通知の設定をしてみた。
動画
環境構築
ElasticBeanstalkというサービスを使ってサクッと環境を用意します。
このサービスを使うと、AWS側で用意してあるテンプレートに簡単な設定を加えるだけで、サーバー環境を一瞬で作成できてしまう!
「Create Application」を押下。
アプリケーション名を入力後、プラットフォームを選択して「アプリケーション作成」。
以下の画面が出たら作成完了です。(5分ほどかかった気がする)
「環境に移動する」でサンプリアプリにアクセスすることができます。
SNS設定
次はメッセージ送信サービスのSNS設定です。
SNSは他サービスから通知がくると、SNSに登録してある連絡先にメッセージを一括送信します。
トピック名を入力して「次のステップ」へ。
表示名のみ入力し、トピック作成。
次にサブスクリプションを作成する。ここで送信したい連絡先を登録します。
トピックに対して通知がくると、サブスクリプションにメッセージを送信する仕組みです。
プロトコルとエンドポイントを入力して「サブスクリプションの作成」。
今回はメール送信なので、プロトコルは「Eメール」を選択、エンドポイントはメールアドレスを入力。
サブスクリプションを作成すると、メールアドレスの認証が必要です。
認証前はステータスが「保留中の確認」になります。
届いたメールに記載されたURLにアクセスして認証。
認証完了するとステータスが「確認済み」に変わる。
CloudWatch設定
次はCloudWatchのアラームの設定です。
ElasticBeanstalkで自動作成されたアラームがありますが、今回の検証には使いづらいので新しく作成します。
ElasticBeanstalkの環境状態を表すメトリクスを選択。
アラームを出しやすくするために、統計を「最大」と期間を「1分」に変更。
閾値を1よりも大きいにして次へ。
先ほど作成したトピックを通知の送信先に指定し次へ。
名前と説明を入れて次へ。
プレビューで設定内容を確認して、アラーム作成。
動作確認
以下のようにElasticBeanstalkで自動作成されたEC2を終了することによって、意図的にアラームを起こします。
EC2をシャットダウンすると、ElasticBeanstalkのヘルス状態が「不明」に変わる。
1分後ぐらいにCloudWatchで、先ほど作成したアラームが発生する。
アラーム通知メールが届くことを確認!
終わりに
自分で検証するなかで、CloudWatchへの理解(メトリクスなど)も深まりました!
少々面倒に感じることもありますが、インフラ技術の勉強もプログラミングと同じく手を動かすと、使える知識になりますね
参考