アルファテックブログ

Amazon CloudWatch リソース監視ダッシュボード 実践ガイド

カバー


目次


1. はじめに

CloudWatch がリソース監視で重要な理由

リソース監視では、単にメトリクスを収集するだけでなく、システムがその時々の負荷に対してどう振る舞っているかを正しく把握することが重要です。
AWS 環境では、CloudWatch が提供する各種メトリクス (CPU 使用率、メモリ使用率、ネットワーク I/O、レイテンシーなど) を活用することで、運用中のボトルネックや異常の兆候をリアルタイムに可視化できます。


本記事で得られること

  • CloudWatch ダッシュボードの基本と作成手順
  • リソース監視に適したダッシュボード構成の考え方
  • 数式 (Math Expression) やカスタムメトリクスの活用ポイント

想定読者

  • AWS 上でシステム監視・可観測性を整備しているエンジニア
  • CloudWatch を使ったメトリクス可視化をこれから整備したい方
  • ダッシュボードの設計を体系的に整理したい方

目次に戻る


2. ダッシュボードの作成方法

2-1. CloudWatch ダッシュボードとは

CloudWatch ダッシュボードは、AWS リソースのメトリクスを自由にレイアウトして表示できるカスタム画面です。
複数のメトリクスを 1 画面にまとめて表示できるため、「今、システム全体で何が起きているのか」を即座に把握できます。

このダッシュボードは、運用中の異常の兆候を即座に把握し、原因切り分けを行うための基盤となります。
そのため、作成時点から「運用中に何を判断したいか」を意識することが重要です。


2-2. 新規ダッシュボードの作成手順

ダッシュボード作成は、AWS マネジメントコンソール上から簡単に行えます。作成手順は次のとおりです。

手順:

  1. AWS マネジメントコンソールで CloudWatch を開く

    alt text

  2. 左メニューから「ダッシュボード」を選択

    alt text

  3. 「新しいダッシュボードを作成」をクリック

    alt text

  4. ダッシュボード名を入力し、ウィジェット (パネル) を追加

    alt text

  5. 表示したいメトリクスを選択する

    ※本手順においては EC2 の CPU 使用率を例として挙げております。(対象メトリクスのログが過去一度も出力されていない場合メトリクスが表示されないことがありますのでご留意ください。)

    ①対象データソース:対象となるデータソースはメトリクスを選択します。

    ②-1 検索:EC2 の CPU 使用率を図示するために検索の箇所に「EC2」と入力して絞り込み条件に追加します。

    ②-2 検索:「CPUUtilization」と入力して絞り込み条件に追加します

    ③可視化する対象:検索結果から可視化する対象にチェックします。

    alt text

    alt text

  6. ウィジェットの設定を完了したら、「ウィジェットの作成」ボタンをクリック

    alt text

  7. 必要なウィジェットを追加し終えたら、「ダッシュボードの保存」ボタンをクリック

    alt text

  8. Dashboards の一覧に作成したダッシュボードがあるかを確認します。


2-3. 推奨パネルタイプ

  • Line
    CPU 使用率やレスポンスタイムなど、時間変化を追いたいメトリクスに最適
  • Number
    現在値を強調したい場合 (例:同時接続数、キュー長)
  • Stacked Area
    複数メトリクスの合計や内訳を可視化したい場合に有効

ポイント
リソース監視では時系列の変化を追うことが重要なため、基本は Line グラフを使用します。


2-4. リソース監視に適したダッシュボード構成テンプレート

以下は、リソース監視中に原因切り分けを素早く行うことを目的とした構成例です。

推奨構成例:

  • 上段:試験全体の負荷状況

    • ALB:リクエスト数 (RequestCount)、エラー率 (HTTPCode_ELB_4XX_Count,HTTPCode_ELB_5XX_Count)、TPS (Requests/sec)
  • 中段:主要リソースの状態

    • EC2:CPU (CPUUtilization)
    • Lambda:Duration (Duration)
    • RDS:DB 接続数 (DatabaseConnections)
  • 下段:ネットワーク・外部依存

    • EC2:ネットワーク I/O (NetworkIn)
    • API Gateway:外部 API のレイテンシー (Latency)

    alt text


2-5-1. 数式 (Math Expression) の実装方法

CloudWatch では、複数メトリクスを組み合わせた数式 (Math Expression) を定義できます。 これにより、監視で重要な指標をダッシュボード上で直接算出・可視化できます。

実装手順:

  1. ダッシュボードで新しいウィジェットを追加
  2. 「メトリクス」タブで対象メトリクスを選択
  3. 「数式を追加」をクリック alt text
  4. 数式を入力 (例:m1 + m2)
    alt text
  5. ラベルや単位を設定して保存

2-5-2. リソース監視でよく使う数式

  • エラー率
    (エラー数 / 総リクエスト数) * 100
    → サービスの安定性確認に必須
  • スループット (TPS)
    総リクエスト数 / 監視期間 (秒)
    → 基本的な処理量の指標
  • 平均レスポンスタイム
    総レスポンスタイム / 総リクエスト数
    → 目標レスポンスタイムの達成状況を確認
