オンプレミスでもクラウドでも、環境を構築したら次に行うべきことは、システムの監視など運用管理面の整備です。豊富なサービスが存在するAWSには、もちろん運用管理で使うツールもあります。今回はその中でも代表的な監視ツール「Amazon CloudWatch」について解説していきます。
目次
CloudWatchとは何か
CloudWatchとは、AWSが提供する運用監視サービスです。Amazon EC2(以降、EC2)などのAWSサービスのリソースの状態やログを監視し、異常が発生した場合やリソースの状態が一定のしきい値を超えた場合、ログで特定のキーワードを検出した場合などにアラートを通知するなど、状態に応じたアクションを取ることができます。
CloudWatchは大きく分けると、リソースを監視するCloudWatch、ログを集めて監視するCloudWatch Logs、CloudWatchのメトリクス(監視対象の設定)やログを収集し、メールなどで通知を行うCloudWatch Alarm、そしてAWSのAPIの状態の変化によるイベントやスケジュールでアクションを発生させるCloudWatch Eventsの4つに分類することができます。
本記事では、特に断りがない場合、単にCloudWatchと表記した場合は上記4つのサービスの総称を指すものとします。
CloudWatchでできること
CloudWatchでは具体的にどのようなことができるのか、サービス別にご紹介します。
CloudWatch
CloudWatchでは、EC2やAmazon RDS(以降、RDS)などAWS上で動作する各サービスのリソースを監視できます。例えば、EC2のCPU使用率やネットワークトラフィック、メモリ使用率を監視し、それを統計情報として保存することができます。
CloudWatch Logs
CloudWatch Logsは、その名の通りログに関する機能に特化しており、専用のエージェントプログラムをインストールしたシステムのログを収集、分析することができます。収集したログは管理画面で可視化、分析を行うこともできます。
収集から一定期間が経過したログは、ログローテートやAmazon S3(以降、S3)などに移動させることも可能です。
CloudWatch Alarm
CloudWatchのメトリクスやログから、ある一定の条件に当てはまった場合にメール送信などで通知をすることができます。
例えば、Webサーバとして構築したEC2インスタンスのCPU使用率が80%を超えた場合にメールで通知する、RDSのディスク容量が90%を超えた場合にメールで通知する、というような利用が可能です。
CloudWatch Events
スケジュールベースや、AWSのAPIをトリガーとしてアクションを起こすことができます。APIをトリガーとするというと少し聞きなれないかもしれませんが、AWSのサービスはAPIを実行することでさまざまな処理を行っています。わかりやすい例を挙げると、停止しているEC2インスタンスを起動する場合にもAPIが使われます。これをCloudWatch Eventsで監視すると、インスタンスが起動したときにアクションを起こすという設定ができます。アクションは、AWS Lambdaと連携してプログラムの実行や、メールを送信することができます。
Lambdaについては、詳しく説明した記事を公開していますので、興味のある方はこちらもご覧ください。
CloudWatchの利用をオススメする理由
システムのリソース状況を監視して、しきい値を超えたらアラートのメールを送信するという監視ツールは、従来から存在しています。中には、わざわざAWSでCloudWatchを使うより、今まで使ってきた監視ツールをそのまま使い続けたいという方もいるでしょう。そこで、CloudWatchの利用をオススメする理由を3つご紹介します。
①システムの増強に応じて監視対象が自動で設定される
従来の監視ツールは、あらかじめ設定された監視対象を順番に見ていくタイプがほとんどです。この場合、システム増強でサーバを増やした場合などは、そのたびに監視ツールに監視対象の設定を追加する必要があります。手動で増強する場合ならそれでも対応はできますが、Auto Scalingを使ってサーバの負荷状況に合わせて自動的にサーバが増減する場合は、そのたびに手作業で監視対象の設定を変更するのは現実的ではありません。一方CloudWatchはこうした自動的なシステム増強にも対応して監視対象に含めてくれます。
②AWSのマネージドサービスにも対応している
通常、監視ツールで監視する項目といえば、CPU・メモリ・ディスクの使用率、ネットワークのトラフィック、死活監視とさまざまですが、どれもサーバ、ストレージ、スイッチやファイアウォールなどの機器の中にあるものを監視しています。ところが、AWSではそのような機器としては存在しないマネージドサービスというものが多数あります。機器としては存在しないものを従来のツールで監視するのは困難です。CloudWatchはこれらマネージドサービスの監視にも対応しています。
③AWSの様々なサービスと連携できる
先に紹介したCloudWatch Logsで収集したログのS3への移行や、CloudWatch EventsでLambdaを実行するというのもここに含まれます。もちろんそれだけではなく、S3へ移行したログをさらにその先でAWSの別のサービスを使って分析を行うこともできますし、発想次第で様々な応用が可能です。
- Cloud Watchの活用例
-
以下記事に、実際の運用でCloudWatchを活用する例が記載してあります。是非参考にしてみてください。
AWS活用法 | 【AWS入門】Amazon CloudWatchを活用してシステム監視を自動化しよう!
CloudWatchの料金
CloudWatchは、ほかのAWSのサービスと同様に無料利用枠が存在し、無料利用枠を超えた分は従量課金制で使った分だけ料金を支払う仕組みです。
無料利用枠は、下記表のとおりです。
機能 要件 メトリクス 基本モニタリングのメトリクス(5分間隔)
詳細モニタリングのメトリクス10個(1分間隔)ダッシュボード 毎月最大50個のメトリクスに対応するダッシュボード3個 アラーム 10件のアラームメトリクス ログ 5GBのデータ イベント カスタムイベントを除くすべてのイベント 無料利用枠を超えると、下記の料金となります。
機能 要件 料金 料金単位 メトリクス 最初の10,000メトリクス $0.30 メトリクス/月 次の240,000メトリクス $0.10 次の750,000メトリクス $0.05 1,000,000を超えるメトリクス $0.02 ダッシュボード ダッシュボード1個 $3.00 月額 アラーム 標準分解能(60秒) $0.10 アラーム 高分解能(10秒) $0.30 標準解像度異常検出 $0.30 アラームメトリクス 高解像度異常検出 $0.90 アラーム 複合 $0.50 アラームメトリクス ログ データの取り込み $0.76 1GBあたり データの保存 $0.033 分析 $0.0076 スキャンしたデータ1GBあたり イベント カスタムイベント $1.00 イベント100万件あたり クロスアカウントイベント $1.00 ここでは、2021年10月時点の東京リージョンの料金の一部を掲載しております。料金に関する詳細および最新の情報は、AWS公式サイト をご覧ください。
CloudWatchの利用料金例
料金例① EC2の詳細モニタリング
24時間365日アプリケーションが実行されているAmazon EC2インスタンス10台に対し、7つのメトリクスでEC2詳細モニタリングを行う場合
料金にかかる要素 備考 メトリクスの合計数 70 7メトリクス×10インスタンス 料金 備考 CloudWatchの月額料金 $18(¥1,980) $0.30 ×(70メトリクス - 無料利用枠10メトリクス) - ※ $1=¥110としています。
料金例② ログを使用したモニタリング
1日で1GBのアクセスログが生成されるウェブサーバの、アクセスログを使用してHTTP 2xx、3xx、4xxのレスポンスコードをモニタリングし、そのデータを1か月間アーカイブ保存する場合(1か月を30日、アーカイブされたデータは20%に圧縮されると想定)
料金にかかる要素 備考 取り込まれたログデータの合計 30GB 1GB×30日 アーカイブされたログの合計 6GB 30GB×0.2 料金 備考 取り込まれたログの月額料金 $19 5GBまでは無料利用枠適用 モニタリングの月額料金 $0 メトリクスが3個までなので、無料利用枠内 アーカイブされたログの月額料金 $0.03 5GBまでは無料利用枠適用 CloudWatchの月額料金 $19.03(¥2,093) $19 + $0 + $0.03 - ※ $1=¥110としています。
料金例③ 異常検出によるアラーム
1か月あたり5つの標準解像度異常検出のアラームメトリクス(以下、標準解像度メトリクス)で異常検出時にアラームを出すようにする場合
異常検出アラームには、それぞれ3つの標準解像度メトリクスがあります。1つは評価される実際のメトリクス、2つ目は予想される動作の上限、3つめは予想される動作の下限です。
料金にかかる要素 備考 異常検出アラームあたりの標準解像度メトリクス 3 - 実際のメトリクス
- 予想される動作の上限
- 予想される動作の下限
料金 備考 5つの標準解像度の異常検出アラームの月額料金 $1.50 $0.10×3メトリクス×5アラーム CloudWatchの月額料金 $1.50(¥165) - ※ $1=¥110としています。
AWSの運用管理はお任せください!
CloudWatchはAWSのシステム監視ツールとして非常に便利ですが、様々なサービスに細分化されていたり、料金体系も複雑です。また、他のAWSのサービスと組み合わせて使いたい場合は、AWSの知識や構築スキルが問われます。更にそれらを構築した後で、正しく運用していくのにも、人的リソースや運用管理の知識が必要です。もしこれらの課題をすべてクリアするのが難しい場合は、専門業者に頼むのも一つの手段です。TOKAIコミュニケーションズでは、AWS運用管理サービス を提供しております。これから新規でAWS上にシステムを構築する場合でも、既存のシステム上で運用管理の導入をお考えの方も、是非お気軽にご相談 ください。
関連サービス
おすすめ記事
-
2020.06.23
Amazon Connectで在宅勤務でも対応できる問合せ窓口を立ち上げてみた
-
2020.08.17
Datadogで実現するモニタリングとオペレーションのオートメーション化
-
2020.04.27
Amazon FSx for Windows ファイルサーバーへの移行と活用方法
-
2020.06.11
Amazon WorkSpacesとは?その特長をまとめてみた
-
2020.06.23
AWSのDevOpsサービスと当社マネージドサービスを活用したDevOpsの実装①~概念編~