AWSのCloudWatchとは?6つの種類と設定方法を解説!

AWSのCloudWatchとは?6つの種類と設定方法を解説!

髙橋 瑛博

フロントエンジニア/エンジニア歴1年11ヶ月/サバゲー部

AWSで作成したEC2やRDSを監視するのにAmazonCloudWatchを使うって良く聞くけど、CloudWatchってなに?CloudWatchってどうやって設定するの?今日はこんな疑問に答えていきます。

AWSの監視サービスといえばCloudWatchですよね。EC2やRDSはもちろん、エージェントを使えばオンプレミスの監視も出来ちゃう優れもの。ただ、AWS初心者にとってはどういうことをしているかイマイチ分かりにくいと思うので、今回は以下の3つを分かりやすく解説していこうと思います。

  • CloudWatchの6つの種類
  • CloudWatchの料金
  • CloudWatchアラームの設定方法
tiktokの配信を見る

1.Amazon CloudWatchとは?

CloudWatchはEC2やRDSなどのAWSサービスやオンプレミスのサーバーなどを監視出来るサービスです。

各AWSリソースの変更をトリガーに何かアクションを起こしたり(CloudWatchイベント)、EC2のCPU使用率やディスクの読み取り量などを記録・監視する(CloudWatchメトリクス)ことが可能です。

各サービスの詳しい説明は第2章でおこないます。


2.CloudWatchの6つの種類と料金をそれぞれ解説

それではAmazon CloudWatchの各サービスをそれぞれ分かりやすく解説して行きます。

今回解説するのは以下の7つです。

  • CloudWatchメトリクス
  • CloudWatchエージェント
  • CloudWatchログ
  • CloudWatchアラーム
  • CloudWatchイベント
  • CloudWatchダッシュボード

2-1.CloudWatchメトリクス

メトリクスとは各リソースから収集したデータを時系列でまとめたものです。

例えば、以下のようなメトリクスがあります。

  • EC2のCPU使用率やネットワークの通信料、ステータスのチェック合格したかどうかの報告
  • RDSのディスク容量やデータベースへのネットワーク接続数、空いているストレージ領域
  • ALBのアクティブな同時接続やエラーコードの数、正常または異常と見なされるターゲットの数

2-2.CloudWatchエージェント

CloudWatchエージェントは追加のメトリクスを収集した時に使用するサービスです。

標準のメトリクスでは「EC2」のデータしか収集できませんが、エージェントを使用すれば「EC2の中で動いているアプリケーション」のデータや「EC2の中のログ」を収集することができます。

また、オンプレミスのサーバーにCloudWatchエージェントを導入すればAWS外のデータも集めることが出来ます。

2-3.CloudWatchログ

CloudWatchログはログを文字列として保存したり、ログに特定の文字列があった際にアラームを出すことが出来るサービスです。AWS CloudTrail、Amazon Kinesis Data Streams、AWS Lambdaからログを収集することが可能です。

また、CloudWatchエージェントを使用すればEC2内のアプリケーションやオンプレミスのサーバーからもログを集める事が出来ます。

2-4.CloudWatchアラーム

1つ、または複数のメトリクスが特定の値になった時にアラームを出すことが出来るサービスです。

例えば、以下のようなアラームを設定することが出来ます。

  • EC2 の CPU 使用率が5分間、 80% を上回っているとき
  • ログに「Out of Memory」という文字列が 1時間で 2 回出現したとき
  • RDS のディスク空き容量が残り 10GB 未満になって 5 分間そのままのとき

2-5.CloudWatchイベント

CloudWatchイベントはAWSリソースの変更やAPIの特定のイベントをトリガーとしてアクションの実行を自動化出来るサービスです。例えば、EC2インスタンスが新しく作成されたのをトリガーとして「0.0.0.0/0」のインバウンドルールが適用されていないかを確認し、もし適用されていたらEC2をシャットダウンするようなアクションを設定できます。

2-6.CloudWatchダッシュボード

メトリクス、アラーム、イベントを自分の好きなようにカスタマイズして表示できるサービスです。

別のリージョンのメトリクスなどもカスタマイズ可能なので、やろうと思えば全てのAWSリソースの監視を一つを画面ですることが出来ます。 


3.CloudWatchの料金

CloudWatchはほとんどのサービスを無料枠で使うことが出来ます。無料枠と有料枠をそれぞれ紹介します。(2022/10/1現在)

3-1.無料枠

・メトリクス

基本モニタリングのメトリクス (5 分間隔)
詳細モニタリングのメトリクス 10 個 (1 分間隔)
100 万の API リクエスト (GetMetricData および GetMetricWidgetImage には適用されません)

