2020/12/11

AWSのCloudWatchとは?システム監視ツールの比較や導入メリットをご紹介

 
  

各AWSサービスを監視する「Amazon CloudWatch」の概要

従来からシステムを安定的に運用するために、サーバやアプリケーション等の各種リソースの稼働状況を様々な数値を参照することで監視してきました。

こういったシステムの稼働状況の判断指標とする数値を「メトリクス」と呼んでいます。

一般的なメトリクスは、サーバOSの場合は「CPU使用率」、「メモリ使用量」、「ディスク使用率」等があり、アプリケーションの場合は「メモリ使用量」、「スレッド数」、「レスポンス」等があります。

AWS(Amazon Web Services)のようなクラウド環境でもメトリクスの監視は必要になりますが、従来のオンプレミス環境とは異なる監視方法が必要になります。

こちらの記事では、AWSが提供しているシステム監視サービス「Amazon CloudWatch」について、その機能や特徴、利用方法を解説していきます。

「Amazon CloudWatch」とは?

「Amazon CloudWatch」とは、AWS上のサービスの監視に最適化された、いわゆるシステム監視サービスです。

「Amazon CloudWatch」を利用してシステム監視することで、AWS上のサービスに適合させた各種メトリクスを収集し、トレースすることが可能になります。

EC2等ではインスタンス起動時に「CloudWatchで監視する」という設定だけでサービスを利用することができます。またサーバレスのため、インフラ機器の導入作業やインストールは不要です。

「Amazon CloudWatch」が登場した背景とは?

従来のシステム監視としては、「Zabbix」、「Munin」、「Hinemos」といったオープンソースで提供されているツールが一般的に利用されていました。

しかし、AWS上の「Amazon Athena」等のサーバが仮想化されている「サーバレス」サービスでは、サーバOSの「CPU使用率」といったメトリクスは存在しません。

そのため従来の監視ツールをそのまま利用することができないケースや、別のメトリクスを特別に用意するケース等の問題が出てきました。

そこで、AWS上のサービスを監視するために最適化されたシステム監視ツールとして、「Amazon CloudWatch」が登場しました。

「Amazon CloudWatch」が登場した当初は、まだ「Zabbix」の方が高機能であったため利用頻度は高くありませんでした。しかし、近年大幅な機能増強が図れたことで、AWS上のサービスのシステム監視ツールとして欠かせない存在となってきました。

他のシステム監視ツールとの比較によるメリットとは?

「Amazon CloudWatch」を「Zabbix」等の他のシステム監視ツールと比較した際のメリットをみていきましょう。

AWS上のサービスを監視するために最適化されているため、各サービスのAWS独自のメトリクスの取得もAWSコンソール画面から取得の設定がしやすく、監視対象のAWSサービスで仕様変更が発生しても自動的に対応してくれます。

またシステム監視ツールのインストール作業等が不要になるので、同様にAWSコンソール画面から監視の各種設定を行うだけで、「Amazon CloudWatch」のサービスを利用可能となっています。

「Amazon CloudWatch」の導入時の課題について

「Amazon CloudWatch」の導入時の課題としては、システム監視に関する一定以上のスキルや経験が必要になる点です。

「Amazon CloudWatch」の設定や利用すること自体は、AWSコンソール画面で簡単に設定できます。

しかし、各AWSサービスに設定するメトリクスで何が適切な値であるかを判断するにはシステム監視の経験が必要になります。

またメトリクスの数値を超えた際の対応として、障害の復旧シナリオを作成する等のいわゆる「運用設計」や「監視設計」と呼ばれるスキルも必要となってきます。

つまり設定する「手順」は簡単でも、設定する「中身」をどうするかについては、やはりシステム監視のスキルや経験が必要となります。

小規模なサービスの場合は、「運用設計」や「監視設計」に工数を割くだけのリソースもないことが多いため、「Amazon CloudWatch」もより簡易にメトリクス設定可能となる方向に改善が求められます。

「Amazon CloudWatch」の特徴や機能

「AWS CloudWatch」では、CPU、メモリやディスク等のリソースに関する使用情報、アラート等のシステム診断用メトリクスを一括で収集してモニタリング表示し、システムの稼働状況を監視しています。

