目次

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 との深い統合

学習リソース・参考文献

公式ドキュメント

関連 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