※ 注意点
・CloudWatch メトリクスは統計値 (Sum / Average など) によって意味が変わる
・TPS 算出では対象メトリクスが「Sum」であることを確認する
・Period の設定によって数値の見え方が変わるため、試験条件と合わせる

目次に戻る


3. カスタムメトリクスについて

3-1. カスタムメトリクスとは

AWS 標準メトリクスだけでは、一部の運用上重要な情報しか取得できません。
カスタムメトリクスを使うことで、独自指標を CloudWatch に送信し、アプリケーションの挙動をより正確に可視化できます。


3-2. リソース監視でよく使うカスタムメトリクス

  • 同時接続数
  • キュー長 (Queue Depth)
  • ビジネス指標 (注文数、成功率)
  • メモリ使用率

3-3. カスタムメトリクスの実装方法 (メモリ使用率)

CPU 使用率だけではボトルネックを判断できないケースが多いため、
リソース監視でもメモリ使用率の可視化が重要になります。

EC2 のメモリ使用率を CloudWatch に送信する方法として、CloudWatch Agent を利用した実装手順を紹介します。
CloudWatch Agent は、CPU・メモリ・ディスク・ネットワークなどの OS レベルのメトリクスをまとめて取得できる公式エージェントです。

① CloudWatch Agent をインストール

メトリクスを取得したい EC2 インスタンス上で実行します。

sudo yum install -y amazon-cloudwatch-agent

以下の画像は実行した際の挙動です。最後に Complete が出れば問題なしです

alt text

※前提条件として EC2 の IAM ロールに CloudWatchAgentServerPolicy を許可する設定が必要です。以下の画像は IAM ロールの作成時に該当ポリシーを許可している際のキャプチャです。

alt text

alt text

② 設定ファイルを作成

CloudWatch Agent は、JSON 形式の設定ファイルをもとに、「どのメトリクスを」「どの名前空間で」CloudWatch に送信するかを定義します。

以下は、メモリ使用率 (%) を送信する最小構成例です。

{
"metrics": {
"namespace": "Custom/EC2",
"metrics_collected": {
"mem": {
"measurement": [
{
"name": "mem_used_percent",
"rename": "MemoryUtilization",
"unit": "Percent"
}
]
}
}
}
}

上記の設定を以下のファイルに設定します。 alt text

ポイント:

• namespace:CloudWatch 上で表示される論理グループ (任意)
• mem_used_percent:OS 上のメモリ使用率 (%)
• rename:CloudWatch 上で表示されるメトリクス名

③ CloudWatch Agent を起動

作成した設定ファイルを指定して Agent を起動します。

sudo /opt/aws/amazon-cloudwatch-agent/bin/amazon-cloudwatch-agent-ctl \
-a start \
-m ec2 \
-c file:/opt/aws/amazon-cloudwatch-agent/etc/amazon-cloudwatch-agent.json \
-s

以下の画像は実行した際のキャプチャです。 alt text

また、正常に起動しているかどうかは下記コマンドで確認可能です。

sudo systemctl status amazon-cloudwatch-agent

以下の画像のように active (running) であれば問題なしです。 alt text

④ CloudWatch コンソールでメトリクスを確認

  1. CloudWatch を開く
  2. 「メトリクス」→「カスタム名前空間」
  3. Custom/EC2 を選択
  4. mem_used_percent が表示されていることを確認

alt text

alt text

⑤ ダッシュボードに追加 (リソース監視向け)

取得したメトリクスは、監視用ダッシュボードに追加します。

  • グラフタイプ:Line
  • 単位:Percent
  • 表示位置:CPU 使用率の近く

CPU 使用率とメモリ使用率を並べて表示することで、ボトルネックが CPU かメモリかを直感的に判断できます。

目次に戻る


4. automatic dashboards の紹介 (手順つき)

手動作成に加え、AWS が自動生成してくれるダッシュボード (automatic dashboards) を活用することで、リソース監視に必要なパネルを短時間で追加できます。


4-1. CloudWatch automatic dashboards (自動生成) の作成手順

概要

環境内のリソース (EC2 / RDS / Lambda など) を検出し、推奨メトリクスを自動配置します。 ダッシュボードの初期設計コストを下げ、すぐに監視を開始できます。

特長

  • 主要メトリクスの自動レイアウト
  • サービスごとの推奨ビュー
  • 既存アラームとの連携

手順

  1. AWS マネジメントコンソールで CloudWatch を開く

  2. 左メニューで すべてのメトリクス を選択
    alt text

  3. 対象リソース (EC2 / RDS / Lambda など) を選択
    alt text

  4. 自動で生成されたダッシュボードを確認

    alt text

  5. 必要に応じてメトリクスやレイアウトを編集して保存

    alt text


目次に戻る


TOP
アルファロゴ 株式会社アルファシステムズは、ITサービス事業を展開しています。このブログでは、技術的な取り組みを紹介しています。X(旧Twitter)で更新通知をしています。