CloudWatch でダッシュボードを作りたい、何ができるか調べてみた

2023.02.28

こんにちは。
ご機嫌いかがでしょうか。
"No human labor is no human error" が大好きな吉井 亮です。

CloudWatch ダッシュボード使っていますか~ (挨拶)

システムのモニタリングにおいて、モニタリングダッシュボードを作成しておくことは大切です。
システム状態がひと目みて分かるメトリクスを厳選してデフォルトダッシュボードに配置して、大型モニターで表示するといったことをされている方もいると思います。

個人的な実体感ですが、すべての AWS ユーザーが CloudWatch ダッシュボードを活用されているわけではなく、何ができるかよく分からないという理由があると感じています。
本エントリでは、CloudWatch ダッシュボードで何ができるのかを試してみたいと思います。

CloudWatch ダッシュボード

AWS 標準のモニタリングサービスである CloudWatch にもダッシュボード機能が用意されています。

CloudWatch ダッシュボードの作成

料金

ダッシュボードを作成すると料金が発生します。
CloudWatch メトリクスやログなどとは別に料金が発生します。作り過ぎにご注意ください。

Amazon CloudWatch 料金表

無料枠:毎月最大 50 個のメトリクスに対応するダッシュボード 3個
1か月当あたりのダッシュボードあたり: 3.00USD

CloudWatch ダッシュボードの共有

CloudWatch ダッシュボードは共有が可能です。

ただし、CloudWatch Logs ウィジェットや複合アラームウィジェットなど一部表示できないウィジェットがあります。事前にご確認することをおすすめします。

CloudWatch ダッシュボードの共有

クロスアカウント

リージョン切り替えやスイッチロールをしなくても大丈夫です。 CloudWatch ダッシュボードはクロスアカウント・クロスリージョンをサポートしています。

クロスアカウントクロスリージョンダッシュボード

ウィジェットの紹介

CloudWatch ダッシュボードに配置できるウィジェットを紹介します。

これは説明不要だと思います。よくある線グラフです。 時系列でリソース使用率、アクセス数、コネクション数などのトレンドを表示します。

ダッシュボードに表示する際は、下例のように同じメトリクスを一纏めにすると便利です。

スタックされたエリア

これがダッシュボードに表示されていると、なんとなく SRE になった気分になります。

あるメトリクスを複数の指標で表示可能です。
下例はレスポンスタイムを P99、P90、P50 で表示しています。平均値だと異常値混入の可能性がありますが、パーセンタイルを複数組み合わせることでより実態を把握しやすいグラフにしています。

数値

最新のメトリクス値とトレンドを同時に把握できるウィジェットです。
注視しておきたいメトリクスがある場合に活用します。

ゲージ

下限、上限、現在値を一目して理解できるウィジェットです。
AutoScaling のスケーリング状況を把握したいなど、ある範囲のなかでの現在値を知りたい場合に便利です。

これも説明不要かもしれません。分類したデータを比較する際に使用します。
下例はあるペットショップの子猫・子犬・うさぎのアクセス数を比較しています。ある期間のある値の合計を比較のようなユースケースにぴったりです。

こちらも馴染みがあるグラフだと思います。円グラフです。割合を示すケースで活用します。
リクエストに対するレスポンスコードの割合、アクセス元国コード、呼び出された API の割合など様々なユースケースがあります。

カスタムウィジェット

Lambda 等を使用して独自のウィジェットを配置可能です。以下のエントリが詳しいので興味がある方は参照ください。

CloudWatchのカスタムウィジェットのLambda書いてみた

テキスト

マークダウン形式で任意のテキストを記述できるウィジェットです。個人的に一番使ってほしいと思っているウィジェットです。
ダッシュボードの目的は誰が見てもシステム状態を把握できることです。
ダッシュボードの説明、手順書へのリンク、チェックすべきメトリクスなどを丁寧に記載しておきましょう。

ログテーブル

CloudWatch Logs Insights の検索結果をテーブル形式で表示するウィジェットです。
アクセスログを解析 (UA、Geoなど) してダッシュボードに表示したい需要はあるはずです。

アラームのステータス

CloudWatch アラームの状態を表示します。複数選択して表示できるところが Good です。
重要で見逃したくないアラームはダッシュボードに表示しておきたいものです。

エクスプローラー

Metrics Explorer をダッシュボードに表示します。
Metrics Explorer はタグまたはリソースプロパティごとに集計・視覚化するツールです。一覧性が大きく向上します。
下例は、Lambda ランタイム別に実行時間を表示したものです。このようにある決められた基準でグルーピングされたメトリクスを表示したい際に活用ください。

まとめ

モニタリングにダッシュボードは欠かせません。職人芸に頼らず、誰が見てもシステムの健康状態が把握できるダッシュボードを作成するために、CloudWatch で何ができるのかを調べてみました。

参考

One Observability Workshop
CloudWatch ダッシュボードの作成
AWS CLIを使ってCloudWatchのカスタムダッシュボードを作成してみた
CloudWatchのカスタムウィジェットのLambda書いてみた
CloudWatchでクロスアカウント、クロスリージョンダッシュボードを作れるようになったのでやってみた

以上、吉井 亮 がお届けしました。