・ダッシュボード

毎月最大 50 個のメトリクスに対応するダッシュボード 3 個

・アラーム      

10 件のアラームメトリクス (高分解能アラームには適用されません)

・ログ             

5 GB データ (取り込み、ストレージのアーカイブ、Logs Insights クエリによってスキャンされたデータ)

・イベント      

カスタムイベントを除くすべてのイベントが対象

3-2.有料枠

今回は東京リージョンでの費用を紹介します。

・詳細モニタリングのメトリクス

最初の10,000メトリクス:0.30USD
次の 240,000メトリクス:0.10USD
次の 750,000メトリクス:0.05USD
1,000,000を超えるメトリクス:0.02USD

・ダッシュボード

1 か月当あたりのダッシュボード1つあたり:3.00USD

・アラーム

標準解像度メトリックアラーム1つあたり:0.10USD
高解像度メトリックアラーム1つあたり:0.30USD
複合アラーム1つあたり:0.50USD

・ログ

収集 (データの取り込み):0.76USD/GB
保存 (アーカイブ):0.033USD/GB

・イベント

カスタムイベントイベント:1.00USD/100万イベント
クロスアカウントイベント:1.00USD/100万イベント


4.CloudWatchアラームの設定方法を解説!

今回はEC2のCPU使用率が80%を超えたらEC2の停止とEmail連絡を自動でしてくれるCloudWatchアラームを作成しようと思います。

4-1.EC2インスタンスの作成

まず、以下のサイトの『2.Amazon EC2の作成手順』を参考にEC2を作成します。

関連記事

4-2.SNSの設定

SNSの設定では主にEmailの登録を行います。

4-2-1.Amazon SNSへ移動①

Amazon SNSへ移動①

AWSにログイン後、左上の検索窓をクリックします。

4-2-2.Amazon SNSへ移動②

Amazon SNSへ移動②

検索窓に『SNS』と入力し、Simple Notificatin Serviceをクリックします。

4-2-3.SNSトピックの作成①

SNSトピックの作成①

Amazon SNSに移動出来たら、左にある『トピック』を選択し、その後右上の『トピックの作成』をクリックします。

4-2-4.SNSトピックの作成

SNSトピックの作成②

SNSトピックを以下のように作成していきます。

タイプ:スタンダード
名前:任意の名前
表示名:任意の表示名(記入しなくても可)
最後に『トピックの作成』をクリックします

4-2-5.SNSトピックの作成完了SNSトピックの作成完了

これでSNSトピックが作成出来ました。次は右側の『サブスクリプションの作成』をクリックして、Eメールアドレスを登録します。

4-2-6.サブスクリプションの作成サブスクリプションの作成

サブスクリプションを以下のように作成していきます。

トピックARN:3-2-4で作ったSNSトピックを選択
プロトコル:Eメールを選択
エンドポイント:アラームを受信したいメールアドレスを入力
最後に『サブスクリプションの作成』をクリックします

4-2-7.サブスクリプションの作成完了サブスクリプションの作成完了

サブスクリプションを作成することが出来ました。作成したら設定したEメールアドレスに確認のメールが届きます。

4-2-7.サブスクリプションの有効化サブスクリプションの有効化

サブスクリプションの確認メールが届いたら、『Confirm subscription』をクリックして、サブスクリプションを有効化します。

4-2-8.サブスクリプションの有効化の完了

サブスクリプションの有効化の完了①

『Confirm subscription』をクリックすると、このような完了画面が表示されます。

4-2-9.サブスクリプションの有効化の完了②サブスクリプションの有効化の完了②

また、SNSトピックのコンソール画面のステータス欄でもサブスクリプションが有効になったのを確認できます。これにてAmazon SNSの設定は完了です。

4-3.CloudWatchアラームの設定

Amazon SNSの次はCloudWatchの設定をしていきます。

4-3-1.CloudWatchへ移動CloudWatchへ移動

検索窓に『CloudWatch』と入力し、CloudWatchをクリックします。

4-3-2.メトリクスの条件と指定①CloudWatchアラームの作成

CloudWatchに移動したら左側の『アラーム状態』をクリックし、その後右側の『アラームの作成』をクリックします。

4-3-3.メトリクスの条件と指定①メトリクスの条件と指定①

『メトリクスの選択』をクリックします。

4-3-4.メトリクスの条件と指定

メトリクスの条件と指定②

メトリクスを以下のように選択していきます。

検索窓に『CPUUtilization』と入力
4-1で作成したEC2を選択
『メトリクスの選択』をクリック

