【基礎から学ぶ】Amazon CloudWatch<メトリクス編>

AWS運用自動化サービス「Cloud Automator」
この記事は1年以上前に書かれたものです。
内容が古い可能性がありますのでご注意ください。

はじめに

こんにちは、技術4課の紅林です。AWSの提供するモニタリングサービスにAmazon CloudWatch(以下、CloudWatch)があります。
CloudWatchは手軽に利用可能なサービスですが、少し分かりにくい点やハマりどころがあるため、今回、実際に活用するときに押させておきたいポイントをいくつかご紹介したいと思います。

Amazon CloudWatchとは

CloudWatchは、AWSの各種リソースを監視するマネージドサービスです。
各種リソースの監視、ログの収集、各種イベントをトリガとしたアクションの実行等の機能があります。
参考: AWS CloudWatch (クラウドおよびネットワークモニタリング)| AWS

今回は各種リソース監視に用いられる「メトリクス」に焦点を当てます。

メトリクスとは

「メトリクス」について、公式サイトの説明をまず以下、引用します。

メトリクスは CloudWatch での基本的な概念です。メトリクスは、CloudWatch に発行された時系列のデータポイントのセットを表します。メトリクスは監視対象の変数、データポイントは時間の経過に伴うその変数の値と考えることができます。たとえば、特定の EC2 インスタンスの CPU 使用率は、Amazon EC2 により提供される 1 つのメトリクスです
Amazon CloudWatch の概念 – Amazon CloudWatch

つまり、メトリクスとは、データポイント(取得したリソース値の最小粒度)を一定期間で何らかの方法で集計した値といえると思います。
イメージ図を以下に示します。CloudWatchは取得したデータポイントをメトリクスとして提示するのではなく、データを特定の方法で集計して扱うことが大きな特徴です。

具体的なメトリクスとしては例えばEC2インスタンスであれば、「CPUUtilization」「DiskReadOps」等があります。
参考:インスタンスの利用可能な CloudWatch メトリクスのリスト表示 – Amazon Elastic Compute Cloud

集計方法として使用可能な方法は以下の通りです。

  • 最小
  • 最大
  • 合計
  • 平均
  • サンプルカウント
  • パーセンタイル

ちなみにAWSマネジメントコンソールでは「平均」がデフォルトで選択されていると思いますが、目的に応じて上記統計種別を適宜変更する必要があります。
例えば、負荷試験を行った際に、最大でどの程度のCPUリソースを使用したかを確認する場合は、「平均」では無く、統計の設定を「最大」にして結果を確認するべきでしょう。

メトリクスの保持期間について

メトリクスは永久に保存されるわけではなく、一定期間が過ぎるとある程度の粒度でデータポイントが削除されてしまう点も注意が必要です。
保存期間のスケジュールは以下の通りです。

1 分ごとのデータポイントを 15 日間保存
5 分ごとのデータポイントを 63 日間保存
1 時間ごとのデータポイントを 455 日間保存
参考:CloudWatch Metrics の保存期間延長と新ユーザーインターフェイス

カスタムメトリクスの注意点

CloudWatchで利用可能なメトリクスはAWSで準備されている標準のメトリクスだけではなく、ユーザがAPI等を用いて独自のメトリクスを格納(以下、PUT)することも可能です。
ただし、以下のような注意点も存在します。

2週間前のタイムスタンプのデータは受け付けない

カスタムメトリクスをPUTする際、PUTするタイミングでのタイムスタンプだけでなく、過去等のタイムスタンプを指定してPUTすることも可能ですが、最大2週間前が限度となります。

各メトリクスデータポイントにはタイムスタンプが付けられる必要があります。タイムスタンプは、最大 2 週間前から最大 2 時間後になります。
Amazon CloudWatch の概念 – Amazon CloudWatch

1日以上前のデータはPut後反映までに時間がかかる

上述の通り、1日(24時間)以上前のデータは2週間以内であればPUT可能ですが、GETできるようになるまで、48時間以上かかることがあるとされています。

Data points with time stamps from 24 hours ago or longer can take at least 48 hours to become available for get-metric-statistics from the time they are submitted.
put-metric-data — AWS CLI 1.11.149 Command Reference

おわりに

今回、CloudWatchのメトリクスに焦点を当てて、いくつかポイントをご紹介しました。CloudWatchは非常に導入しやすく、便利なサービスですが、知らないとハマる落とし穴もいくつかあるので、あらかじめ注意が必要と思います。CloudWatchには、その他にも様々な機能があるため、それらは別の機会にご紹介したいと思います。

AWS運用自動化サービス「Cloud Automator」