CloudWatchにメトリクスやアラームを設定したのに、障害が起きると「どの画面を見ればいいか」を探すところから始まっていませんか?
サービスごと・担当者ごとにバラバラなダッシュボードが乱立し、インシデント発生時に「あの数値はどこで確認できるんだっけ」と焦る状況が続くと、初動対応が遅れ、復旧時間(MTTR)が長くなります。SRE転職を目指す場合、ダッシュボード設計スキルは面接でも実務でも問われる重要な領域です。
本記事では、CloudWatchダッシュボードの作成手順から、SREが実践する見やすいUI設計のコツまで解説します。
この記事でわかること
- CloudWatchダッシュボードの種類と料金
- SREが最初に作るべきダッシュボード5種とその設計方針
- カスタムダッシュボードの作成手順(ウィジェット設定含む)
- 再利用性を高めるVariables機能の使い方
- TerraformでダッシュボードをIaC管理する方法
前提条件
- AWSアカウントがある
- CloudWatchの基本機能を理解している(CloudWatch入門記事 参照)
- CloudWatchアラームが設定済みである(アラーム設定記事 参照)

CloudWatchダッシュボードとは
CloudWatchダッシュボードは、メトリクス・アラーム・ログ・テキストなどを1画面にまとめて表示できる カスタマイズ可能な監視画面 です。リージョンをまたいだリソースを1つのビューで確認でき、チーム全員が同じ画面を参照できます。
自動ダッシュボードとカスタムダッシュボードの違い
CloudWatchのダッシュボードには2種類あります。
| 種類 | 説明 | 向いているケース |
|---|---|---|
| 自動ダッシュボード | AWSが自動生成。EC2・Lambda・RDS等のサービスごとに用意 | サービス単体の標準的な確認 |
| カスタムダッシュボード | ユーザーが自由に設計 | インシデント対応・SLO監視・チーム共有 |
自動ダッシュボードは CloudWatch > ダッシュボード > サービスダッシュボード から確認できます。サービスを選択すると、AWSが主要メトリクスを自動でレイアウトした画面が表示されます。
カスタムダッシュボードは、複数サービスのメトリクスを横断的に見たい場合や、SLO達成率・エラーバジェットを並べて確認したい場合に使います。
ダッシュボードの料金
| 内容 | 料金 |
|---|---|
| 最初の3ダッシュボード(各50メトリクスまで) | 無料 |
| 4つ目以降 | 1ダッシュボードあたり月$3.00 |
小規模なチームであれば無料枠で運用できます。本番・ステージング・SLO監視など用途を絞ることで、無料枠内に収めることも可能です。
ダッシュボードを整備すると何が変わるか
ダッシュボードが整備されていると、インシデント発生時に以下の変化が生まれます。
- 初動が速くなる:「どの画面を開けばいいか」を考える時間がゼロになる
- 属人化が減る:チーム全員が同じ情報源を参照できる
- SLO違反を素早く検知できる:エラーバジェットの残量をリアルタイムで確認できる
- Runbookへのアクセスが速くなる:テキストウィジェットで手順書リンクを埋め込める

SREが最初に作るべきダッシュボード5種
ダッシュボード設計の基本方針:1ダッシュボード1目的
ダッシュボードにすべての情報を詰め込むと、見づらくなり結局誰も使わなくなります。1つのダッシュボードに1つの目的 を割り当てることが、長期的に機能するダッシュボード設計の鉄則です。
graph TD A["監視ダッシュボード群"] --> B["サービスヘルス (障害対応時に開く)"] A --> C["SLO/エラーバジェット (日次確認用)"] A --> D["インフラリソース (容量計画用)"] A --> E["コスト監視 (月次レビュー用)"] A --> F["オンコール概要 (当直担当者用)"]
SREが作るべきダッシュボード5種
| # | ダッシュボード名 | 含めるウィジェット | 確認タイミング |
|---|---|---|---|
| 1 | サービスヘルス | ALBエラー率・レイテンシー・アラーム状態 | 障害発生時・常時 |
| 2 | SLO/エラーバジェット | SLO達成率・エラーバジェット残量・バーンレート | 毎日 |
| 3 | インフラリソース | EC2 CPU/メモリ・RDS接続数・ECSタスク数 | 容量計画・スケール判断時 |
| 4 | コスト監視 | AWS請求額トレンド・サービス別コスト | 月1回 |
| 5 | オンコール概要 | アクティブアラーム一覧・最近のログエラー | 当直開始時 |
最初に作るなら ①サービスヘルス と ②SLO/エラーバジェット の2つです。障害対応とSLO管理に直結するため、ROIが最も高くなります。
ウィジェットの種類と使い分け
CloudWatchダッシュボードで使えるウィジェットは6種類あります。
| ウィジェット種類 | 説明 | 適した用途 |
|---|---|---|
| 折れ線グラフ | 時系列でメトリクスを表示 | CPU使用率・レイテンシーのトレンド確認 |
| 数値 | 最新値を大きく表示 | 現在のエラー率・リクエスト数の一目確認 |
| アラームステータス | アラームのOK/ALARM/INSUFFICIENT状態を色で表示 | インシデント発生の即時確認 |
| ログテーブル | Logs Insightsクエリ結果を表形式で表示 | 最新エラーログの一覧 |
| テキスト | Markdownでテキスト・リンクを表示 | Runbook・手順書リンクの埋め込み |
| エクスプローラー | タグでフィルタしてリソースを動的表示 | 複数EC2インスタンスの一括確認 |

