目次

AWS User Notifications 完全ガイド v2.0

AWS サービス通知を Email/SMS/Slack/モバイルに一元配信する統合通知プラットフォーム

AWS User Notifications は、「AWS サービスからの通知を Email / SMS / AWS Console / AWS Chatbot(Slack/Chime)/ モバイルアプリに一元配信・管理するサービス」 であり、CloudWatch アラーム・EC2 状態変化・Security Hub 検出事項・AWS Health イベント・Cost Anomaly Detection など 50+ サービスの通知をユーザー単位で一元設定。通知フィルタリング・ルーティング・集約により、アラート疲弊(Alert Fatigue)を軽減。Notification Hub でイベントルール・チャンネル・サブスクリプションを統一管理。AWS Console Mobile App・AWS Chatbot との統合で、外出中・チャットベースでの即時対応。2023 GA で一般利用可能。本ドキュメントは、User Notifications の本質・設定・ユースケース・SNSEventBridge との使い分け・ベストプラクティス・2025-2026 動向を体系的に解説します。

ドキュメントの目的

本ガイドは以下を対象としています。

  • 運用チーム向け: CloudWatch・Health イベントの一元通知管理
  • DevOps 向け: CI/CD・インフラ変更の自動通知・エスカレーション
  • セキュリティチーム向け: Security Hub・GuardDuty 検出事項の即座通知
  • CTO・運用責任者向け: 組織全体の通知規約・チャネル管理
  • インシデント対応向け: 重大イベント(障害・セキュリティ)の優先通知

2025-2026 年の AWS User Notifications エコシステム

  • AI Digest(計画中):重要度・優先度を AI が自動判定、まとめて配信
  • Chatbot 統合拡張:Microsoft Teams・Discord・Webhook サポート(2025年予定)
  • SMS 配信強化:国際送信対応・双方向 SMS(応答機能)
  • Notification Rules の複雑化:正規表現・複合条件サポート
  • Cost Anomaly Detection 統合:予算超過の自動即時通知
  • Slack Huddle 統合:通知 → Slack Huddle 会議自動起動(計画中)

目次

  1. 概要
  2. User Notifications が解決する課題
  3. 主な特徴
  4. アーキテクチャ
  5. コアコンポーネント
  6. Notification Hub(通知ハブ)
  7. Notification Channel(通知チャネル)
  8. Notification Rule(通知ルール)
  9. Event Sources(イベントソース)
  10. Target Types(ターゲットタイプ)
  11. セットアップ・設定例
  12. AWS Chatbot(Slack/Chime)統合
  13. AWS Console Mobile App 統合
  14. SNS・EventBridge との比較
  15. アラート疲弊対策
  16. ユースケース
  17. 類似サービス比較
  18. ベストプラクティス
  19. トラブルシューティング
  20. 2025-2026 最新動向
  21. 学習リソース
  22. 実装例
  23. チェックリスト
  24. まとめ

概要

初心者向けメモ: AWS User Notifications は「AWS サービスからの通知を Email・Slack・SMS・モバイルアプリに一元配信する通知管理サービス」です。従来は CloudWatch アラーム・SNS トピック・EventBridge ルール・AWS Health Dashboard などが個別に通知を送ってきたため、運用チームは複数チャネルから通知を受信し、重要度を判定・トリアージするのに時間がかかりました。User Notifications は全サービスの通知を一元管理し、「重要な通知だけを適切な担当者に適切なチャネルで配信」を実現します。

AWS 公式による定義:

“AWS User Notifications is a managed service that provides a centralized way to manage and distribute notifications from AWS services to your users.”

User Notifications の位置づけ

AWS サービスのイベント
  │
  ├─ CloudWatch Alarm(アラーム状態変化)
  ├─ EC2 状態変化
  ├─ Security Hub 検出事項
  ├─ AWS Health イベント
  ├─ Cost Anomaly Detection
  └─ 50+ サービス
  
  ↓
  
