Amazon Web Services ブログ

Amazon CloudWatch における高解像度メトリクスとアラーム

Amazon CloudWatch は 2009 年以来 AWS の重要な要素となっています。3 つの同時リリース (Auto ScalingElastic Load Balancing) の 1 つとして公開された CloudWatch は、AWS リソースや AWS クラウドで実行するアプリケーションをモニタリングする非常に強力なサービスに進化しました。CloudWatch カスタムメトリクス (2011 年にリリース) は CloudWatch でビジネスおよびアプリケーションメトリクスを保存できるようにし、グラフ表示や CloudWatch アラームをベースにアクションを開始することができます。数年間に渡り CloudWatch にいくつもの強化点を施してきたことは言うまでもありません。最近ではメトリクス保存期間の延長 (およびユーザーインターフェイスの更新)、ダッシュボードダッシュボードでの API/CloudFormation のサポートダッシュボードにアラームなどを追加してきました。

最初はメトリクスを 5 分間隔で保存していましたが、ユーザーから寄せられたリクエストに応え、2010 年にこれを 1 分間隔に変更しました (詳細モニタリング)。これについては高い評価を頂きましたが、そろそろレベルアップさせる時期が来ました。AWS をご利用されているお客様は 1 日に多数の動画をストリーミングしたり、フラッシュセールを行ったり、コードをいくつもデプロイしたりしています。さらに、状況が変わるに連れてすばやくスケールインまたはスケールアウトするアプリケーションも実行しています。こうした様々な状況において 1 分間隔では詳細性に欠けることになります。また、重要で一時的な増加を見逃してしまう可能性もあります。異種 (でありながら関連性のある) イベントを時間と関連付けるのは困難です。何か支障があった場合の MTTR (mean time to repair – 平均修復時間) に時間が掛かることもあるでしょう。

新しい高解像度のメトリクス
本日、高解像度のカスタムメトリクスを対象とするサポートを追加しました。また、今後 AWS サービスのサポートを追加することも計画しています。アプリケーションが 1 秒の解像度で CloudWatch にメトリクスを発行できるようになりました。発行後、数秒でメトリクスを画面で見ることができるほか、10 秒ごとに評価する高解像度の CloudWatch アラームをセットアップできます。

使用可能なメモリが低下するとアラームが起動すると想像してください。これは通常、頻度が低いサンプルではキャッチしにくい一時的な状態です。高解像度のメトリクスでは、数秒内に閲覧、検出 (アラームを使用)、対応することができます。

この場合、右側のアラームが開始しないので問題に気付くことがありません。

高解像度メトリクスの発行
高解像メトリクスを発行するには 2 つの方法があります。

  • APIPutMetricData 関数が StorageResolution パラメーターを許可するようになりました。このパラメーターを 1 に設定して高解像度メトリクスを発行します。スタンダードの 1 分間の解像度で発行するにはこれを排除 (または 60 に設定) します。
  • collectd プラグイン – 高解像度メトリクスのコレクションと発行をサポートするように collectd の CloudWatch プラグインを更新しました。そのため、 enable_high_definition_metrics パラメーターをプラグインの config ファイルで設定する必要があります。

解像度はメトリクスが古くなるに連れて低下するので、CloudWatch は徐々にロールアップするようになっています。スケジュール詳細は次の通りです。

  • 1 秒に設定したメトリクスは 3 時間使用可能です。
  • 60 秒に設定したメトリクスは 15 日間使用可能です。
  • 5 分に設定したメトリクスは 63 日間使用可能です。
  • 1 時間に設定したメトリクスは 455 日間使用可能です (15 か月)。

FIFO キューに対して GetMetricStatistics 高解像度メトリクスでは期間を 1、5、10、30 または 60 秒の倍数に指定することができます。標準メトリクスでは期間を 60 秒の倍数に指定することができます。

簡単なデモをお見せします
一番近い EC2 インスタンスを取得し collected および Python プラグインの最新バージョンをインストールします。

$ sudo yum install collectd collectd-python

次にプラグインのセットアップスクリプトをダウンロードし、実行可能にしてから実行します。

$ wget https://raw.githubusercontent.com/awslabs/collectd-cloudwatch/master/src/setup.py
$ chmod a+x setup.py
$ sudo ./setup.py

前もって適切な IAM ロールを作成済みなので、これをインスタンスに追加します。これはセットアップ中、自動的に検出されました。高解像度メトリクスを有効にするように促されます。

collectd が実行され、発行メトリクスが数秒で開始しました。CloudWatch コンソールを開き様子を見ます。

ズームインしてメトリクスの詳細を見ます。

memory.percent.used メトリクスを 10 秒間隔でチェックするアラームも作成します。これにより、短期間に大量のメモリがどこで使用されているか検出しやすくなります。

提供開始
高解像度のカスタムメトリクスやアラームはパブリック AWS リージョンで今すぐご利用いただけます。AWS GovCloud (US) でのサポートも近日中に提供する予定です。

従来通り、追加料金なしに毎月 10 件までのメトリクスを保存することができます。詳しくは「CloudWatch 料金表 (CloudWatch Pricing)」のページをご覧ください。高解像度メトリクスの料金は標準解像度メトリクスと同様です。より多くのメトリクスを使用すると、ボリューム層ベースで節約 (メトリクスごと) することができます。高解像度アラームの料金は 1 か月あたり各アラーム 0.30 USD です。