
AWSのCloudWatchとは?種類、料金、設定方法を解説!
AWSで作成したEC2やRDSを監視するのにAmazonCloudWatchを使うって良く聞くけど、CloudWatchってなに?CloudWatchってどうやって設定するの?今日はこんな疑問に答えていきます。
AWSの監視サービスといえばCloudWatchですよね。
EC2やRDSはもちろん、エージェントを使えばオンプレミスの監視も出来ちゃう優れもの。
ただ、AWS初心者にとってはどういうことをしているかイマイチ分かりにくいと思うので、今回は以下の3つを分かりやすく解説していこうと思います。
- CloudWatchの6つの種類
- CloudWatchの料金
- CloudWatchアラームの設定方法
目次
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へ移動①
AWSにログイン後、左上の検索窓をクリックします。
4-2-2.Amazon SNSへ移動②
検索窓に『SNS』と入力し、Simple Notificatin Serviceをクリックします。
4-2-3.SNSトピックの作成①
Amazon SNSに移動出来たら、左にある『トピック』を選択し、その後右上の『トピックの作成』をクリックします。
4-2-4.SNSトピックの作成②
SNSトピックを以下のように作成していきます。
①タイプ:スタンダード
②名前:任意の名前
③表示名:任意の表示名(記入しなくても可)
④最後に『トピックの作成』をクリックします
4-2-5.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をクリックします。
4-3-2.メトリクスの条件と指定①
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アラームの作成完了①
これでアラームを作成することが出来ました。最初は状態がデータ不足になってますが、5分後に更新されます。
4-3-12.CloudWatchアラームの作成完了②
こちらが5分後の画面です。状態がOKになってます。
4-4.CPU使用率を上昇させて、シナリオを実行する
準備が整ったところでいよいよアラームを発報させていきます!
4-4-1.EC2へSSh接続する
以下のサイトの『3.作成したEC2にssh接続してみよう!』を参考にEC2へssh接続します。
関連記事4-4-2.CPU使用率の確認①
以下のコマンドを実行してCPU 使用率を確認します。
top
4-4-3.CPU使用率の確認②
赤枠で囲った箇所がCPU使用率です。まだ0です。
4-4-4.CPU使用率を上げよう
以下のコマンドを実行してCPU 使用率を上昇させます。
yes >> /dev/null &
4-4-5.CPU使用率の確認③
再度、以下のコマンドで実行してCPU 使用率が 80 %を超過していることを確認します。
top
CPU使用率が100になりました。このまま5分間放置するとCloudWatchアラームが作動してEC2を停止させるので、しばらくするとTera Termが閉じます。
4-4-6.CloudWatchアラームの確認
EC2のCPU使用率を80%以上にしてから5分後、CloudWatchアラームの状態が『アラーム状態』になりました。
4-4-7.EC2の確認
設定していたアクションの通り、EC2が停止済みになっています。
4-4-8.EC2の確認
4-2で設定したEメールアドレスにもアラームの内容が通知されてました。これで終了です。お疲れ様でした。
5.終わりに
今回はCloudWatchの種類や料金、アラームの設定方法を解説しました。EC2やRDSなどの様々なリソースを管理出来るCloudWatch。AWSでサービスを提供する時はほぼ確実にCloudWatchが使われています。
簡単でいいので自分でアラームの設定などをやっておけば実務でやる時も焦らず出来るので、一度ハンズオンなどで設定するのをオススメします。
コメント