User Notifications(一元管理・フィルタリング・ルーティング)
  │
  ├─ Email(admin@company.com)
  ├─ SMS(+81-90-XXXX-XXXX)
  ├─ Slack(#ops-alerts チャネル)
  ├─ AWS Chatbot(Chime 統合)
  ├─ AWS Console(通知センター)
  └─ モバイルアプリ(プッシュ通知)

このサービスを選ぶ理由

なぜ AWS User Notifications でないといけないのか?

  • 通知の一元化・集約:CloudWatch・Health・Security Hub・EC2 など複数サービスの通知が SNS トピック経由で個別に届くと、重複・重要度不明。User Notifications で全通知をフィルタ・集約して重要な通知のみ配信
  • アラート疲弊(Alert Fatigue)軽減:警告通知が多すぎて麻痺する運用チームを、ノイズ除去・優先度付けで対応
  • チャネル統一管理:Email・Slack・SMS の複数チャネルを一元設定。ユーザー 1 人が複数チャネル登録時、全チャネルに自動配信
  • AWS Console Mobile App 統合:外出中の CTO・運用責任者が通知をスマートフォンで即座確認・アクション(再起動など)
  • AWS Chatbot との深い統合:Slack チャネル内で「通知 → Slack スレッド内で詳細確認 → ボタンクリックで EC2 再起動」をノーコードで実現
  • 無料:User Notifications 自体は無料(SMS・Email は SNS 料金に準拠)

具体的なユースケース

  • 運用チーム:Production 環境の CloudWatch アラーム・EC2 状態変化を Slack の #ops-alerts に一元配信し、チーム全体で可視化
  • セキュリティチーム:Security Hub の CRITICAL 検出事項を セキュリティエンジニアの Slack DM・メール・PagerDuty に同時配信して 15 分以内対応
  • 複数アカウント運用:AWS Health で全アカウントのサービス障害・メンテナンス通知を集約して CTO に自動メール配信
  • Cost 管理:Cost Anomaly Detection で異常検知 → 財務チームの Slack #finance と CFO メールに自動配信して超過対応
  • デプロイパイプライン:CodePipeline デプロイ完了 → User Notifications で #deployments チャネルに自動通知

User Notifications が解決する課題

課題 従来の方法 User Notifications での解決
複数サービスの通知がバラバラ CloudWatch・Health・Security Hub から個別に通知 全サービス通知を一元フィルタ・配信
通知が多すぎて重要度判定困難 アラート疲弊・見逃し発生 ルール・優先度付けで重要通知のみ配信
複数チャネル管理が煩雑 Email・Slack・SMS の設定が分散 User Notifications で統一管理
チャットツール未導入の通知が通らない SNS だけでは Slack へ送信不可(Lambda 経由で実装) AWS Chatbot 統合で直接 Slack 配信
外出中にアラートを確認できない ノートパソコン必須 モバイルアプリで即座確認
On-call 担当者への通知ルーティングが手動 PagerDuty 連携などで別途実装 User Notifications で自動ルーティング
組織全体の通知規約が統一されていない チーム・個人で異なる設定 組織レベルで統一ポリシー適用

主な特徴

mindmap
  root((AWS User Notifications))
    統合通知ハブ
      全 AWS サービス通知を一箇所で管理
      通知ルール / チャネル / サブスクリプション
      リージョン単位で独立管理
    50+ サービスのイベントソース
      CloudWatch Alarm
      EC2
      RDS
      Security Hub
      GuardDuty
      AWS Health
      Cost Anomaly Detection
    複数チャネルサポート
      Email
      SMS
      AWS Chatbot
      AWS Console
      モバイルアプリ
    ルールベースのフィルタリング
      イベントタイプ
      重要度 / 優先度
      リソースタグ / リージョン
      カスタム条件
    AI Digest
      重複・低優先度通知を自動除去
      複数通知を1つの Digest に集約
      時間帯別スケジュール制御
    深い統合
      Slack チャネル配信
      スレッド内アクション
      ダッシュボード共有
    Organizations 統合
      複数アカウント通知集約
      組織レベルのルール適用
      統一ポリシー
    価格
      サービス自体無料
      SMS は SNS 従量課金
      Email は無料

アーキテクチャ

AWS Services(イベントソース)
  │
  ├─ CloudWatch Alarm
  ├─ EC2 State Changes
  ├─ RDS Events
  ├─ Security Hub Findings
  ├─ AWS Health Events
  └─ 45+ other services
  │
  ├─ EventBridge(内部)で通知を キャプチャ
  │
  ↓
  
User Notifications Notification Hub
  ├─ Notification Configuration(ルール管理)
  │  ├─ Event Rule(どのイベントを通知するか)
  │  ├─ Filter(リソースタグ・優先度別)
  │  └─ Target(どのチャネルに送信するか)
  │
  ├─ Notification Channel(チャネル管理)
  │  ├─ Email Channel
  │  ├─ SMS Channel
  │  ├─ Chatbot Channel(Slack/Chime)
  │  └─ Mobile Channel(プッシュ通知)
  │
  └─ Notification Subscription(ユーザー登録)
     ├─ User A → Email + Slack
     ├─ User B → SMS + Slack + Mobile
     └─ User C → Email のみ
  │
  ↓
  
Delivery(配信)
  │
  ├─ Email Service(SES/SNS)
  ├─ SMS Gateway(Pinpoint/SNS)
  ├─ AWS Chatbot → Slack Webhook
  ├─ AWS Chatbot → Chime Message
  ├─ AWS Console Notification Center
  └─ Mobile App Push Notification(Pinpoint)
  │
  ↓
  
User(受取側)
  │
  ├─ Email inbox
  ├─ SMS message
  ├─ Slack #channel
  ├─ AWS Console notification bell
  └─ Mobile phone notification

コアコンポーネント

1. Notification Hub(通知ハブ)

リージョン単位で作成される中央通知管理エンドポイント。

# Notification Hub 作成
aws notifications create-notification-hub \
  --region ap-northeast-1

# 出力:
# {
#   "notificationHubArn": "arn:aws:notifications:ap-northeast-1:123456789012:notification-hub/default"
# }

2. Notification Channel(通知チャネル)

ユーザーが通知を受け取る先。

Email Channel:
  ├─ Email Address: admin@company.com
  ├─ Verification Status: VERIFIED
  └─ Created: 2026-04-27

SMS Channel:
  ├─ Phone Number: +81-90-XXXX-XXXX
  ├─ Verification Status: VERIFIED
  └─ Created: 2026-04-27

Chatbot Channel (Slack):
  ├─ Workspace: company-aws
  ├─ Channel: #ops-alerts
  ├─ Authorization Status: CONNECTED
  └─ Created: 2026-04-20

Mobile Channel:
  ├─ Device ID: arn:aws:mobile:device/...
  ├─ Platform: iOS / Android
  └─ Push Enabled: Yes

3. Notification Configuration(通知ルール)

どのイベントをどのチャネルに配信するかを定義。

{
  "name": "production-critical-alerts",
  "description": "Critical production alerts to on-call team",
  "enabled": true,
  "eventSelectors": [
    {
      "eventSource": "cloudwatch",
      "eventTypes": ["AlarmStateChange"],
      "filters": {
        "alarmName": ["prod-*"],
        "stateValue": ["ALARM"]
      }
    },
    {
      "eventSource": "securityhub",
      "eventTypes": ["Finding"],
      "filters": {
        "severity": ["CRITICAL", "HIGH"]
      }
    }
  ],
  "targets": [
    {
      "targetType": "Email",
      "targetValue": "oncall@company.com"
    },
    {
      "targetType": "Chatbot",
      "targetValue": "arn:aws:chatbot::123456789012:slack-channel/ops-alerts"
    }
  ],
  "aggregationPolicy": {
    "enabled": true,
    "duration": 5,  // 5分間で同じタイプ通知を集約
    "maxNotifications": 10
  }
}

4. Event Sources(50+ サービス)

サービス イベントタイプ 説明
CloudWatch AlarmStateChange アラーム状態変化(OK → ALARM など)
EC2 InstanceStateChange インスタンス起動・停止・終了
EC2 SpotInstanceInterruption スポットインスタンス割り込み
RDS DatabaseMaintenanceScheduled メンテナンス予定通知
RDS DatabaseEvent フェイルオーバー・バックアップ完了
Security Hub Finding セキュリティ検出事項
GuardDuty Finding 脅威検出
AWS Health ScheduledChange サービス障害・メンテナンス
Cost Anomaly AnomalyDetected コスト異常検知
Lambda ExecutionFailure 関数実行失敗
CodePipeline ExecutionStateChange パイプライン実行完了・失敗
CodeDeploy DeploymentStateChange デプロイ完了・失敗

Notification Hub(通知ハブ)

Hub の作成・初期化

# Notification Hub を作成(リージョン単位)
aws notifications create-notification-hub \
  --region ap-northeast-1

# Hub のステータス確認
aws notifications get-notification-hub-status \
  --region ap-northeast-1

Hub 内の リソース一覧

Notification Hub (ap-northeast-1)
├── Email Contacts (5)
│   ├─ admin@company.com
│   ├─ oncall@company.com
│   ├─ security-team@company.com
│   ├─ cto@company.com
│   └─ finance@company.com
│
├── SMS Contacts (2)
│   ├─ +81-90-XXXX-XXXX(on-call manager)
│   └─ +81-80-YYYY-YYYY(CTO)
│
├── Chatbot Channels (3)
│   ├─ #ops-alerts(Slack)
│   ├─ #security-findings(Slack)
│   └─ aws-notifications(Chime)
│
├── Notification Configurations (6)
│   ├─ production-critical-alerts
│   ├─ security-hub-findings
│   ├─ aws-health-events
│   ├─ cost-anomaly-detection
│   ├─ ec2-state-changes
│   └─ codepipeline-deployments
│
└── Subscriptions (8)
    ├─ John Doe → Email + Slack
    ├─ Jane Smith → SMS + Slack + Mobile
    ├─ Security Team → Email + Slack
    └─ ...

Notification Channel(通知チャネル)

Email Channel 設定

# Email チャネル作成
aws notifications create-email-contact \
  --email-address admin@company.com \
  --region ap-northeast-1

# 出力: メールアドレス確認リンクが送付される

SMS Channel 設定

# SMS チャネル作成
aws notifications create-sms-contact \
  --phone-number "+81-90-1234-5678" \
  --region ap-northeast-1

# 確認コード入力で登録完了

Slack Channel 設定

# AWS Chatbot と Slack Workspace を事前に連携

# User Notifications で Slack チャネルを指定
aws notifications add-chatbot-channel \
  --slack-workspace "company-aws" \
  --slack-channel "#ops-alerts" \
  --region ap-northeast-1

Notification Rule(通知ルール)

ルール作成フロー

# 1. CloudWatch Alarm → Slack 通知ルール
aws notifications create-notification-rule \
  --name "cloudwatch-alarms-to-slack" \
  --event-sources cloudwatch \
  --event-types AlarmStateChange \
  --targets "arn:aws:chatbot::123456789012:slack-channel/ops-alerts" \
  --enabled true \
  --region ap-northeast-1

# 2. Security Hub Critical → Email + Slack
aws notifications create-notification-rule \
  --name "securityhub-critical" \
  --event-sources securityhub \
  --event-types Finding \
  --filters '{"severity":["CRITICAL"]}' \
  --targets \
    "email:security-team@company.com" \
    "arn:aws:chatbot::123456789012:slack-channel/security-findings" \
  --region ap-northeast-1

# 3. AWS Health イベント → CTO メール + 携帯 SMS
aws notifications create-notification-rule \
  --name "aws-health-critical-events" \
  --event-sources aws-health \
  --event-types ScheduledChange,UnscheduledChange \
  --filters '{"eventCategory":["issue","accountNotification"]}' \
  --targets \
    "email:cto@company.com" \
    "sms:+81-90-XXXX-XXXX" \
  --region ap-northeast-1

ルール編集・有効化/無効化

# ルール更新
aws notifications update-notification-rule \
  --rule-arn "arn:aws:notifications:ap-northeast-1:123456789012:rule/cloudwatch-alarms-to-slack" \
  --enabled true

# ルール一覧
aws notifications list-notification-rules \
  --region ap-northeast-1

# ルル削除
aws notifications delete-notification-rule \
  --rule-arn "arn:aws:notifications:..." \
  --region ap-northeast-1

Event Sources(イベントソース)

CloudWatch Alarm 通知

アラーム状態遷移:
  OK → ALARM → OK
       ↓
    User Notifications がキャッチ
       ↓
    Email + Slack に通知:
    "Production RDS CPU High: 92%(期間: 5 分)"

EC2 State Changes

インスタンス状態遷移:
  running → stopping → stopped
                ↓
          通知配信:
          "i-1234567890abcdef0: Production App Server has stopped"
          "[View Instance] [Start Instance] [Restart Instance]"

Security Hub Findings

新しい検出事項:
  Severity: CRITICAL
  Title: "Unrestricted SSH access (0.0.0.0/0)"
  Resource: sg-12345678
       ↓
    User Notifications:
    - Email to security-team@company.com
    - Slack #security-findings
    - 自動アクション: Security Group ルール修復 proposal

AWS Health Events

サービス障害・メンテナンス通知:
  Service: RDS (ap-northeast-1)
  Event: "Scheduled Maintenance"
  Window: 2026-05-15 02:00-03:00 JST
       ↓
    User Notifications:
    - Email to ops-team@company.com
    - Slack #ops-alerts
    - 事前通知で対応時間確保

Cost Anomaly Detection

コスト異常検知:
  Anomaly: Daily cost jumped from $150 to $380
  Service: EC2(Compute)
  Confidence: 95%
       ↓
    User Notifications:
    - Email to finance@company.com
    - Slack #finance
    - Cost Explorer ダッシュボードリンク付き

Target Types(ターゲットタイプ)

Email Target

{
  "targetType": "Email",
  "targetValue": "admin@company.com",
  "properties": {
    "displayName": "Admin Team",
    "language": "ja_JP",
    "timezone": "Asia/Tokyo"
  }
}

SMS Target

{
  "targetType": "SMS",
  "targetValue": "+81-90-1234-5678",
  "properties": {
    "displayName": "On-Call Manager",
    "maxMessages": 5  // 1 時間に最大 5 SMS
  }
}

AWS Chatbot Target

{
  "targetType": "Chatbot",
  "targetValue": "arn:aws:chatbot::123456789012:slack-channel/ops-alerts",
  "properties": {
    "platform": "Slack",
    "workspace": "company-aws",
    "channel": "#ops-alerts",
    "threadedMode": true,
    "actionButtons": true  // ボタン表示
  }
}

Mobile App Target

{
  "targetType": "Mobile",
  "targetValue": "arn:aws:mobile:device/user-123/ios",
  "properties": {
    "platform": "iOS",
    "priority": "high",
    "sound": "default",
    "badge": true
  }
}

セットアップ・設定例

例 1:Production 環境の Critical アラーム → Slack + Email

#!/bin/bash

# Step 1: Email チャネル作成
aws notifications create-email-contact \
  --email-address oncall@company.com \
  --region ap-northeast-1

# Step 2: Slack チャネル設定(AWS Chatbot 事前連携)
# (AWS Chatbot コンソールで設定)

# Step 3: CloudWatch Alarm → Slack + Email ルール
aws notifications create-notification-rule \
  --name "production-critical-alarms" \
  --event-sources cloudwatch \
  --event-types AlarmStateChange \
  --filters '{
    "alarmName": ["prod-*"],
    "stateTrigger": ["OK_to_ALARM"]
  }' \
  --targets \
    "email:oncall@company.com" \
    "arn:aws:chatbot::123456789012:slack-channel/prod-alerts" \
  --enabled true \
  --region ap-northeast-1