CloudWatchカスタムダッシュボードの作成手順
Step 1:ダッシュボードを作成する
AWSコンソールの CloudWatch > ダッシュボード > ダッシュボードの作成 をクリックします。
- ダッシュボード名を入力(例:
service-health-prod) - 「ダッシュボードの作成」をクリック
- ウィジェット追加のダイアログが表示される
命名規則の推奨:
{環境}-{目的}
例:
prod-service-health # 本番のサービスヘルス
prod-slo-dashboard # 本番のSLO管理
dev-infra-resources # 開発のインフラリソース
環境プレフィックス(prod/stg/dev)をつけると、複数環境のダッシュボードが増えた際に管理しやすくなります。
Step 2:ウィジェットを追加する
アラームステータスウィジェットの追加
インシデント対応時に最初に確認するウィジェットです。アラームの状態を色(緑/赤/グレー)で表示します。
- 「ウィジェットを追加」→「アラームステータス」を選択
- 表示するアラームを選択(ALBの5xxエラーアラーム・レイテンシーアラーム等)
- タイトルを入力(例:
本番サービスのアラーム状態)
配置のコツ: アラームステータスウィジェットはダッシュボードの 左上 に配置します。画面を開いた瞬間に異常の有無がわかるためです。
折れ線グラフウィジェットの追加(ALBエラー率の例)
1. 「ウィジェットを追加」→「折れ線グラフ」を選択
2. 「メトリクス」タブで以下を選択:
- 名前空間: AWS/ApplicationELB
- メトリクス: HTTPCode_ELB_5XX_Count / RequestCount
3. 「数式を追加」で以下の式を入力:
m1 / m2 * 100
(m1 = 5xxカウント、m2 = 総リクエスト数)
4. 単位を「パーセント」に設定
5. タイトル: 「5xxエラー率 (%)」
数値ウィジェットの追加(レイテンシーP99の例)
1. 「ウィジェットを追加」→「数値」を選択
2. メトリクス選択:
- 名前空間: AWS/ApplicationELB
- メトリクス: TargetResponseTime
3. 統計: p99
4. タイトル: 「P99レイテンシー (秒)」
テキストウィジェットでRunbookリンクを埋め込む
インシデント発生時にすぐ手順書を参照できるよう、テキストウィジェットにリンクを貼り付けます。
## 障害対応 Runbook
- [ALB 5xxエラー対応手順](https://notion.so/your-runbook)
- [RDS接続エラー対応手順](https://notion.so/your-runbook)
- [ECSタスク停止時の対応](https://notion.so/your-runbook)
**エスカレーション先**
- L1: #sre-oncall(Slack)
- L2: 担当SREマネージャー
Step 3:Variables(変数)を設定して再利用可能にする
Variables を設定すると、ダッシュボード上部にドロップダウンが表示され、環境やインスタンスを切り替えながら同じダッシュボードを使い回せます。本番・ステージングで別々のダッシュボードを作る手間がなくなります。
設定手順:
- ダッシュボードの「アクション」→「変数を管理」をクリック
- 「変数を追加」→ 以下を設定:
| 項目 | 設定例 |
|---|---|
| 変数名 | env |
| ラベル | 環境 |
| タイプ | 「パターン」 |
| パターン | prod\|stg\|dev |
| デフォルト値 | prod |
- ウィジェットのメトリクス名に
${env}を含める形で参照
{
"metrics": [
["AWS/ApplicationELB", "RequestCount", "LoadBalancer", "${env}-alb"]
]
}

SREが実践するダッシュボード設計のコツ
ウィジェットの並び順は「左上が最重要」
画面を開いた瞬間に状態を把握できるよう、ウィジェットの配置に優先度をつけます。
┌─────────────────┬────────────────────┐
│ アラームステータス │ 5xxエラー率(折れ線) │ ← 最重要: 左上に配置
├─────────────────┼────────────────────┤
│ P99レイテンシー │ スループット │ ← 重要指標
├─────────────────┴────────────────────┤
│ Runbook リンク(テキストウィジェット) │ ← 対応補助
└──────────────────────────────────────┘
人間の視線は左上→右→下に流れます。異常検知に最も使うアラームステータスを左上に、次に重要なエラー率を右上に配置することで、インシデント発生時の初動が数秒速くなります。
時間範囲のデフォルトは3時間に設定する
ダッシュボードのデフォルト時間範囲は 3時間 が実務的にバランスが取れています。
- 15分〜1時間: 直近の詳細確認には良いが、トレンドが見えない
- 3時間(推奨): 障害の発生前後の変化とトレンドを両方確認できる
- 24時間〜: 大局的な確認に良いが、短期スパイクが埋もれる
設定方法:ダッシュボード右上の時間選択で「カスタム」→「3h」を選択 → 「デフォルトとして保存」。
TerraformでダッシュボードをIaC管理する
ダッシュボードをコンソールで手動作成すると、環境間のコピーや変更履歴の管理が難しくなります。Terraformを使ってコードで管理することで、本番・ステージングへの一括適用と変更レビューが可能になります。
resource "aws_cloudwatch_dashboard" "service_health" {
dashboard_name = "${var.env}-service-health"
dashboard_body = jsonencode({
widgets = [
{
type = "alarm"
x = 0
y = 0
width = 12
height = 6
properties = {
title = "アラーム状態"
alarms = [
aws_cloudwatch_metric_alarm.alb_5xx.arn,
aws_cloudwatch_metric_alarm.alb_latency.arn,
]
}
},
{
type = "metric"
x = 12
y = 0
width = 12
height = 6
properties = {
title = "5xxエラー率 (%)"
period = 60
metrics = [
["AWS/ApplicationELB", "HTTPCode_ELB_5XX_Count",
"LoadBalancer", "${var.env}-alb",
{ id = "m1", visible = false }],
["AWS/ApplicationELB", "RequestCount",
"LoadBalancer", "${var.env}-alb",
{ id = "m2", visible = false }],
[{ expression = "m1/m2*100", label = "5xxエラー率", id = "e1" }]
]
}
}
]
})
}
Terraformで管理すると、ダッシュボード定義がGitで管理されます。変更時はPRレビューを通すことで「なぜこのウィジェットを追加したか」の意図が残り、チームの共有資産として機能します。
まとめ
本記事のポイントを整理します。
- 1ダッシュボード1目的 が設計の基本。詰め込みすぎない
- 最初に作るべきは2つ:サービスヘルスダッシュボードとSLO/エラーバジェットダッシュボード
- ウィジェットは左上が最重要:アラームステータスを左上に配置して初動を速くする
- テキストウィジェット でRunbookリンクをダッシュボードに埋め込むと、インシデント対応が一画面で完結する
- Variables を使うと環境別に使い回せるダッシュボードを作れる
- Terraform で管理するとコードレビュー・環境間コピーが楽になる
CloudWatch入門 → アラーム設定 → CloudWatch Logs → Logs Insightsクエリ → SLI/SLO設計 → 本記事(ダッシュボード)の順で読むことで、CloudWatchを使った監視設計の全体を体系的に習得できます。
CloudWatch監視設計を体系的に学ぶ
ダッシュボード設計・アラーム設計・SLO管理・インシデント対応フローをひとつながりで学びたい方は、Udemyコース 「AWS×SRE入門〜CloudWatchで学ぶ監視設計の基礎〜」 をご確認ください。
実務に直結した内容をずんだもん解説で学べます。

コメント