目次
CloudWatch Network Synthetic Monitor 完全ガイド v2.0
VPC・ハイブリッド・マルチリージョン間ネットワーク品質監視プラットフォーム
概要
Amazon CloudWatch Network Synthetic Monitor は 「VPC 内のエンドポイント間、オンプレミスとの Direct Connect/VPN 接続、マルチリージョン間の通信における、パケットロス・レイテンシ・到達性をリアルタイムで測定・監視するサービス」 です。
エージェント不要で AWS ネットワークインフラから直接プローブを送信し、L3/L4(ネットワーク・トランスポート層)の品質指標を収集。CloudWatch Synthetics(アプリケーション層)と組み合わせることで、ネットワーク層からアプリケーション層まで完全な可観測性を実現します。
このサービスを選ぶ理由
なぜ CloudWatch Network Synthetic Monitor なのか
-
VPC フロー通信品質の能動的監視: VPC フローログは通信の記録であり過去を振り返るが、Network Synthetic Monitor は定期的なプローブで現在進行中のレイテンシ・パケットロスを継続測定。障害になる前の品質劣化を早期検出できる
-
Direct Connect/VPN ハイブリッド環境の品質監視: オンプレミスとの専用線・VPN 接続品質をエンドツーエンドで測定。帯域圧迫・レイテンシ増加を早期検出して SLA 監視・ネットワーク性能チューニングに活用
-
Internet Monitor との使い分け: Internet Monitor はインターネット経由でのユーザー向け接続品質を監視(CloudFront・ALB 等)するが、Network Synthetic Monitor は AWS リソース間・オンプレミス間といった AWS 制御下のネットワークパスを監視
-
マイクロサービス間通信の品質ベースライン: AZ をまたぐ通信・リージョン間通信のレイテンシベースラインを確立し、異常なレイテンシ増加を早期検出してボトルネック特定・キャパシティプランニングに活用
-
Transit Gateway・VPC Peering 経路の信頼性検証: Transit Gateway 設定変更後の通信確認、VPC Peering ルート設定の妥当性検証を定期プローブで自動化。手動の ping テストに依存しない
具体的なユースケース
-
金融機関がオンプレミスとの Direct Connect 接続品質を 24/7 監視。レイテンシ SLA(例:50ms 以下)逸脱時に自動アラート
-
SaaS プロバイダーが本番環境のマイクロサービス間通信(AZ 間)をプローブで継続測定。異常レイテンシ検出時にスケーリング・再配置を自動トリガー
-
大規模企業がマルチリージョン構成のグローバルアプリケーションの各リージョン間通信品質を一元監視
-
リージョン間 VPC Peering のレイテンシベースラインを確立して、ネットワーク性能劣化を早期検出
課題と特徴
Network Synthetic Monitor が解決する課題
❌ 課題:ネットワーク品質が手動・断片的
→ VPC フローログで「通信があったか」は分かるが「品質はどうか」は不明
→ ping テスト・iperf は手動実行・一時的・スケーラブルでない
→ ユーザーから「レスポンス遅い」という報告で初めて気付く
→ SLA 違反 → ペナルティ
✅ 解決:Network Synthetic Monitor で能動的・継続的・自動測定
→ 定期プローブでレイテンシ・パケットロスを 24/7 測定
→ 異常検出時に自動アラート
→ CloudWatch メトリクス・ダッシュボードで可視化
→ ネットワーク品質に基づいた SLA 達成の根拠
コアの特徴
| 特徴 | 説明 |
|---|---|
| エージェント不要 | AWS ネットワークインフラから直接プローブ送信。リソース側に agent インストール不要 |
| L3/L4 監視 | ネットワーク層(IP)・トランスポート層(TCP/UDP)レベルの通信品質を測定 |
| 複数プローブ源 | AWS グローバルネットワークの複数箇所からプローブを送信して冗長性確保 |
| 主要メトリクス | 往復レイテンシ(RTT)・パケットロス率・到達性(成功/失敗)を集約 |
| カスタマイズ可能 | パケットサイズ・プロトコル(TCP/UDP)・ポート番号を指定可能 |
| Internet Monitor との統合 | Internet Monitor では見えないプライベートネットワーク経路を補完 |
| CloudWatch 統合 | メトリクス・アラーム・ダッシュボード・ログで可視化・自動通知 |
アーキテクチャ(Mermaid 図 1)
graph TB
subgraph "プローブ送信層"
A["AWS Network Infrastructure<br/>Global Network"]
B["VPC Subnet<br/>Probe Source"]
end
subgraph "監視対象レイヤー"
C["EC2 Instance<br/>Private IP"]
D["RDS Endpoint<br/>Database"]
E["ALB / NLB<br/>Internal LB"]
F["VPC Endpoint<br/>PrivateLink"]
G["On-Premises<br/>Direct Connect / VPN"]
H["Multi-Region<br/>VPC Peering"]
end
subgraph "測定メトリクス"
I["Round-Trip Time<br/>Latency ms"]
J["Packet Loss<br/>Loss %"]
K["Reachability<br/>Success/Fail"]
L["Network Health Indicator<br/>AWS Path Status"]
end
subgraph "アウトプット"
M["CloudWatch Metrics<br/>Time Series Data"]
N["CloudWatch Alarms<br/>Threshold Alert"]
O["CloudWatch Dashboard<br/>Visualization"]
P["SNS / EventBridge<br/>Notifications"]
end
A --> B
B --> C
B --> D
B --> E
B --> F
B --> G
B --> H
C --> I
D --> I
E --> I
F --> I
G --> I
H --> I
C --> J
D --> J
E --> J
F --> J
G --> J
H --> J
C --> K
D --> K
E --> K
F --> K
G --> K
H --> K
I --> M
J --> M
K --> M
L --> M
M --> N
M --> O
N --> P
style A fill:#fff3cd
style B fill:#cfe2ff
style C fill:#e8f4f8
style D fill:#e8f4f8
style E fill:#e8f4f8
style F fill:#e8f4f8
style G fill:#e8f4f8
style H fill:#e8f4f8
style I fill:#d1ecf1
style J fill:#d1ecf1
style K fill:#d1ecf1
style L fill:#d1ecf1
style M fill:#d4edda
style N fill:#f8d7da
style O fill:#f8f9fa
style P fill:#f8d7da
コアコンポーネント詳細
1. Network Monitor(監視オブジェクト)
Network Monitor は監視対象ネットワークを定義する最上位オブジェクト。
# Network Monitor 作成
aws networkmonitor create-monitor \
--monitor-name "vpc-microservice-monitor" \
--aggregation-period 30 \
--tags "Environment=production,Team=platform"
# Monitor 詳細確認
aws networkmonitor get-monitor \
--monitor-name "vpc-microservice-monitor"
Monitor の構成
Network Monitor:
├── 名前・説明
├── Aggregation Period(30秒または 60秒)
├── Probes(複数プローブ定義)
│ ├── Probe 1: EC2 インスタンス(10.0.1.100:443 TCP)
│ ├── Probe 2: RDS エンドポイント(10.1.0.50:3306 TCP)
│ ├── Probe 3: On-Premises サーバー(203.0.113.10:22 TCP)
│ └── Probe 4: Multi-Region VPC(172.31.0.0:443 TCP)
└── CloudWatch Metrics
├── RTT(Round-Trip Time)
├── PacketLoss
└── Reachability
2. Network Probe(プローブ)
Probe は監視対象エンドポイントへの個別の通信テスト定義。
# Probe 作成
aws networkmonitor create-probe \
--monitor-name "vpc-microservice-monitor" \
--probe '{
"sourceArn": "arn:aws:ec2:ap-northeast-1:123456789012:subnet/subnet-12345678",
"destination": "10.0.1.100",
"destinationPort": 443,
"protocol": "TCP",
"packetSize": 56,
"description": "Monitor EC2 instance reachability"
}'
# Probe パラメータ
# sourceArn: プローブ送信元(VPC サブネット)
# destination: 監視対象 IP アドレス
# destinationPort: ターゲットポート(1-65535)
# protocol: TCP または UDP
# packetSize: パケットサイズ(56-1500 bytes)
Probe の種類
1. VPC Internal Probe
→ Source: VPC サブネット
→ Destination: 同じ VPC/別 VPC の EC2・RDS・ALB(プライベート IP)
→ 用途:マイクロサービス間通信品質監視
2. Hybrid Connectivity Probe
→ Source: VPC
→ Destination: On-Premises サーバー(Public IP)
→ Connection: Direct Connect / VPN
→ 用途:ハイブリッド環境通信品質監視
3. Multi-Region Probe
→ Source: リージョン A の VPC
→ Destination: リージョン B の VPC エンドポイント
→ Connection: VPC Peering / PrivateLink
→ 用途:リージョン間通信レイテンシ監視
3. CloudWatch Metrics(測定メトリクス)
Network Synthetic Monitor が出力する主要メトリクス:
AWS/NetworkMonitoring メトリクス:
1. RTT(Round-Trip Time)
単位:マイクロ秒(μs)・ミリ秒(ms)
説明:プローブ送信→応答返却までの時間
用途:レイテンシベースライン確立・性能低下検出
2. PacketLoss
単位:パーセンテージ(%)
説明:送信パケット中の失われたパケット割合
用途:ネットワーク信頼性監視・経路障害検出
3. Reachability
単位:成功/失敗(0/1)
説明:プローブが対象エンドポイントに到達したか
用途:エンドポイント可用性監視・死活監視
4. NetworkHealthIndicator
値:0(正常)/ 1(AWS 制御下のネットワークパスで異常)
説明:AWS ネットワークインフラ側で検出した異常
用途:自社環境とは別の AWS インフラ問題検出
主要ユースケース(10+)
1. マイクロサービス AZ 間通信品質監視
3 つ以上の AZ にデプロイされたマイクロサービス間通信を Network Synthetic Monitor で監視。AZ 間レイテンシの異常増加を自動検出。
2. Direct Connect 接続品質監視・SLA 達成
金融機関がオンプレミス↔AWS Direct Connect 接続のレイテンシ・パケットロスを継続監視。SLA(例:50ms 以下)達成を根拠付ける。
3. VPN 冗長化時の性能比較
VPN と Direct Connect の並行運用時に、VPN フェイルオーバー性能を Network Synthetic Monitor で検証。フェイルオーバー時のレイテンシ増加を定量的に把握。
4. マルチリージョン アプリケーションの地理的レイテンシ最適化
グローバル展開企業がリージョン間 VPC Peering のレイテンシを監視。ユーザー地域に最適なリージョンへのロードバランシングを根拠付ける。
5. Transit Gateway 経由複数 VPC 通信の品質監視
複数の VPC が Transit Gateway 経由で接続されている場合、各 VPC 間のレイテンシを Network Synthetic Monitor で監視。Transit Gateway の性能限界を検出。
6. RDS Multi-AZ フェイルオーバー時のレイテンシ増加検出
RDS Multi-AZ フェイルオーバー時に、アプリケーション→RDS 通信レイテンシが一時的に増加。Network Synthetic Monitor で増加期間を検出。
7. VPC PrivateLink(AWS サービスエンドポイント)への到達性監視
S3・DynamoDB・Lambda の VPC エンドポイント経由でのアクセスレイテンシを監視。エンドポイントの異常を早期検出。
8. ネットワーク設定変更前後の性能検証
ルーティングテーブル・セキュリティグループ・Network ACL 変更後、Network Synthetic Monitor のプローブでレイテンシ・パケットロスの変化を自動検証。
9. 新規 VPC・リージョン追加時のネットワーク性能ベースライン確立
新規 VPC・リージョンを AWS アーキテクチャに追加した際、早期段階でネットワーク性能ベースラインを確立。後続の性能低下を検出可能に。
10. CloudWatch Anomaly Detection との組み合わせ
Network Synthetic Monitor メトリクスに対して CloudWatch Anomaly Detection を適用。通常パターンから逸脱したレイテンシ増加を自動検出。
11. EventBridge + Lambda による自動対応
レイテンシ異常検出時に EventBridge → Lambda で自動対応。例:経路再構築・リソーススケーリング・監視チームへの自動通知。
12. SRE・プラットフォームチームの SLO 達成支援
SRO(Service Level Objective)として「API レイテンシ 200ms 以下」と定義した場合、ネットワークレイテンシが 50ms を超えないことを Network Synthetic Monitor で保証。
設定・操作の具体例
CLI 操作例
# Monitor 作成
aws networkmonitor create-monitor \
--monitor-name "production-network" \
--aggregation-period 30
# VPC サブネット内の EC2 インスタンス監視
aws networkmonitor create-probe \
--monitor-name "production-network" \
--probe "{
\"sourceArn\": \"arn:aws:ec2:ap-northeast-1:123456789012:subnet/subnet-1a2b3c4d\",
\"destination\": \"10.0.1.100\",
\"destinationPort\": 443,
\"protocol\": \"TCP\",
\"packetSize\": 56,
\"description\": \"Monitor web server\"
}"
# RDS エンドポイント監視(Multi-AZ 構成)
aws networkmonitor create-probe \
--monitor-name "production-network" \
--probe "{
\"sourceArn\": \"arn:aws:ec2:ap-northeast-1:123456789012:subnet/subnet-2e3f4g5h\",
\"destination\": \"mydb.c9akciq32.ap-northeast-1.rds.amazonaws.com\",
\"destinationPort\": 3306,
\"protocol\": \"TCP\",
\"packetSize\": 56,
\"description\": \"Monitor RDS reachability\"
}"
# On-Premises サーバー監視(Direct Connect 経由)
aws networkmonitor create-probe \
--monitor-name "production-network" \
--probe "{
\"sourceArn\": \"arn:aws:ec2:ap-northeast-1:123456789012:subnet/subnet-3f4g5h6i\",
\"destination\": \"203.0.113.10\",
\"destinationPort\": 22,
\"protocol\": \"TCP\",
\"packetSize\": 56,
\"description\": \"Monitor on-premises server\"
}"
# Probe 詳細確認
aws networkmonitor get-probe \
--monitor-name "production-network" \
--probe-id "probe-1a2b3c4d"
# メトリクス取得(CloudWatch API 経由)
aws cloudwatch get-metric-statistics \
--namespace "AWS/NetworkMonitoring" \
--metric-name "RTT" \
--dimensions "Name=MonitorName,Value=production-network" \
--start-time 2026-04-26T00:00:00Z \
--end-time 2026-04-27T00:00:00Z \
--period 300 \
--statistics Average,Maximum,Minimum
Terraform 操作例
# Network Monitor 作成
resource "aws_ec2_network_monitor" "production" {
monitor_name = "production-network"
aggregation_period = 30
tags = {
Environment = "production"
Team = "platform"
}
}
# VPC 内 EC2 インスタンス監視プローブ
resource "aws_ec2_network_monitor_probe" "web_server" {
monitor_name = aws_ec2_network_monitor.production.monitor_name
probe_enabled = true
protocol = "tcp"
destination_port = 443
destination = "10.0.1.100"
source_arn = "arn:aws:ec2:ap-northeast-1:123456789012:subnet/subnet-1a2b3c4d"
packet_size = 56
description = "Monitor web server latency and reachability"
tags = {
Service = "web"
}
}
# RDS 監視プローブ
resource "aws_ec2_network_monitor_probe" "rds" {
monitor_name = aws_ec2_network_monitor.production.monitor_name
probe_enabled = true
protocol = "tcp"
destination_port = 3306
destination = "10.1.0.50"
source_arn = "arn:aws:ec2:ap-northeast-1:123456789012:subnet/subnet-2e3f4g5h"
packet_size = 56
description = "Monitor RDS Multi-AZ reachability"
tags = {
Service = "database"
}
}
# CloudWatch Alarm:RTT が 100ms 超過で通知
resource "aws_cloudwatch_metric_alarm" "high_latency" {
alarm_name = "network-monitor-high-latency"
comparison_operator = "GreaterThanThreshold"
evaluation_periods = "2"
metric_name = "RTT"
namespace = "AWS/NetworkMonitoring"
period = "60"
statistic = "Average"
threshold = "100000" # 100ms をマイクロ秒で指定
alarm_description = "Alert when network RTT exceeds 100ms"
alarm_actions = [aws_sns_topic.alerts.arn]
dimensions = {
MonitorName = aws_ec2_network_monitor.production.monitor_name
}
}
# CloudWatch Alarm:パケットロスが 1% 超過で通知
resource "aws_cloudwatch_metric_alarm" "packet_loss" {
alarm_name = "network-monitor-packet-loss"
comparison_operator = "GreaterThanThreshold"
evaluation_periods = "2"
metric_name = "PacketLoss"
namespace = "AWS/NetworkMonitoring"
period = "60"
statistic = "Average"
threshold = "1.0" # 1%
alarm_description = "Alert when packet loss exceeds 1%"
alarm_actions = [aws_sns_topic.alerts.arn]
dimensions = {
MonitorName = aws_ec2_network_monitor.production.monitor_name
}
}
SDK 操作例(Python)
import boto3
from datetime import datetime, timedelta
networkmonitor = boto3.client('ec2', region_name='ap-northeast-1')
cloudwatch = boto3.client('cloudwatch', region_name='ap-northeast-1')
# Network Monitor 作成
response = networkmonitor.create_network_monitor(
MonitorName='production-network',
AggregationPeriod=30,
Tags=[
{'Key': 'Environment', 'Value': 'production'},
{'Key': 'Team', 'Value': 'platform'}
]
)
print(f"Network Monitor created: {response['NetworkMonitor']['MonitorName']}")
# プローブ追加(EC2)
probe_response = networkmonitor.create_network_monitor_probe(
MonitorName='production-network',
Probe={
'SourceArn': 'arn:aws:ec2:ap-northeast-1:123456789012:subnet/subnet-12345678',
'Destination': '10.0.1.100',
'DestinationPort': 443,
'Protocol': 'tcp',
'PacketSize': 56,
'Description': 'Monitor web server'
}
)
print(f"Probe created: {probe_response['Probe']['ProbeId']}")
# CloudWatch メトリクス取得(RTT)
metrics_response = cloudwatch.get_metric_statistics(
Namespace='AWS/NetworkMonitoring',
MetricName='RTT',
Dimensions=[
{'Name': 'MonitorName', 'Value': 'production-network'}
],
StartTime=datetime.utcnow() - timedelta(hours=1),
EndTime=datetime.utcnow(),
Period=300,
Statistics=['Average', 'Maximum', 'Minimum']
)
print("RTT Statistics (last 1 hour):")
for datapoint in metrics_response['Datapoints']:
print(f" Time: {datapoint['Timestamp']}")
print(f" Average: {datapoint.get('Average', 'N/A')} μs")
print(f" Maximum: {datapoint.get('Maximum', 'N/A')} μs")
print(f" Minimum: {datapoint.get('Minimum', 'N/A')} μs")
# CloudWatch Alarm 作成(高レイテンシ検出)
alarm_response = cloudwatch.put_metric_alarm(
AlarmName='network-high-latency',
MetricName='RTT',
Namespace='AWS/NetworkMonitoring',
Dimensions=[
{'Name': 'MonitorName', 'Value': 'production-network'}
],
Statistic='Average',
Period=60,
EvaluationPeriods=2,
Threshold=100000, # 100ms(マイクロ秒)
ComparisonOperator='GreaterThanThreshold',
AlarmActions=['arn:aws:sns:ap-northeast-1:123456789012:alerts']
)
print(f"Alarm created: {alarm_response['AlarmArn']}")
CloudFormation で統合監視
AWSTemplateFormatVersion: '2010-09-09'
Description: 'Network Synthetic Monitor with CloudWatch Integration'
Resources:
ProductionNetworkMonitor:
Type: AWS::EC2::NetworkMonitor
Properties:
MonitorName: production-network-monitor
AggregationPeriod: 30
Tags:
- Key: Environment
Value: production
WebServerProbe:
Type: AWS::EC2::NetworkMonitorProbe
Properties:
MonitorName: !Ref ProductionNetworkMonitor
ProbeEnabled: true
Destination: 10.0.1.100
DestinationPort: 443
Protocol: tcp
PacketSize: 56
SourceArn: arn:aws:ec2:ap-northeast-1:123456789012:subnet/subnet-1a2b3c4d
Description: Monitor web server latency
RDSProbe:
Type: AWS::EC2::NetworkMonitorProbe
Properties:
MonitorName: !Ref ProductionNetworkMonitor
ProbeEnabled: true
Destination: 10.1.0.50
DestinationPort: 3306
Protocol: tcp
PacketSize: 56
SourceArn: arn:aws:ec2:ap-northeast-1:123456789012:subnet/subnet-2e3f4g5h
Description: Monitor RDS Multi-AZ reachability
HighLatencyAlarm:
Type: AWS::CloudWatch::Alarm
Properties:
AlarmName: network-high-latency
MetricName: RTT
Namespace: AWS/NetworkMonitoring
Statistic: Average
Period: 60
EvaluationPeriods: 2
Threshold: 100000
ComparisonOperator: GreaterThanThreshold
AlarmActions:
- !Ref AlertTopic
Dimensions:
- Name: MonitorName
Value: !Ref ProductionNetworkMonitor
AlertTopic:
Type: AWS::SNS::Topic
Properties:
TopicName: network-monitor-alerts
AlertSubscription:
Type: AWS::SNS::Subscription
Properties:
TopicArn: !Ref AlertTopic
Protocol: email
Endpoint: ops@company.com
Outputs:
MonitorName:
Value: !Ref ProductionNetworkMonitor
Export:
Name: ProductionNetworkMonitor
類似サービス比較表
| サービス | 対象 | 強み | 弱み |
|---|---|---|---|
| Network Synthetic Monitor | AWS プライベートネットワーク・ハイブリッド環境 | AWS ネイティブ・エージェント不要・複数送信元・カスタマイズ可能 | 外部インターネット監視不可・Internet Monitor との併用必須 |
| Internet Monitor | インターネット経由通信品質 | グローバル測定・ユーザー体験重視・自動スケーリング | AWS 制御外のインターネット経路・コストが高い |
| ThousandEyes(Cisco) | エンタープライズネットワーク・インターネット品質 | 業界リーダー・強力な可視化・多機能 | 高額・セットアップが複雑 |
| Catchpoint | デジタルエクスペリエンス監視 | フロントエンド・バックエンド統合・Synthetic + RUM | 高額・AWS 統合が限定的 |
| Datadog Network Performance Monitoring | フルスタックネットワーク監視 | Datadog との統合・APM との関連性 | 高額・AWS 限定ではない |
| Kentik | ネットワーク観測性(NetFlow・BGP) | NetFlow・BGP データ活用・ネットワークエンジニア向け | 複雑・小規模には過度 |
| NetBeez | エンドツーエンドネットワーク監視 | エージェントベース・多機能 | エージェント管理負荷・AWS 統合が外部依存 |
ベストプラクティス
✅ 推奨事項
| # | 項目 | 実装例 |
|---|---|---|
| 1 | 複数ソースからのプローブ | 複数 AZ の異なるサブネットからプローブを送信してレイテンシ分布を把握 |
| 2 | Internet Monitor との併用 | Network Synthetic Monitor(プライベート)+ Internet Monitor(インターネット)で完全カバー |
| 3 | CloudWatch Anomaly Detection | RTT メトリクスに Anomaly Detection を適用。通常パターンからの逸脱を自動検出 |
| 4 | EventBridge + Lambda 自動対応 | レイテンシ異常時に Lambda で自動対応。例:リソーススケール・経路変更・通知 |
| 5 | 複数プロトコル監視 | TCP・UDP 両方でプローブを送信。プロトコル依存の問題を検出 |
| 6 | ベースラインの早期確立 | 新規 VPC・リージョン追加時に早期段階でベースラインを確立 |
| 7 | SLO/SLA との紐付け | 「ネットワークレイテンシ 50ms 以下」という SLO をメトリクスで証明 |
| 8 | ダッシュボード可視化 | CloudWatch ダッシュボードで複数プローブのメトリクスを一元表示 |
| 9 | パケットサイズ変動テスト | 異なるパケットサイズでプローブを送信して、MTU・フラグメンテーション問題を検出 |
| 10 | 定期的な閾値見直し | 3 ヶ月ごとにアラーム閾値を見直し。応用環境変化に対応 |
❌ 非推奨事項
| # | 項目 | 回避理由 |
|---|---|---|
| 1 | プローブ送信元が 1 つのみ | 送信元障害時に監視が完全に停止。複数ソース必須 |
| 2 | Internet Monitor のみで十分と判断 | インターネット経由の通信品質のみで、プライベートネットワークが見えない |
| 3 | 手動 ping テストに依存 | スケーラブルでない・継続的ではない・定量的ではない |
| 4 | 非常に短い aggregation period(5秒など) | コスト増・メトリクク粒度が過度・実用的でない |
| 5 | アラーム閾値を固定化 | 環境変化に対応できず、偽陽性・偽陰性が増加 |
トラブルシューティング表
| 問題 | 原因 | 解決策 |
|---|---|---|
| プローブが到達できない(Reachability = Fail) | セキュリティグループ・NACl・ルーティング設定漏れ | セキュリティグループ・NACL・ルートテーブル確認・宛先ホストが起動・Listen している確認 |
| RTT メトリクスが 0 または非常に小さい | プローブが実際に到達していない・メトリクス計算ミス | Reachability を確認・CloudWatch メトリクス詳細確認・AWS サポートに問い合わせ |
| パケットロス が高い | ネットワーク輻輳・ルーター負荷・リンク品質低下 | ネットワーク帯域使用率確認・ルーター CPU/メモリ確認・キャリア(ISP)に確認 |
| Probe を削除できない | Monitor が有効状態 | Monitor を disable し、その後 Probe を削除・再度 Monitor を enable |
2025-2026 最新動向
Network Synthetic Monitor の拡張予定
AWS は Network Synthetic Monitor の以下の拡張を計画中:
2026 年予定機能:
1. Advanced Analytics
→ AI による異常パターン検出
→ ネットワーク性能予測
2. Multi-Layer Monitoring Integration
→ Network + Application(CloudWatch Synthetics)
→ Infrastructure(VPC Flow Logs・VPC Traffic Mirroring)
3. Cross-Region Monitoring Dashboard
→ グローバル展開企業向けのマルチリージョン統合監視
4. Automated Remediation
→ 異常検出時の自動修復(ルーティング変更等)
→ Systems Manager Automation との深い統合
学習リソース・参考文献
公式ドキュメント
- How Network Synthetic Monitor works
- Using Network Synthetic Monitor
- Cross-Region AWS PrivateLink monitoring with Network Synthetic Monitor
- Monitor hybrid connectivity with CloudWatch Network Synthetic Monitor
関連 AWS サービス
実装チェックリスト
- [ ] Network Monitor 作成・Aggregation Period 設定(30秒推奨)
- [ ] プローブ追加(複数ソース・複数宛先)
- [ ] TCP・UDP 両プロトコルでプローブ
- [ ] パケットサイズ変動テスト(56・512・1500 bytes)
- [ ] CloudWatch メトリクス確認(RTT・PacketLoss・Reachability)
- [ ] CloudWatch Alarm 設定(RTT・PacketLoss)
- [ ] CloudWatch Anomaly Detection 有効化
- [ ] SNS・EventBridge で通知設定
- [ ] CloudWatch ダッシュボード作成・可視化
- [ ] Internet Monitor(インターネット側)と併用確認
まとめ
Amazon CloudWatch Network Synthetic Monitor は 「AWS プライベートネットワーク・ハイブリッド環境のレイテンシ・パケットロス・到達性を 24/7 能動的に測定するサービス」 です。
VPC フローログの記録的な「通信があったか」から進化して、プロアクティブな「通信品質はどうか」を定量的に測定可能に。ネットワークボトルネックの早期検出・SLA 達成の根拠付け・容量計画のためのデータ基盤を提供します。
Internet Monitor と組み合わせることで、インターネット経由の外部通信からプライベートネットワーク内部通信まで、エンドツーエンドのネットワーク品質監視を実現できます。
最終更新:2026-04-26
バージョン:v2.0