カテゴリ: AWS 更新日: 2026/02/19

AWS CloudWatchアラームでリソースの異常を通知する方法|初心者向け監視・ログ完全入門

CloudWatchアラームでリソースの異常を通知する方法
CloudWatchアラームでリソースの異常を通知する方法

先生と生徒の会話形式で理解しよう

生徒

「AWSを使い始めたんですが、サーバーが止まったり負荷が高くなったことに気づく方法はありますか?」

先生

「AWSでは、CloudWatch(クラウドウォッチ)という監視サービスを使って、リソースの状態を自動で見張ることができます。」

生徒

「ずっと画面を見ていないといけないんですか?」

先生

「いいえ。CloudWatchアラームを設定すれば、異常が起きたときにメールなどで通知を受け取れます。」

生徒

「それなら初心者の自分でも安心してAWSを使えそうですね。」

1. CloudWatchとは何か

1. CloudWatchとは何か
1. CloudWatchとは何か

CloudWatchは、AWS上で動いているサービスやサーバーの状態を監視するための仕組みです。CPU使用率やメモリの動き、ネットワークの通信量など、目に見えない内部の情報を数値として集めてくれます。これらの情報はメトリクスと呼ばれ、AWSの監視やログ管理の基本となります。初心者にとっては、CloudWatchは「AWSの健康診断表」のような存在だと考えると分かりやすいでしょう。

2. CloudWatchアラームの役割

2. CloudWatchアラームの役割
2. CloudWatchアラームの役割

CloudWatchアラームは、メトリクスの数値が決めた条件を超えたときに動作します。例えば、CPU使用率が八十パーセントを超えた場合や、サーバーが応答しなくなった場合などです。アラームは自動で状態を判断し、異常が発生した瞬間に通知を送るため、人が常に監視し続ける必要がありません。AWS運用において、トラブルの早期発見に欠かせない機能です。

3. 監視できる主なAWSリソース

3. 監視できる主なAWSリソース
3. 監視できる主なAWSリソース

CloudWatchアラームは、さまざまなAWSリソースを対象に設定できます。代表的なのはEC2のCPU使用率やディスクの読み書き回数です。他にもRDSのデータベース負荷、ELBのリクエスト数、Lambdaの実行回数なども監視できます。これにより、サーバーだけでなく、AWS全体のシステム状況をまとめて把握できるようになります。

4. アラーム作成の基本的な流れ

4. アラーム作成の基本的な流れ
4. アラーム作成の基本的な流れ

CloudWatchアラームを作成する流れはとてもシンプルです。まず監視したいメトリクスを選びます。次に、その数値がどこまで上がったら異常とするか条件を決めます。最後に、異常時の動作を設定します。AWSの管理画面では画面に沿って進めるだけなので、専門知識がなくても操作できます。初めてでも安心して設定できる点が大きな特徴です。

5. 通知先として使われるSNS

5. 通知先として使われるSNS
5. 通知先として使われるSNS

CloudWatchアラームの通知には、SNSという仕組みがよく使われます。SNSは、通知をまとめて配信する役割を持っています。メールアドレスを登録しておけば、アラームが発生した瞬間に通知メールが届きます。これにより、AWSにログインしていなくても異常を把握できます。初心者の場合は、まず自分のメールアドレスに通知を送る設定から始めるのがおすすめです。

6. AWS CLIを使ったアラーム設定例

6. AWS CLIを使ったアラーム設定例
6. AWS CLIを使ったアラーム設定例

画面操作だけでなく、AWS CLIを使ってCloudWatchアラームを作成することもできます。CLIはコマンドで操作できるため、同じ設定を何度も行う場合に便利です。以下はEC2のCPU使用率を監視する例です。


aws cloudwatch put-metric-alarm \
--alarm-name HighCPUAlarm \
--metric-name CPUUtilization \
--namespace AWS/EC2 \
--statistic Average \
--period 300 \
--threshold 80 \
--comparison-operator GreaterThanThreshold \
--evaluation-periods 1

このようにコマンドを実行すると、条件を満たしたときに自動でアラームが動作します。最初は難しく見えますが、内容を一つずつ理解すれば怖くありません。

7. 初心者が気をつけたいポイント

7. 初心者が気をつけたいポイント
7. 初心者が気をつけたいポイント

