Amazon CloudWatch のキーワード その2

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

Amazon CloudWatchのキーワードを理解する その2

その1に続きまして、CloudWatchへの理解を深めるために良く出てくるキーワードについてご紹介します。

統計(Statistics)

統計は、指定されたピリオドにおける測定されたデータの集合です。集合は、ネームスペース/メトリクス名/ディメンション/測定単位によって示されます。

以下は利用可能な統計です。

  • Minimum
  • Maximum
  • Sum
  • Average
  • SampleCount

GetMetricStatistics というAPIを使って、ネームスペース/メトリクス名/ディメンション/測定単位を指定することで、統計を取得することができます。また、PutMetricData APIを使ってあらかじめ計算された統計データを登録することも可能です。

ピリオド(Periods)

ピリオドは統計データを取得する際に用います。ピリオドの指定によって取得する範囲を調整します。調整できる値は1分(60秒)から2週間(1,209,600秒)の間です。6分だったら360秒というように、60秒単位で指定してください。

この機能は、アラームとの連携をする場合に非常に重要となります。例えば、直近5分間で平均CPU使用率が80%を超えたときにメールで通知するといった指示に用いられるからです。

集約(Aggregation)

CloudWatchは、GetMetricStatisticsを呼び出すことによって、ピリオドに沿ったデータを集約します。ユーザは好きなように同じまたは似ているタイムスタンプのデータを発行することができます。CloudWatchはGetMetricStatisticsによってピリオドで区切った期間の統計を集約し取得することができます。ユーザは、メトリクスのために同じタイムスタンプだけでなく、同じネームスペースやディメンションでもデータを発行することできます。これらのデータの発行の後にGetMetricStatisticsを呼び出せば、集約した統計が得られるはずです。

CloudWatchは、1回のPutMetricDataによって複数のデータを受け付けることができます。ユーザはどんなタイムスタンプでも複数のデータを同じまたは異なるメトリクスへ発行できます。PutMetricDataのリクエストサイズ制限は、GET通信で8KB、POST通信で40KBあたりで、ユーザは20データ分同時に発行できるはずです。大きいデータ量を発行しようかと考えたときには、統計済みデータ(StatisticSet)の挿入を検討してください。StatisticSetでは、Min/Max/Sum/SampleCountを指定することができます。StatisticSetの使い方としてよるあるパターンとしてWEBアプリのアクセス遅延を考えてみます。全てのページリクエストに対してPutMetricDataを呼び出すのではなく、例えば1分の統計データを計算してからStatisticSetを使ってCloudWatchにデータを送ります。

CloudWatchは、データが何処から来たのか関知しません。異なる情報源からメトリクス名/ネームスペース/ディメンションが指定された場合、1つの情報として扱います。これはスケールアウトするシステムで効力を発揮します。例えば、全てのWEBサーバのレイテンシ平均/最大/最小について一体の情報として取得することができます。

アラーム(Alarms)

CloudWatchは、メトリクスのデータを基に即座に自動的な処理を行いユーザの決定を助けるため特に役に立ちます。アラームは、ユーザが指定したパラーメタに基づいて処理を行います。

アラームは1つのメトリクスについてあるピリオドにおいて監視を行い、該当すると1つ以上の処理を実行します。Amazon SNSへの通知かAutoScalingの呼び出しです。アラームは継続している状態が変化したときのみに呼び出されます。ですから、アラームに該当するピリオドが継続される場合に何度も続いてアラームが通知されることはありません。

リージョン(Regions)

CloudWatchは、リージョン(地域)ごとに独立していますので、アラームはリージョンごとに指定をしてください。各リージョンごとに可用性を高めていますので、1つの監視対象に対して複数のリージョンからアラート設定をする必要はありません。

まとめ

CloudWatchは、AWS製品に対して監視をカンタンに設定できることが分かりました。また、カスタムで監視対象を定義できることも分かりました。ネームスペース/ディメンション/統計等を用いることで監視対象の様々な状態を容易に把握できることが分かりました。特に、統計のためにデータを発行する際、集約済みのデータを用いることで効率よく処理できることが分かりました。用法を理解して正しく活用しましょう〜。