それでは、具体的な特徴や機能を説明していきます。

メトリクスの収集

「Amazon CloudWatch Logs」サービスを利用することで、監視対象とする各AWSサービスから送信されるログをリアルタイムで収集可能です。

標準メトリクス以外のメトリクスを取得することも可能です。具体的には、「AWS CloudWatchエージェント」というメトリクスを取得して送信してくれるモジュールをサーバOSにインストールします。これによりデフォルトでは取得できないメトリクスも監視対象とすることができます。

モニタリング

リソース、アプリケーション、サービスのログとメトリクスをほぼリアルタイムに、単一のコンソール上で確認できます。

そのため個々のシステムやアプリケーション (サーバ、ネットワーク、データベースなど) を個別にモニタリングする必要はありません。

「Amazon CloudWatch」の「概要ホームページ」といういわゆる「ダッシュボード」で、メトリクスとログデータを分析しやすいグラフに視覚化できます。

このグラフを参考にして、迅速に状況把握し、問題を診断して原因分析を進められます。例えば、CPU使用率やメモリ使用率を主要なメトリクスとして視覚化し、システムが正常に稼働しているかを判断可能です。

アクション

AWSのリソースの状態変化を「イベント」と呼びます。

「CloudWatch Events」という機能を利用して、このイベントを監視し、設定した「ルール」に応じたアクションを自動実行するように設定可能です。

具体的な設定方法は、ルールを作成して、アプリケーションでの目的のイベントを指定します。そして、イベントにルールが一致した場合に自動実行するアクションを指定します。

例えば、「AWS Lambda」関数の呼び出しや「Amazon Simple Notification Service (SNS) 」トピックの通知を実行するルールを設定できます。

「Amazon CloudWatch」の利用方法

それでは、「Amazon CloudWatch」利用方法を確認していきます。

(1)AWSにログインし、「Amazon CloudWatch」コンソール画面を開きます。

(2)「Amazon CloudWatch」の「概要ホームページ」の画面が表示されます。

(3)画面左上には、AWSサービス全体の「サマリー」が表示されています。具体的には、ログインしたアカウントで使用しているAWS のサービスと、そのアラーム状態が一覧表示されています。

(4)画面右上には、使用している AWS サービスの「アラーム」がいくつか表示されます。このアラームには「ALARM」状態やリソースの利用状況の推移等が表示されています。

(5)この「サマリー」と「アラーム」の表示により、各サービスのアラーム状態と最新の変化状態を確認し、AWS のサービスの稼働状況を監視することができます。また問題発生時のモニタリングと、その対応策の迅速な診断にも役立ちます。

(6)画面下部には、「カスタムダッシュボード(名称:CloudWatch-Default)」が表示されています。

(7)このカスタムダッシュボードでは、AWSサービスやアプリケーションに関するメトリクスをこの概要ホームページに追加可能です。また詳細にモニタリングしたいメトリクスの種類を追加もできます。

「Amazon CloudWatch」の学習方法

「Amazon CloudWatch」の学習方法としては、AWS公式サイトのチュートリアルが充実しています。

こちらのサイトを参考にして、ハンズオン形式で「Amazon CloudWatch」の理解を深めてみてはいかがでしょうか?

ITエンジニアへのキャリアチェンジならキャリアチェンジアカデミー

この記事の監修者・著者

株式会社オープンアップITエンジニア
株式会社オープンアップITエンジニア
未経験からITエンジニアへのキャリアチェンジを支援するサイト「キャリアチェンジアカデミー」を運営。これまで4500人以上のITエンジニアを未経験から育成・排出してきました。
・AWS、salesforce、LPICの合計認定資格取得件数:2100以上(2023年6月時点)
・AWS Japan Certification Award 2020 ライジングスター of the Year 受賞

おすすめの動画

  • 【未経験からIT業界へ転職するなら】相談窓口とスキルの獲得はここで解決!IT転職が一気に有利に!【キャリアチェンジアカデミー】

  • 【費用一切不要】未経験からIT業界へ転職するならまずはここへ相談!【キャリアチェンジアカデミー】

  • 【何のエンジニアになれるのか?】未経験からITエンジニアを目指すとこんな道がある【キャリアチェンジアカデミー】