CloudWatchアラームを使うときは、条件を厳しくしすぎないことが大切です。少し数値が変わっただけで通知が来ると、逆に混乱してしまいます。また、通知が届くかどうか事前にテストすることも重要です。AWSの監視設定は、一度作って終わりではなく、運用しながら調整していくものだと覚えておきましょう。

まとめ

まとめ
まとめ

AWS CloudWatchアラームは、クラウド環境の運用において「目」となり「声」となる非常に強力なツールです。本記事では、基本的な仕組みから監視対象の選定、そしてSNS(Simple Notification Service)を介した通知設定までを幅広く解説してきました。AWSリソースを安定して稼働させるためには、単にサービスを立ち上げるだけでなく、その後の「健康状態」をいかに効率よく見守るかが重要です。

監視運用の核心:メトリクスと閾値のバランス

CloudWatchにおける監視の基本は、メトリクスと呼ばれる数値データに基づいています。例えば、仮想サーバーであるEC2のCPU使用率が異常に高騰していないか、あるいはデータベースであるRDSのストレージ残量が不足していないかといった項目です。これらを監視する際、最も初心者が悩むポイントが「閾値(しきいち)」の設定です。

「八十パーセントを超えたら通知する」といったルールを定める際、あまりに敏感に設定しすぎると、一時的な負荷上昇でもアラームが鳴り響いてしまい、いわゆる「アラーム疲れ」を引き起こします。逆に緩すぎると、本当の障害に気づくのが遅れてしまいます。まずは標準的な数値を設定し、実際の稼働状況をグラフで確認しながら、自分のシステムに最適なラインを見つけるのが運用のコツです。

運用の自動化を支えるIaCとAWS CLI

手動で一つずつアラームを設定するのは、学習段階では非常に有効ですが、実際の業務で数十台、数百台のサーバーを管理するとなると現実的ではありません。そこで重要になるのが、記事内でも触れたAWS CLIやCloudFormation、Terraformといったツールを用いた自動化です。

例えば、以下のようなBoto3(Python用AWS SDK)ライブラリを使用したスクリプトを使えば、プログラムから動的にアラームを制御することも可能です。


import boto3

# CloudWatchクライアントの作成
cloudwatch = boto3.client('cloudwatch')

# EC2インスタンスのCPU使用率を監視するアラームを作成
def create_cpu_alarm(instance_id):
    cloudwatch.put_metric_alarm(
        AlarmName=f'CPU_Usage_Alarm_{instance_id}',
        ComparisonOperator='GreaterThanThreshold',
        EvaluationPeriods=2,
        MetricName='CPUUtilization',
        Namespace='AWS/EC2',
        Period=60,
        Statistic='Average',
        Threshold=75.0,
        ActionsEnabled=True,
        AlarmActions=[
            'arn:aws:sns:ap-northeast-1:123456789012:MyNotificationTopic'
        ],
        AlarmDescription='CPU使用率が75%を2回連続で超えた場合の通知',
        Dimensions=[
            {
                'Name': 'InstanceId',
                'Value': instance_id
            },
        ],
        Unit='Percent'
    )
    print(f"Alarm created for {instance_id}")

# 実行例
if __name__ == "__main__":
    create_cpu_alarm('i-0abcdef1234567890')

ログ監視と一元管理の重要性

数値データの監視だけでなく、CloudWatch Logsを利用した「ログ監視」も忘れてはいけません。サーバー内のシステムログ(/var/log/messagesなど)やアプリケーションのエラーログをCloudWatchに転送することで、特定の「Error」という文字列が出現した回数をカウントし、それをトリガーにアラームを飛ばすことができます。

これにより、「数値」には現れない「動作の不具合」もいち早く察知できるようになります。AWSマネジメントコンソール上のダッシュボード機能を活用すれば、これらの数値メトリクスとログ情報を一枚のパネルで可視化でき、インフラ全体の状況を一目で把握することが可能になります。

トラブルシューティングの第一歩

万が一、アラームが通知された場合は、まずCloudWatchのコンソールで該当のグラフを確認しましょう。急激な変化なのか、それとも緩やかに上昇し続けているのかによって、原因の切り分けがスムーズになります。また、通知が来ないと思ったら、SNSのサブスクリプション確認(承認メールのクリック忘れ)や、IAMロールの権限不足を疑ってみるのが定石です。

AWS CLIを使って現在の設定状況を確認するコマンドも覚えておくと、デバッグ時に非常に役立ちます。


