AWS上のサービスを監視する「Amazon CloudWatch」の実力は?

システムを安定的に運用するためにはリソースの稼働状況監視は欠かせません。それは、AWSのようなクラウド環境にシステムが置かれている場合においても同様です。また、AWS上で稼働するサービスが大規模になればなるほど、一括集中管理の必要性も高まるでしょう。今回は、AWS上で利用しているサービスの稼働状況を可視化でき、統合的なシステム監視を実現する「Amazon CloudWatch」について解説します。

Amazon CloudWatchとは

Amazon CloudWatchとは、AWS上で動作している各サービスを監視するサービスです。AWS上で稼働しているシステムの重要度が高まってくると、システムの安定稼働を維持するための監視は欠かせません。企業によっては、事業活動を継続的に行っていくために、特に止まることが許されないシステムが稼働しているかもしれません。従来、システム管理をするためには、オープンソースのZabbixなどのシステム監視ツールが利用されてきました。(現在でも利用されています。)しかし、AWSの場合は、Amazon CloudWatchが運用監視サービスとして標準で準備されています。
システム監視には、「即時にシステム異常を検知し、障害の時間を最小化する」役割と、「サーバーのリソース利用率をモニタリングし、最適なリソース配分を実現するための情報を提供する」という役割があります。Amazon CloudWatch はその両方の役割を果たすことができます。また、AWS上で複数の仮想サーバーやサービスを稼働させている場合でも、Amazon CloudWatchを使えば、監視に必要な情報を統合的に管理し、単一のプラットフォームでシステム監視を実現できるのです。
Amazon CloudWatchには、5つの柱となるサービス(機能)があります。

Amazon CloudWatch

Amazon CloudWatchは、AWSで使っているリソースの稼働状況を監視します。CPUやメモリの使用状況、利用料金の変化なども監視することができます。EC2のインスタンスを立ち上げれば使える状況になっており、導入作業やインストールの必要はありません。なお、よく使う項目は、標準メトリクスとして取得できますが、標準では準備されていないメトリクスは、後述するAmazon CloudWatch Logsを各サーバーにインストールすることで取得対象にすることができます。

Amazon CloudWatch Dashboard(ダッシュボード)

ダッシュボード上に、グラフィカルなグラフでAWS上のサービスとアプリケーションログを統合的に可視化できます。また、ダッシュボード上の表示はカスタマイズできるため、複数のリージョンにまたがるリソースやアプリケーションを監視したり、必要な情報のみを表示させたりといった、業務に応じた可視化を実現することができます。

Amazon CloudWatch Alarm(アラーム)

監視するメトリクスが特定のしきい値を超えた場合に メールを送信するなどの通知アクションを実行します。

Amazon CloudWatch Logs(ログ)

エージェントを各サービスにインストールすることで、必要なメトリクスやログを収集し、統合的な監視対象とすることができます。独自のアプリケーションや標準メトリクスにない項目を監視対象にする場合に利用します。さらに、Amazon CloudWatch Logs Insightsを使えば、高度な分析も可能です。

Amazon CloudWatch Events (イベント)

リソースの変更を示すシステムイベントをリアルタイムに取得し、イベントに応じたアクションを自動化したりスケジューリングしたりすることができます。

一般的な監視システムとの違い

Amazon CloudWatch は、オープンソースのZabbixなどの監視ツールとどのような違いがあるのでしょうか。
Amazon CloudWatch は、AWSが提供するサービスなので、AWSの各サービスとの親和性が高く(各サービスの仕様変更への対応など。)、AWS サービスの監視には最適と言えるでしょう。また、Amazon CloudWatch は、先述のとおり、標準メトリクスを監視する場合、監視ソフトウェアなどの調達やインストールが不要であり、設定のみで利用できることもメリットの一つです。また、CPU使用率など一般的なメトリクスの収集であれば無料で使うことができます。
一方で、AWS以外のシステムを含めて統合的(一元的)に監視したい場合においては、AWS CloudWatchのみで監視することは現実的ではありません。もちろん、利用しているクラウドサービスやオンプレミスシステムごとに異なるシステム監視サービス(ツール)を使い分けるといった選択肢もありますが、複数の監視ツールでのシステム全体の監視には切り替えや監視データの統合などの手間もかかります。
複数のクラウドサービスやオンプレミスシステムを統合的に監視する場合には、従来型の監視ツールを使うことも検討してみましょう。Zabbixのようなシステム監視ツールのなかには、連携機能として代表的なクラウドサービスを監視対象とすることができるものもあり、複数のクラウドサービスやオンプレミスシステムが混在する環境における統合的な監視が実現できるでしょう。

