目次
- AWS サービス通知を Email/SMS/Slack/モバイルに一元配信する統合通知プラットフォーム
- 概要
- User Notifications が解決する課題
- 主な特徴
- アーキテクチャ
- コアコンポーネント
- Notification Hub(通知ハブ)
- Notification Channel(通知チャネル)
- Notification Rule(通知ルール)
- Event Sources(イベントソース)
- Target Types(ターゲットタイプ)
- セットアップ・設定例
- AWS Chatbot(Slack/Chime)統合
- AWS Console Mobile App 統合
- SNS・EventBridge との比較
- アラート疲弊対策
- ユースケース
- 類似サービス比較
- ベストプラクティス
- トラブルシューティング
- 2025-2026 最新動向
- 学習リソース
- 実装例
- チェックリスト
- まとめ
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 の本質・設定・ユースケース・SNS・EventBridge との使い分け・ベストプラクティス・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 会議自動起動(計画中)
目次
- 概要
- User Notifications が解決する課題
- 主な特徴
- アーキテクチャ
- コアコンポーネント
- Notification Hub(通知ハブ)
- Notification Channel(通知チャネル)
- Notification Rule(通知ルール)
- Event Sources(イベントソース)
- Target Types(ターゲットタイプ)
- セットアップ・設定例
- AWS Chatbot(Slack/Chime)統合
- AWS Console Mobile App 統合
- SNS・EventBridge との比較
- アラート疲弊対策
- ユースケース
- 類似サービス比較
- ベストプラクティス
- トラブルシューティング
- 2025-2026 最新動向
- 学習リソース
- 実装例
- チェックリスト
- まとめ
概要
初心者向けメモ: 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:
- CRITICAL 検出事項 → Slack #security + PagerDuty(即座)
- HIGH 検出事項 → Email + Slack(自動集約)
- MEDIUM/LOW → Daily Digest のみ
- リソースタグ別フィルタ(重要業務系=即座、その他=集約)
効果:
- セキュリティチームが CRITICAL に集中
- ノイズ低減・対応効率 5 倍向上
ユースケース 3:複数アカウント AWS Health 通知
シナリオ:10 個の本番アカウント、メンテナンス・障害の一元監視
Solution:
- Management Account で Organization レベルのルール
- AWS Health イベント(全アカウント)
- CTO + Ops Lead に Email + SMS 配信
- 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