AWS Global Accelerator を使用した
IoT デバイス接続

世界中の IoT デバイスを高速・安定・シンプルに AWS へ接続する方法

静的 IP でファイアウォール設定を簡素化

DNS に依存せず、2つの固定 Anycast IP で世界中の IoT デバイスから接続可能

AWS グローバルネットワークで低レイテンシー

公衆インターネットを最小化し、AWS 専用バックボーンでデータを高速転送

TCP/UDP プロトコルをネイティブサポート

MQTT・HTTP・TCP すべてのIoTプロトコルに対応し柔軟な接続が可能

自動フェイルオーバーで高可用性を実現

エンドポイントのヘルスチェックと自動切り替えでダウンタイムを最小化

たとえ話:「世界規模の高速道路ネットワーク」で理解する

IoT デバイスの通信 = 世界中の工場から本社へ荷物を届ける物流

Global Accelerator は、一般道(公衆インターネット)の代わりに
専用高速道路(AWS グローバルネットワーク)を使って荷物を最速で届ける仕組みです

IoT デバイス = 世界中の工場

たとえ話

各地の工場がセンサーデータ(荷物)を本社に送りたい

AWS での実体

温度センサー、カメラ、機器モニターなどの IoT デバイスが AWS にデータを送信

Global Accelerator = 専用高速道路

たとえ話

渋滞する一般道ではなく、最寄りの IC(エッジロケーション)から専用高速道路へ

AWS での実体

Anycast IP で最寄りのエッジロケーションに到達後、AWS バックボーンネットワークで転送

AWS リージョン = 本社データセンター

たとえ話

荷物が届く最終目的地。複数の本社があれば近い方に自動振り分け

AWS での実体

NLB + IoT Core エンドポイントが稼働するリージョン。フェイルオーバーも自動

固定 IP = 本社の住所(変わらない)

たとえ話

工場に配る住所は 2つだけ。引っ越ししても住所は変わらない

AWS での実体

2つの静的 Anycast IP はリージョン追加・変更しても不変。ファイアウォール設定も固定

たとえ話(物流ネットワーク) AWS の実際の概念 役割
世界中の工場 IoT デバイス群 データの送信元
一般道(渋滞あり) パブリックインターネット 通常の通信経路(遅延大)
最寄りの IC(インターチェンジ) エッジロケーション 最も近い接続ポイント
専用高速道路 AWS グローバルネットワーク 高速・安定の専用回線
本社の固定住所(2つ) 静的 Anycast IP(2つ) 変わらない接続先アドレス
本社の荷受け窓口 NLB + IoT Core データの受け取りと処理
自動転送(本社A障害→本社Bへ) 自動フェイルオーバー 障害時の自動切り替え

IoT デバイス接続が難しい 4 つの理由

グローバル分散

デバイスは世界中のあらゆる場所に配置される。遠隔地・衛星回線の場合も

厳格なファイアウォール

工場や施設では開放できる IP・ポートが限られる。DNS ベースでは管理困難

リソース制約

バッテリー駆動の IoT デバイスは DNS 解決のような追加通信も節約したい

低レイテンシー要求

リアルタイム監視や制御では、通信遅延が致命的な問題になる

全体アーキテクチャ図

IoT デバイスが Global Accelerator を経由して AWS リージョンに接続する全体の流れを可視化します。

IoT × Global Accelerator アーキテクチャ全体図 IoT デバイス エッジ AWS ネットワーク AWS リージョン 🏭 工場センサー TCP / MQTT 🚗 車載デバイス TCP / HTTP 📡 遠隔モニタ TCP / UDP 🌡️ スマート農業 MQTT エッジロケーション 東京 エッジロケーション フランクフルト エッジロケーション バージニア Global Accelerator 静的 IP: 2つ TCP/UDP リスナー ヘルスチェック 自動フェイルオーバー NLB → IoT Core ap-northeast-1 NLB → IoT Core eu-west-1 NLB → IoT Core us-east-1 VPC Endpoint プライベート接続 1 2 3

IoT デバイスが固定 IP に接続

世界中のデバイスが 2つの静的 Anycast IP に TCP/UDP でデータを送信。DNS 不要でファイアウォール設定も簡単

最寄りのエッジロケーションに到達

Anycast ルーティングにより、デバイスに最も近い AWS エッジロケーションに自動的にトラフィックが到達