例 2:複数 AWS アカウント → 集約通知

# Organizations レベルでの統一ルール

# Management Account で設定
aws notifications create-notification-rule \
  --name "organization-level-health-events" \
  --event-sources aws-health \
  --scope ORGANIZATION  # 全アカウントのイベント対象
  --targets "email:cto@company.com" \
  --region us-east-1

例 3:Security Hub CRITICAL + HIGH → Slack + PagerDuty

# User Notifications で Slack に通知
aws notifications create-notification-rule \
  --name "security-hub-critical-high" \
  --event-sources securityhub \
  --event-types Finding \
  --filters '{
    "severity": ["CRITICAL", "HIGH"]
  }' \
  --targets "arn:aws:chatbot::123456789012:slack-channel/security" \
  --region ap-northeast-1

# Slack チャネルで AWS Chatbot と PagerDuty 統合
# → Slack スレッドで PagerDuty incident 自動作成(Slack Workflow)

AWS Chatbot(Slack/Chime)統合

Slack チャネル設定

1. AWS Chatbot コンソール
   → Create new Slack channel integration
     Slack Workspace: company-aws
     Channel: #ops-alerts
     
2. Slack 側で確認
   AWS Chatbot app がチャネルに参加
   
3. User Notifications で Slack チャネルを指定
   → 通知自動配信開始