aws cloudwatch describe-alarms --alarm-name-prefix HighCPUAlarm
{
    "MetricAlarms": [
        {
            "AlarmName": "HighCPUAlarm",
            "StateValue": "OK",
            "StateReason": "Threshold Crossed: 1 out of the last 1 data points [5.2 (31/01/26 01:20:00)] was not greater than the threshold (80.0).",
            "MetricName": "CPUUtilization",
            "Namespace": "AWS/EC2"
        }
    ]
}

監視設定は一度作れば終わりではありません。システムの成長や変化に合わせて、常に最適化し続けることが、安定運用の秘訣です。本記事をきっかけに、まずは身近なリソースに一つアラームを設定することから始めてみてください。その一歩が、将来的な大規模システムの安定稼働へと繋がっていきます。

先生と生徒の振り返り会話

生徒

「先生、CloudWatchアラームの全体像がかなり見えてきました!単に通知を送るだけじゃなくて、メトリクスの閾値を調整したり、ログも一緒に見たりするのが大切なんですね。」

先生

「その通りです。特に『なぜその数値でアラームを鳴らすのか』という根拠を持つことが、運用の現場では重要になってきます。最初はデフォルトの設定でも良いですが、慣れてきたら自分たちにとっての『異常』を定義してみてください。」

生徒

「プログラムから設定する方法も紹介されていて驚きました。手で一つずつ設定するよりも、スクリプトにした方がミスも減りそうです。PythonのBoto3を使えば、特定のタグが付いたサーバーに自動でアラームを適用するなんてこともできるんでしょうか?」

先生

「鋭いですね。まさにそれがエンジニアの仕事の醍醐味です。タグ情報を取得して、ループ処理で設定を流し込めば、何百台あっても一瞬で監視網を構築できますよ。AWS CLIでの確認方法も、コンソールが重い時やスクリプトを組む際に重宝するので、ぜひ手元で試してみてください。」

生徒

「ありがとうございます!まずは自分の開発環境で、わざと負荷をかけてみて、本当にメールが届くか試してみます。SNSの設定で、メールの承認を忘れないように気をつけますね。」

先生

「素晴らしい意気込みです。実際にアラームが飛んでくる瞬間を体験するのが一番の勉強になります。もし通知が多すぎて困ったら、次は複合アラームなどの応用機能についても一緒に学んでいきましょう。これからもAWSマスターを目指して頑張ってくださいね!」

カテゴリの一覧へ
新着記事
New1
AWS PrivateLink
AWS PrivateLinkのユースケースと業界別活用事例|セキュアな通信の決定版
New2
AWS PrivateLink
AWS PrivateLinkのログ取得とトラブル対応手順を完全ガイド!初心者でもわかるセキュアな接続確認方法
New3
ファイル・ディレクトリ構造
Linuxの/etcディレクトリとは?設定ファイルの役割を初心者向けに徹底解説
New4
AWS Lambda
AWS Lambdaでログを確認する方法を完全解説!CloudWatch Logsで初心者でも安心運用
人気記事
No.1
Java&Spring記事人気No1
S3(オブジェクトストレージ)
AWS S3の料金体系をわかりやすく解説
No.2
Java&Spring記事人気No2
Linux ディストリビューション
Linuxディストリビューションとは?OSとの関係や初心者におすすめの種類を徹底解説!
No.3
Java&Spring記事人気No3
ELB(ロードバランサー)
AWS ELBでターゲットグループを設定する方法を初心者向けに解説!
No.4
Java&Spring記事人気No4
シェルとターミナル基礎
findコマンドの使い方を完全ガイド!初心者でもわかるLinuxのファイル検索の基本
No.5
Java&Spring記事人気No5
Linux ディストリビューション
Ubuntuとは何か?特徴と向いている用途を初心者向けに徹底解説!
No.6
Java&Spring記事人気No6
AWS 基本
AWSのサービスのステータス確認方法(AWS Health Dashboard)
No.7
Java&Spring記事人気No7
RDS(データベース)
AWS RDSのセキュリティグループ設定方法を解説!初心者でも安心のクラウドデータベース対策
No.8
Java&Spring記事人気No8
ELB(ロードバランサー)
AWSのNetwork Load Balancer(NLB)の特徴と使い方を解説!初心者向けロードバランサー入門