AWS バックボーンで高速転送

エッジから AWS グローバルネットワークを経由し、最適なリージョンの NLB エンドポイントへ転送

IoT Core でデータを受信・処理

NLB が VPC Endpoint 経由で IoT Core にルーティング。MQTT/HTTP でメッセージブローカーが処理

なぜ IoT に Global Accelerator が最適なのか

静的 IP アドレス

DNS に依存しない固定 IP で、ファイアウォールの許可リスト登録が 2つの IP だけで完結。デバイスのファームウェア更新も不要

グローバル最適ルーティング

Anycast で最寄りのエッジに到達後、AWS プライベートネットワーク上を通るため、パブリックインターネットの輻輳を回避

自動フェイルオーバー

エンドポイントのヘルスチェックにより、障害発生時は数秒で別リージョンに自動切り替え。IoT の高可用性を実現

TCP/UDP ネイティブ対応

HTTP に限定されず、MQTT(TCP)、NTP(UDP)など IoT で使われる多様なプロトコルをそのままサポート

試験対策ポイント(ANS-C01)

「IoT デバイス」「グローバル」「TCP」「低レイテンシー」「高可用性」というキーワードの組み合わせが出たら、Global Accelerator が正解の可能性が高い。

CloudFront は HTTP/HTTPS のキャッシュ配信に特化しており、TCP/UDP の汎用的なプロキシには向かない点が差別化ポイント。

Route 53 のレイテンシーベースルーティングも選択肢になるが、DNS 依存を避けたい・ファイアウォールで固定 IP が必要という要件があれば Global Accelerator が適切。

比較:Global Accelerator あり vs なし

Global Accelerator なし

  • パブリックインターネット経由で遅延が大きい
  • DNS 名が変わるたびにデバイス設定の更新が必要
  • ファイアウォールの許可リスト管理が複雑
  • 手動でのフェイルオーバー設定が必要
  • 経路上のネットワーク品質が不安定
  • バッテリー駆動デバイスで DNS 解決が電力消費

Global Accelerator あり

  • AWS バックボーンで最大 60% のレイテンシー改善
  • 2つの固定 IP でデバイス設定が永続的に有効
  • ファイアウォールは 2つの IP を許可するだけ
  • ヘルスチェック + 自動フェイルオーバー
  • AWS のグローバルネットワークで安定品質
  • DNS 不要で消費電力を削減
❌ Global Accelerator なし(一般道ルート) IoT デバイス パブリックインターネット(渋滞・不安定) AWS リージョン 遅延: 大 ✅ Global Accelerator あり(高速道路ルート) IoT デバイス 最短 エッジ ロケーション AWS グローバルネットワーク(専用高速道路) AWS リージョン 遅延: 小

代表的なアーキテクチャパターン

基本構成

パブリック IoT 接続

インターネット経由で IoT デバイスを接続する標準パターン。NLB の Elastic IP を Global Accelerator に登録。

  • Global Accelerator(静的 Anycast IP)
  • NLB(Elastic IP 付き)
  • VPC Endpoint → IoT Core
  • Route 53(カスタムドメイン、任意)
応用構成

プライベート IoT 接続

Direct Connect / VPN 経由で完全にプライベートな通信を実現。内部 NLB を使用。

  • Direct Connect / Site-to-Site VPN
  • 内部 NLB(プライベート IP)
  • VPC Endpoint → IoT Core
  • パブリックインターネット経由なし

実装例:CLI / CloudFormation / Python

# 1. Accelerator の作成
aws globalaccelerator create-accelerator \
  --name "iot-global-accelerator" \
  --ip-address-type IPV4 \
  --enabled

# 2. リスナーの作成(TCP: 8883 = MQTT)
aws globalaccelerator create-listener \
  --accelerator-arn <accelerator-arn> \
  --port-ranges FromPort=8883,ToPort=8883 \
  --protocol TCP

# 3. エンドポイントグループの作成
aws globalaccelerator create-endpoint-group \
  --listener-arn <listener-arn> \
  --endpoint-group-region ap-northeast-1 \
  --endpoint-configurations \
    EndpointId=<nlb-arn>,Weight=128
