[CloudWatch]グラフの確認方法と確認できるグラフ一覧(EC2/ELB/RDS)

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

はじめに

システムを管理し健全性を維持するためには、機器やサービスなどの稼働状況を確認する死活監視と共に、CPUやメモリ、ディスクなどの各リソースの使用状況をモニタリングして負荷を把握したり適切な増強を行う、リソース監視が欠かせません。

高機能な監視ソフトウェアでは死活監視や性能監視などと共にリソース監視の機能を有していますが、簡易なものであればAWSのサービスであるCloudWatchを使って代用することが出来ます。

そこで、AWSの代表的なサービスであるEC2・ELB・RDSについて、CloudWatchでどのようなリソースをグラフとして確認出来るのか、まとめてみました。

なお、AWSにおいてリソースとはEC2やELB、RDSなどのAWSクラウドリソースを指し、CPUやメモリなどに関する各種データを「時間単位でのデータ集合」に加工したものをメトリクスと言います。なのでAWS用語で言うと「CloudWatchでグラフ出力可能な標準メトリクス一覧」です。

CloudWatchの技術的に細かい点については横田慎介さんの「CloudWatchの使い方 | SlideShare」をご参照下さい:)

注意

CloudWatchの統計は2週間しか記録されません。このため長期的なリソース分析には向きません。月スパン、年スパンでリソース分析を行う場合は、Zabbixなどの高機能な監視ソフトウェアをオススメします。

(ex: Amazon LinuxにZabbix2.0.9をインストールしてみた | Developers.IO)

グラフの確認方法

AWSマネージメントコンソールのトップメニューから[CloudWatch]をクリックします。

CW1

左側のメニューから、グラフを表示したい対象のAWSリソースを左クリックします。

CW2

以下の画面では[EC2]をクリックした状態です。右側に各インスタンスのIDとメトリクス名が表示されます。グラフを表示したいメトリクスのチェックボックスをクリックしてチェックします。

CW3

すると画面右下にグラフが表示されます。[Average]と表示されているドロップダウンボックスが、各生データの集計方式(Statistics)を指します。平均(Average)、最小値(Minimum)、最大値(Maximum)、合計(Sum)が選択出来ます。データサンプル数(Data Samples)だけが少し特殊で、サンプルとして取得したデータの数なので、CPUやメモリなどの使用状況を確認する上ではあまり確認することは無いと思います。

[5 Minutes]の下に表示されている各時間は、各生データの集計期間(Period)を指します。

Statisticsが[Average]でPeriodが[5 Minutes]であれば、「5分間の平均値」であり、[Maximum]+[1 Hour]であれば「1時間ごとの最大値」です。確認するデータの種類によって適切な集計方式が違いますので注意が必要です。

CW4

グラフの右側にある[Time Range]欄で画面表示を切り替えることが出来ます。[Zoom]がグラフの時間軸で、1時間から2週間の範囲で切り替えることが出来ます。[Relative]タブでは、開始点と終了点を「何分前」「何時間前」「何日前」と指定することが出来ます。

CW5

[Absolute]タブでは、開始点と終了点を「何年何月何日の何時何分」という形式で指定することが出来ます。

CW6また、初期表示では日時がUTC(GMT)表示となっていますが、AWSマネージメントコンソールにアクセスしているPCのローカル時間設定に合わせることが出来ます。

CW7

EC2の標準メトリクス一覧

メトリクス 内容 単位
CPUUtilization CPU使用率 パーセント
DiskReadOps ディスク読み取り数
DiskWriteOps ディスク書き込み数
DiskReadBytes ディスク読み取り量 Bytes
DiskWriteBytes ディスク書き込み量 Bytes
NetworkIn ネットワーク受信量 Bytes
NetworkOut ネットワーク送信量 Bytes
StatusCheckFailed インスタンスステータスチェックかシステムステータスチェックのどちらかが失敗した場合1になる。 0(成功) 1(失敗)
StatusCheckFailed_Instance インスタンスステータスチェックは、個々のEC2インスタンスのソフトウェアやネットワークの状態確認。失敗した場合1になる。 0(成功) 1(失敗)
StatusCheckFailed_System システムステータスチェックは、EC2インスタンスに必要なAWSシステムの状態確認。失敗した場合1になる。 0(成功) 1(失敗)

 ELBの標準メトリクス一覧

ELBのメトリクスについては「ELBの挙動とCloudWatchメトリクスの読み方を徹底的に理解する | Developers.IO」という記事がありますのでそちらをご参照下さい:)

RDSの標準メトリクス一覧

メトリクス 内容 単位
BinLogDiskUsage マスターのバイナリログのサイズ Bytes
CPUUtilization  CPU使用率 パーセント
DatabaseConnections  DBコネクション数
DiskQueueDepth  ディスクI/Oキュー数
FreeableMemory  空きメモリ量 Bytes
FreeStorageSpace  空きディスクスペース量 Bytes
ReplicaLag  リードレプリカのタイムラグ
SwapUsage  スワップ使用量 Bytes
ReadIOPS  読み込みIOPS  数/秒
WriteIOPS  書き込みIOPS  数/秒
ReadLatency  読み込みレイテンシ  秒
WriteLatency  書き込みレイテンシ  秒
ReadThroughput  読み込みスループット  bytes/秒
WriteThroughput  書き込みスループット  bytes/秒

まとめ

AWSのWebサイトに記載されている通り、CloudWatchの主な役割は「最新の統計にアクセスする、グラフを表示する、そしてアラームを設定する」です。このため先述した通り、長期的なモニタリングと分析には向きません。しかし「現在面及び直近時間帯の状態の確認」を目的とすれば、とてもたくさんの情報を取得することが出来ます。

今回ご紹介した3つのAWSリソース以外にも、Amazon EBSやAuto Scalingなど様々なAWSリソースのメトリクスが用意されていますので、高機能な監視ソフトウェアの前にAWSのサービスだけで出来ることが無いか検討してみると良いのでは無いでしょうか。