Slack メッセージ例

┌───────────────────────────────────────────────┐
│ 🔴 AWS CloudWatch                            │
│ Production RDS: CPU Utilization High        │
│                                              │
│ Alarm Name: prod-mysql-cpu-high             │
│ Severity: HIGH                              │
│ Duration: 15 minutes                         │
│ Current: 92% (Threshold: 80%)               │
│ Region: ap-northeast-1                      │
│                                              │
│ [View in CloudWatch] [View Dashboard]       │
│ [Acknowledge] [Snooze 1h]                   │
│                                              │
│ Timestamp: 2026-04-27 10:30:45 JST          │
└───────────────────────────────────────────────┘

Slack ボタンアクション(AWS Chatbot 連携)

ユーザーが [Start RDS DB] ボタンクリック
  ↓
AWS Chatbot が API 呼び出し
  ↓
RDS インスタンス起動
  ↓
Slack スレッドに結果フィードバック:
"✅ RDS instance prod-mysql-01 is starting..."

AWS Console Mobile App 統合

モバイルプッシュ通知

User Notifications で Mobile Channel 登録
  ↓
iOS/Android AWS Console App にプッシュ通知
  
例:
  🔔 Critical: Production EC2 Instance Terminated
  Tap to view details in Console
  [View] [Acknowledge]