AWSTemplateFormatVersion: '2010-09-09'
Resources:
  IoTAccelerator:
    Type: AWS::GlobalAccelerator::Accelerator
    Properties:
      Name: iot-global-accelerator
      Enabled: true
      IpAddressType: IPV4

  IoTListener:
    Type: AWS::GlobalAccelerator::Listener
    Properties:
      AcceleratorArn: !Ref IoTAccelerator
      Protocol: TCP
      PortRanges:
        - FromPort: 8883
          ToPort: 8883

  IoTEndpointGroup:
    Type: AWS::GlobalAccelerator::EndpointGroup
    Properties:
      ListenerArn: !Ref IoTListener
      EndpointGroupRegion: ap-northeast-1
      EndpointConfigurations:
        - EndpointId: !Ref IoTNLB
          Weight: 128
import boto3

client = boto3.client('globalaccelerator',
                       region_name='us-west-2')

# Accelerator の作成
accelerator = client.create_accelerator(
    Name='iot-global-accelerator',
    IpAddressType='IPV4',
    Enabled=True
)
acc_arn = accelerator['Accelerator']['AcceleratorArn']

# リスナーの作成(MQTT ポート)
listener = client.create_listener(
    AcceleratorArn=acc_arn,
    PortRanges=[{'FromPort': 8883, 'ToPort': 8883}],
    Protocol='TCP'
)
listener_arn = listener['Listener']['ListenerArn']

# エンドポイントグループの作成
client.create_endpoint_group(
    ListenerArn=listener_arn,
    EndpointGroupRegion='ap-northeast-1',
    EndpointConfigurations=[{
        'EndpointId': 'arn:aws:elasticloadbalancing:...',
        'Weight': 128
    }]
)

ベストプラクティス

複数リージョンにエンドポイントを配置

最低 2 リージョンにエンドポイントグループを設定し、障害時の自動フェイルオーバーを確保。トラフィックダイヤルで重み付けも可能。

ヘルスチェックを適切に設定

NLB のターゲットグループのヘルスチェックを IoT Core の応答に合わせて設定。不健全なエンドポイントへのルーティングを防止。

AWS Shield で DDoS 対策

Global Accelerator は AWS Shield Standard と自動統合。大規模な IoT デプロイでは Shield Advanced の検討も推奨。

Flow Logs でトラフィック監視

Global Accelerator の Flow Logs を有効にし、CloudWatch や S3 に送信。異常な通信パターンの検知に活用。

よくある質問(FAQ)

CloudFront は HTTP/HTTPS に特化したCDNで、キャッシュ配信に強みがあります。一方、Global Accelerator は TCP/UDP をネイティブにサポートし、IoT(MQTT)、ゲーム(UDP)、VoIP など非 HTTP プロトコルに最適です。IoT デバイスの TCP 通信には Global Accelerator を選択しましょう。

Route 53 も有効な選択肢ですが、DNS に依存するため IoT デバイスのファイアウォール設定が複雑になります。また、DNS キャッシュの TTL により即時切り替えが難しく、バッテリー駆動デバイスでは DNS 解決自体が電力消費の原因になります。固定 IP・低レイテンシー・即時フェイルオーバーが必要なら Global Accelerator が優位です。

Global Accelerator は固定時間料金(Accelerator あたり)とデータ転送プレミアム(DTP)で課金されます。IoT のように大量の小さなパケットを送る場合は、パケット数ではなく転送量ベースで計算されます。大規模 IoT デプロイではコスト試算を行った上で導入を検討しましょう。

はい。既存のデバイスの接続先 IP を Global Accelerator の静的 IP に変更するだけで導入可能です。DNS ベースの接続から固定 IP ベースに切り替えるため、デバイスのファームウェア更新が必要になる場合はありますが、プロトコルやデータ形式の変更は不要です。

はい。Global Accelerator のエンドポイントには NLB、ALB、EC2 インスタンスを指定できます。IoT Core だけでなく、独自の MQTT ブローカー、NTP サーバー、カスタムアプリケーションなど、TCP/UDP で通信するあらゆるサービスに適用可能です。

まとめ

AWS Global Accelerator は、グローバルに分散した IoT デバイスを
低レイテンシー・高可用性で AWS に接続するための最適なソリューションです

固定 IP

2つの Anycast IP で DNS 不要。ファイアウォール設定を大幅に簡素化

低レイテンシー

AWS グローバルネットワークで最大 60% のレイテンシー改善

高可用性

自動フェイルオーバーと DDoS 保護で IoT インフラの耐障害性を確保

Created by SSuzuki1063

AWS SAP Learning Resources