4-3-5.メトリクスの条件と指定

メトリクスの条件と指定③

統計を最大にし、下にスクロールします。

4-3-6.メトリクスの条件と指定

メトリクスの条件と指定④

条件を以下のように設定していきます。

CPUUtilizationが次の時…:以上を選択
②…よりも:80に設定
最後に『次へ』をクリック

4-3-7.アクションの指定①

アクションの指定①

通知の連絡先に3-2で作成したSNSトピックを選択し、下にスクロールします。

4-3-8.アクションの指定②アクションの指定②

EC2アクションで『このインスタンスを停止』を選択し、『次へ』をクリックします。

4-3-9.名前と説明を追加

名前と説明を追加

アラーム名とアラームの説明に任意の文言を設定し、『次へ』ボタンをクリックします。

4-3-10.プレビューと作成

プレビューと作成

この画面で作成しようとしているCloudWatchアラームの確認が出来ます。確認が終わったら下にスクロールして『アラームの作成』をクリックします。

4-3-11.CloudWatchアラームの作成完了

CloudWatchアラームの作成完了①

これでアラームを作成することが出来ました。最初は状態がデータ不足になってますが、5分後に更新されます。

4-3-12.CloudWatchアラームの作成完了

CloudWatchアラームの作成完了②

こちらが5分後の画面です。状態がOKになってます。

4-4.CPU使用率を上昇させて、シナリオを実行する

準備が整ったところでいよいよアラームを発報させていきます!

4-4-1.EC2へSSh接続する

以下のサイトの『3.作成したEC2にssh接続してみよう!』を参考にEC2へssh接続します。

関連記事

4-4-2.CPU使用率の確認①

CPU使用率の確認①

以下のコマンドを実行してCPU 使用率を確認します。

top

4-4-3.CPU使用率の確認②

CPU使用率の確認②

赤枠で囲った箇所がCPU使用率です。まだ0です。

4-4-4.CPU使用率を上げよう

CPU使用率を上げよう

以下のコマンドを実行してCPU 使用率を上昇させます。

yes >> /dev/null &

4-4-5.CPU使用率の確認③

CPU使用率の確認③

再度、以下のコマンドで実行してCPU 使用率が 80 %を超過していることを確認します。

top

CPU使用率が100になりました。このまま5分間放置するとCloudWatchアラームが作動してEC2を停止させるので、しばらくするとTera Termが閉じます。

4-4-6.CloudWatchアラームの確認

CloudWatchアラームの確認

EC2のCPU使用率を80%以上にしてから5分後、CloudWatchアラームの状態が『アラーム状態』になりました。

4-4-7.EC2の確認

EC2の確認

設定していたアクションの通り、EC2が停止済みになっています。

4-4-8.EC2の確認

EC2の確認2

4-2で設定したEメールアドレスにもアラームの内容が通知されてました。これで終了です。お疲れ様でした。


5.終わりに

今回はCloudWatchの種類や料金、アラームの設定方法を解説しました。EC2やRDSなどの様々なリソースを管理出来るCloudWatch。AWSでサービスを提供する時はほぼ確実にCloudWatchが使われています。

簡単でいいので自分でアラームの設定などをやっておけば実務でやる時も焦らず出来るので、一度ハンズオンなどで設定するのをオススメします。

私たちは、全てのエンジニアに市場価値を高め自身の望む理想のキャリアを歩んでいただきたいと考えています。もし、今あなたが転職を検討しているのであればこちらの記事をご一読ください。理想のキャリアを実現するためのヒントが見つかるはずです。

『技術力』と『人間力』を高め市場価値の高いエンジニアを目指しませんか?

私たちは「技術力」だけでなく「人間力」の向上をもって遙かに高い水準の成果を出し、関わる全ての人々に感動を与え続ける集団でありたいと考えています。

高い水準で仕事を進めていただくためにも、弊社では次のような環境を用意しています。

  • 定年までIT業界で働くためのスキル(技術力、人間力)が身につく支援
  • 「給与が上がらない」を解消する6ヶ月に1度の明確な人事評価制度
  • 平均残業時間17時間!毎週の稼動確認を徹底しているから実現できる働きやすい環境

現在、株式会社ボールドでは「キャリア採用」のエントリーを受付中です。

まずは以下のボタンより弊社の紹介をご覧いただき、あなたの望むキャリアビジョンをエントリーフォームより詳しくお聞かせください。

コメント

文系IT未経験歓迎!株式会社ボールドの 採用エントリー を受付中!
文系IT未経験歓迎!
株式会社ボールドの 採用エントリー を受付中!