モバイルでのアクション

スマートフォンから:

1. EC2 インスタンス起動・停止
   Console App
   → Instances
   → [Start Instance] ボタン
   → 確認ダイアログ
   → 実行
   
2. CloudWatch ダッシュボード表示
   → リアルタイムメトリクス確認
   
3. セキュリティイベント詳細確認
   Security Hub Finding → 詳細表示

SNS・EventBridge との比較

観点 User Notifications SNS EventBridge
目的 ユーザー向け通知一元化 メッセージング・プログラム間通信 イベント駆動・複雑なルーティング
対象ユーザー 人間(Email・SMS・Slack) システム・アプリケーション DevOps・Event-driven architects
チャネル Email / SMS / Slack / Mobile / Console HTTP / Lambda / SQS / Email 20+ ターゲット(Lambda・SQS・API など)
ルール複雑性 シンプル(フィルタ・集約) トピックベース(単純) 複雑なルーティング・変換・条件
UI 設定 Console・CLI で簡単 CLI・IaC CLI・IaC・複雑
AI 集約機能 ✅ Digest(計画中)
Slack 統合 ✅ 直接統合 △ Lambda 経由 △ Lambda 経由
推奨用途 オペレーター通知 システム間メッセージ 複雑な Event Orchestration

使い分け

  • User Notifications:運用チームへの人間向け通知(CloudWatch アラーム・Health イベント)
  • SNS:アプリケーション間のメッセージング(Lambda → SQS・Lambda → Lambda)
  • EventBridge:複雑なイベントルーティング・変換・自動修復トリガー

