【AWS SAA対策 #05】システム停止をスマホに即通知!CloudWatchとSNSの「黄金コンビ」を解説

AWS

AWSの運用で、こんな要件が出されたらあなたはどう答えますか?

「データ処理が停止したら、担当者のスマホに即座に通知が届くようにしてほしい」

私は最初、「Lamdaでメールを送るコードを書けばいいのかな?」と考えていました。しかし、AWSにはもっと「シンプルで管理が楽な正解」があったんです。

今回は、監視と通知の基本、CloudWatchアラームとAmazon SNSの連携について整理します。

監視の「目」と、通知の「声」

AWSで何かを監視して通知する場合、 2つのサービスの組み合わせが鉄板です。

  • 監視の「目」:Amazon CloudWatch
    システムの異常(メトリクスの閾値超え)を検知します。
  • 通知の「声」:Amazon SNS(Simple Notification Service)
    検知した異常を、EメールやSMS(ショートメッセージ)として人間に届けます。

なぜLamdaを使わないのか?

CloudWatchアラームには、標準機能として「SNSへ通知する」という設定が備わっています。わざわざLamda関数を自作してコードを管理する必要はありません。「まずは標準機能でできないか?」を考えるのがAWSの流儀です。

実践!SMS通知を設定する3ステップ

ステップ1:SNSトピックの作成と電話番号の登録

まず、通知を送るための「トピック(連絡網)」を作ります。

1.SNSコンソールで「標準」タイプのトピックを作成
2.「サブスクリプションの作成」で、プロトコルに[SMS]を選択
3.エンドポイントに、通知を送りたい[電話番号](+81…)を入力

ステップ2:CloudWatchアラームの作成

次に、何を以て「停止」とするかを決めます。

  • EC2の場合:StatusCheckFoiled(ステータスチェック失敗)
  • カスタムメトリクスの場合:アプリからの「生存信号(ハートビート)」が途絶えた事を検知
【重要】欠落データの処理

アプリが完全に止まると、データがCloudWatchに届かなくなります。この「データの欠落」を「不正(異常)」として扱う設定にしないと、アラームが鳴らないので注意が必要です!

ステップ3:アラームアクションの連携

アラームが「ALARM(異常)」状態になった際のアクションとして、ステップ1で作ったSNSトピックを指定します。

【比較表】SNS vs SES どっちを使う?

試験で迷いやすい「通知サービス」の違いをまとめました。

サービス主な用途特徴
Amazon SNSシステムからの通知SMS、メール、プッシュ通知に対応。手軽。
Amazon SES本格的なメール配信Eメール特化。SMSは送信不可。マーケティング向け。

試験で役立つ!キーワード判別法

問題文に以下のフレーズがあれば、この構成が正解です!

  • 「即座に通知したい」→ Amazon SNS
  • 「モバイル/SMSで受け取りたい」→ Amazon SNS
  • 「コードの管理を最小限に(サーバーレスで」→ CloudWatcgh + SNS(Lamda不要)

今回の学び:攻略の格言

「監視の通知に迷ったらLamdaを自作する前にSNS。SESはメールのプロ、SMSならSNS!」

あとがき:一歩ずつ、合格へ

最後まで読んでいただき、ありがとうございました!

今回の問題を通して、「自分でコードを書く(Lamda)」よりも「AWSの既存の機能を繋ぎ合わせる」方が、運用コストも低く、エラーも起きにくいということを学びました。

SAAの試験では、「どれが一番スマート(効率的)か?」が常に問われます。自分の手で実装する楽しさもありますが、AWSが容易してくれた便利な道を使いこなせるようになりたいですね。

それでは、次回の記事でお会いしましょう!