[CloudWatch] パーセンタイル統計値がELBなどで利用可能になりました
はじめに
Cloudwatchのアップデートにより、メトリックの集計値として従来の平均値、最小値、最大値に加え、 パーセンタイル統計値を取得する事が可能となりました。
今回、Application Load Balancer(ALB)のレスポンスタイム(TargetResponseTime)の パーセンタイル出力を確認する機会がありましたので、紹介をさせて頂きます。
操作方法
- AWSのマネジメントコンソール「CloudWatch」の画面より「メトリックス」を指定します
- 今回、測定対象のALB名称、メトリックとして「TargetResponseTime」を指定しています
- 「グラフ化したメトリックス」のタブより、期間を「1分」に変更します
- 統計としてパーセンタイル統計値「p99」〜「p10」の選択が可能になりました。
- アクション欄でグラフ項目をコピーし、統計値を切り替える事で各パーセンタイル値が確認可能です。
表示例
- 最大レスポンスタイム、60秒まで低下時の模様
パーセンタイル統計値
5
最大値、平均値、最小値
まとめ
Webサーバの性能を示すレスポンスタイム、特に負荷の高い動的ページと、軽量な静的ページを同時に処理するサーバでは、 両者に大きな偏りが生じ、平均値や最大値のみでは正確な判定が困難になりがちです。
レスポンスタイムの分布例
このような場合、サーバの応答性能の指標として、平均値の代わりに中間値(p50)、 最大値の代わりに「p99」「p95」が有効に利用できる事がありました。
しかしながら、これまで拡張ヘルスチェックを有効としたElasticBeanstalk環境を除き、 パーセンタイル集計値を求めるにはアクセスログの解析を必要とした為、 気軽に利用できるものではありませんでした。
今回、ELB(ALB)の標準機能としてパーセンタイル値が利用可能となった事で、 適切なタイミングでインスタンス台数を増減させるオートスケールの実現性が高まりました。
また、紹介させていただいたELB以外でも、EC2、RDS、Kinesisなどのメトリックでも パーセンタイル値の利用が可能となっています。 平均値では見落としがちな変化を捉える事の出来る可能性のあるパーセンタイル集計値、 サイジング指標としてぜひご活用ください。