アラート疲弊対策

1. 通知フィルタリング

// 本番環境のみ通知
{
  "filters": {
    "resourceTag": {
      "Environment": ["production"]
    }
  }
}

// CRITICAL / HIGH のみ
{
  "filters": {
    "severity": ["CRITICAL", "HIGH"]
  }
}

2. Aggregation(集約)

{
  "aggregationPolicy": {
    "enabled": true,
    "duration": 5,  // 5分間の同じタイプ通知を1つに
    "maxNotifications": 1,  // 最大1通
    "groupBy": "alarmName"  // アラーム別
  }
}

3. Time-based Suppression(時間帯制限)

{
  "suppressionSchedule": {
    "weekdays": "MON-FRI",
    "startTime": "00:00",
    "endTime": "08:00",  // 0-8時は INFO レベル除外
    "suppressionLevel": "INFO"
  }
}

4. Auto-Deduplication(自動重複排除)

{
  "deduplication": {
    "enabled": true,
    "deduplicationKey": "alarmName",
    "deduplicationWindow": 10  // 10分以内の重複を1つに
  }
}

ユースケース

ユースケース 1:24/7 運用チーム向けアラート集約

シナリオ:Production 環境の CloudWatch アラーム 50 個をリアルタイム監視

Solution

1. User Notifications Hub 作成(ap-northeast-1, us-east-1)
2. On-call Engineer Email + Slack 登録
3. Production CloudWatch アラーム → Slack #ops-alerts
4. Email:CRITICAL アラームのみ(Aggregation: 5 分)
5. AI Digest:毎日朝 9 時に前夜の WARNING まとめ配信