Amazon CloudWatchを利用するメリット

AWS上の仮想サーバーやサービスとの親和性が高いAmazon CloudWatchですが、もう少し具体的にメリットを見てみましょう。

メトリクスの収集、追跡

メトリクスとは、AWSのサービスやアプリケーションを監視することで得られる、パフォーマンスを示すデータです。メトリクスの例として、仮想サーバーのCPU使用率が挙げられます。システムが吐き出すログの場合にはそのログを分析する必要がありますが、メトリクスであればリソースやアプリケーションの状況が一目で把握できます。メトリクスは、AWSで標準装備されている組み込みメトリクスだけではなく、ユーザーがAPI等を用いて独自のカスタムメトリクスとして設定することもできます。

統合管理

リソース、アプリケーション、サービスのログとメトリクスをほぼリアルタイムに、単一のコンソール上で確認できます。個々のシステムやアプリケーション (サーバー、ネットワーク、データベースなど) を個別にモニタリングする必要はありません。

分析とアクション

15 ケ月間保存および保持できるメトリクスデータを、季節イベントなどの外部環境要因(が現れた過去のデータや外部データ)と突き合わせることで高度な分析も可能となります。ほぼリアルタイムでシステム稼働状況を確認できるため、将来の障害を予見するようなデータ事前に把握していれば、障害を未然に防ぐオペレーションなどを行うこともできるでしょう。また、イベントを監視して、設定したルールに応じた必要なアクションを自動化することもできます。

Amazon CloudWatchの料金

Amazon CloudWatchには初期費用や、毎月発生する固定費は必要ありません。ほかのAWS上のサービスと同様に従量課金制となっており、利用した量に応じて料金が発生します。利用量は、主に以下の要素に依存します。

メトリクス

各サービスからAmazon CloudWatchに送信されたメトリクスの量に応じて請求されます。基本モニタリングのメトリクス (5 分間隔)や詳細モニタリングのメトリクス 10 個 (1 分間隔)といった無料枠が準備されているため、まずは無料の範囲で監視を始めてもよいでしょう。

ダッシュボード

毎月最大 50 個のメトリクスに対応するダッシュボード が3 個までであれば無料で利用することができます。ダッシュボードを追加して利用する毎にダッシュボード利用料がかかります。

アラーム

10件のアラームメトリクスまでは無料枠の範囲内です。ただし、高分解能アラームには適用されません。追加する場合には、1アラーム毎の利用料が請求されます。

ログ

EC2で設定されているデータ転送量と同じ金額がかかります。5GBデータまでは無料で利用できます。

イベント

イベント100万件毎の料金がかかりますが、カスタムイベントを除く、すべてのイベントが無料です。

AWS上のシステム監視をするならAmazon CloudWatchを検討しよう

AWS上のサービスの監視に必要な機能を網羅しているAmazon CloudWatchを上手に活用することによって、障害の未然防止、リソースの最適配分によるユーザーの利便性向上などが期待できます。また、現在の稼働状況の可視化や高度な分析により、将来のリソース最適化や新たなシステム導入の参考材料として活用することもできるでしょう。AWSで利用しているサービスを統合的にシステム監視するならば、Amazon CloudWatchを検討してみてください。

Amazon Web Services(AWS)、Microsoft Azureの
導入支援サービスのご相談、お問い合わせをお待ちしております。

ページ上部へ戻る