効果

  • CRITICAL 通知に即座対応(Slack で 5 分以内)
  • WARNING は朝 Digest で確認(夜間騒音なし)
  • 通知フローの透明性向上

ユースケース 2:セキュリティチーム向け検出事項通知

シナリオ:Security Hub で 100+ 検出事項が日々発生

Solution

  1. CRITICAL 検出事項 → Slack #security + PagerDuty(即座)
  2. HIGH 検出事項 → Email + Slack(自動集約)
  3. MEDIUM/LOW → Daily Digest のみ
  4. リソースタグ別フィルタ(重要業務系=即座、その他=集約)

効果

  • セキュリティチームが CRITICAL に集中
  • ノイズ低減・対応効率 5 倍向上

ユースケース 3:複数アカウント AWS Health 通知

シナリオ:10 個の本番アカウント、メンテナンス・障害の一元監視

Solution

  1. Management Account で Organization レベルのルール
  2. AWS Health イベント(全アカウント)
  3. CTO + Ops Lead に Email + SMS 配信
  4. EventBridge で自動修復(Failover など)トリガー

効果

  • AWS 側メンテナンスに最小 15 分で対応
  • 複数アカウント管理の一元化

類似サービス比較

サービス 用途 通知先 複雑度
AWS User Notifications ユーザー向け通知一元化 Email/SMS/Slack/Mobile 簡単
AWS SNS メッセージング・通知 Email/SMS/HTTP/Lambda 中程度
AWS EventBridge Event Orchestration 20+ ターゲット 複雑
PagerDuty On-call・Incident Management SMS/Phone/Slack/Escalation 複雑
Opsgenie Alert Management(Atlassian) SMS/Slack/Webhook 中程度
Slack Notifications Slack 内通知 Slack のみ 簡単
Webhook・Custom Lambda 完全カスタム 無限 非常に複雑

ベストプラクティス

✅ 推奨プラクティス

1. リージョン毎に Hub を構成

# 本番環境は複数リージョン対応
aws notifications create-notification-hub --region ap-northeast-1
aws notifications create-notification-hub --region us-east-1

2. チャネル・ルールを階層化

Organization Level (Management Account):
  ├─ AWS Health 全体イベント → CTO + Ops Lead

Team Level (各 Account):
  ├─ Production アラーム → On-call Engineer + Slack
  ├─ Development アラーム → Dev Team Slack
  └─ Security findings → Security Team

Individual Level (各ユーザー):
  ├─ Personal preference(Email/SMS/Mobile)
  └─ Time-zone based suppression

3. Aggregation・Deduplication で ノイズ低減

{
  "aggregationPolicy": {
    "enabled": true,
    "duration": 5,
    "deduplication": true
  }
}

4. CloudTrail で 通知ルール変更を監査

aws cloudtrail lookup-events \
  --event-name CreateNotificationRule \
  --max-results 10

❌ アンチパターン

アンチパターン 問題 代替
全通知を Slack に配信 Slack が spam 化・重要通知見落とし フィルタ・ルール化・Aggregation
Email と SMS を全通知に設定 SMS コスト・騒音増加 CRITICAL のみ SMS
ルールを個別管理(チーム毎) 統一性なし・変更追跡困難 Organization レベルテンプレート
Notification Hub 削除 全ルール・チャネル喪失 定期バックアップ・Terraform 管理

トラブルシューティング

症状 原因 対策
Email が届かない メールアドレス未確認・迷惑メール Notification Hub で Verification Status 確認・メール許可リスト追加
Slack 通知が来ない AWS Chatbot 未連携・チャネルアクセス権不足 AWS Chatbot コンソール → チャネル再認可
SMS が送信失敗 電話番号フォーマット不正・国別制限 E.164 フォーマット確認(+81-90-…)
通知が多すぎて Slack spam フィルタ設定なし Aggregation Policy・Deduplication 有効化
一部通知しか来ない ルールが有効化されていない Notification Configuration の enabled フラグ確認
旧規約が未削除 AWS Lambda で SNS トピック併用 旧ルール削除・User Notifications に統一

2025-2026 最新動向

1. AI Digest(2025 Q3 予定)

毎日朝 9 時に集約 Digest 配信

前夜の通知サマリー:
  CRITICAL: 2 件(即座対応済)
  HIGH: 5 件(Aggregated)
  INFO: 23 件(サマリー)
  
AI 判定:
  「このパターンの警告は本番 EC2 の定期再起動」
  → 一般的・無視可能判定
  → Digest に含めない

2. Slack Huddle 統合(計画中)

Critical Alert 発生
  ↓
Slack 通知
  ↓
[Start Huddle] ボタン
  ↓
Team が Slack Huddle で即座に相談
  ↓
CloudWatch Dashboard 共有

3. Teams・Discord 対応(2025 予定)

現在: Slack・Amazon Chime のみ
追加予定:
  ├─ Microsoft Teams
  ├─ Discord
  └─ Generic Webhook(カスタム Chatbot)

4. Bidirectional SMS(応答機能)

SMS 受信:

"prod-mysql 再起動しますか? [1] Yes [2] No"
  ↓
ユーザーが [1] 返信
  ↓
AWS Lambda トリガー
  ↓
RDS 再起動実行

学習リソース

公式ドキュメント

動画・チュートリアル

  • AWS Skill Builder - “User Notifications Deep Dive”
  • YouTube - “AWS Notifications for Slack”

実装例

例:Production CloudWatch + Security Hub → Slack + Email

#!/bin/bash

REGION="ap-northeast-1"

# 1. Email チャネル
aws notifications create-email-contact \
  --email-address oncall@company.com \
  --region $REGION

# 2. Slack チャネル(AWS Chatbot 事前連携)

# 3. CloudWatch → Slack
aws notifications create-notification-rule \
  --name "prod-cloudwatch-critical" \
  --event-sources cloudwatch \
  --event-types AlarmStateChange \
  --filters '{
    "alarmName": ["prod-*"],
    "stateTrigger": ["OK_to_ALARM"]
  }' \
  --targets "arn:aws:chatbot::123456789012:slack-channel/ops-alerts" \
  --aggregation-policy '{
    "enabled": true,
    "duration": 5,
    "deduplication": true
  }' \
  --enabled true \
  --region $REGION

# 4. Security Hub → Email + Slack
aws notifications create-notification-rule \
  --name "security-hub-critical-high" \
  --event-sources securityhub \
  --event-types Finding \
  --filters '{
    "severity": ["CRITICAL", "HIGH"],
    "resourceTag": {
      "Environment": ["production"]
    }
  }' \
  --targets \
    "email:security-team@company.com" \
    "arn:aws:chatbot::123456789012:slack-channel/security-findings" \
  --enabled true \
  --region $REGION

echo "✅ User Notifications setup completed"

チェックリスト

セットアップ前

  • [ ] 通知チャネル(Email・SMS・Slack)を事前に確認
  • [ ] AWS Chatbot で Slack Workspace 認可済み
  • [ ] On-call 当番表を準備
  • [ ] 通知ルール優先度・フィルタを設計

セットアップ後

  • [ ] Notification Hub 作成確認
  • [ ] Email チャネル Verification Status = VERIFIED
  • [ ] SMS チャネル番号確認
  • [ ] Slack チャネルで AWS Chatbot ボタンテスト
  • [ ] 全ルール有効確認

運用開始後

  • [ ] 日次:Slack 通知・Email 受信状況確認
  • [ ] 週 1 回:CloudTrail で ルール変更監査
  • [ ] 月 1 回:通知ボリューム・Aggregation 効果確認
  • [ ] 月 1 回:ルール見直し(不要なルール削除・新規ルール追加)
  • [ ] 四半期ごと:チャネル・チーム構成変更反映

まとめ

AWS User Notifications は 「AWS サービス通知をユーザー向けに一元配信・集約・管理するサービス」 で、CloudWatch・Security Hub・AWS Health・EC2 イベント 50+ サービスの通知を Email・SMS・Slack・Mobile に統一配信。Aggregation・Deduplication でアラート疲弊軽減。Slack チャネル内ボタンで EC2 再起動など即座アクション。無料または低コストで運用チーム・セキュリティチームの生産性を大幅向上。

User Notifications が向いている場面

  • 運用チーム:Production 監視・アラート集約
  • セキュリティチーム:Security Hub・GuardDuty 検出事項の即座通知
  • 複数アカウント管理:Organization 全体の Health イベント一元化
  • チャットベース運用:Slack を中心とした DevOps

2025-2026 年の AI Digest・Slack Huddle 統合により、さらに対応効率向上が期待。


最終更新:2026-04-27 バージョン:v2.0