🌍 AWS Global Accelerator

完全ガイド - 技術詳細から実装まで

🎯 Global Accelerator とは

🚚 宅配便ネットワークで理解する仕組み

📦 従来の配送(一般的なインターネット)

  • 🏠 お客様の家 → 地域の配送センター
  • 🚛 複数の配送業者を経由
  • 🛣️ 一般道路(混雑する可能性)
  • 📍 目的地まで不安定なルート

⚡ Global Accelerator配送

  • 🏠 お客様の家 → 最寄りのAWS配送センター
  • 🛰️ AWS専用高速道路で配送
  • 🎯 最適化されたルート
  • 📍 固定の配送先住所(IP)

🏗️ 技術アーキテクチャ

🌐 ユーザー(世界各地)
⬇️
🏢 Edge Location(250+ 拠点)- エニーキャスト IP
⬇️
🚀 AWS Global Network(専用バックボーン)
⬇️
🎯 エンドポイント(ALB、NLB、EC2、EIP)
🌐

エニーキャスト技術

同じIPアドレスが世界中の複数の場所でアナウンスされ、BGPルーティングにより最も近いEdge Locationに自動的に転送されます。

従来: ユニキャスト(1つのIPに1つの場所)
GA: エニーキャスト(1つのIPに複数の場所)
🛰️

AWS グローバルネットワーク

AWSが運用する専用ファイバーネットワーク。インターネットを回避し、最適化されたルートでデータを転送。

利点:
• 低レイテンシ
• 高い信頼性
• 混雑回避

⚙️ 主要機能の詳細解説

📍 固定IP(Static Anycast IP)

🔧 技術的詳細

  • 提供数: 2つの静的IPv4アドレス
  • 種類: エニーキャストIP
  • BGP: AWS ASN 16509 でアナウンス
  • レンジ: /24 サブネット内
# Global Accelerator 設定例 accelerator_arn : "arn:aws:globalaccelerator::123456789012:accelerator/1234abcd-abcd-1234-abcd-1234abcdefgh" static_ips : - "75.2.76.26" - "99.83.89.102" enabled : true

💡 実装メリット

1
DNS設定の固定化
0
ファイアウォール設定変更
99.99%
可用性

🎛️ トラフィックダイヤル(Traffic Dial)

⚙️ 設定パラメータ

パラメータ 範囲 単位
Traffic Dial 0 - 100 %
Weight 0 - 255 相対重み
更新間隔 即座 リアルタイム

📊 実装パターン

ブルーグリーンデプロイメント例
本番環境: 100 %
新環境: 0 %

📡 UDP/TCP プロトコル対応

🔌 対応プロトコル詳細

プロトコル ポート範囲 用途例
TCP 1-65535 HTTP/HTTPS, SSH, データベース
UDP 1-65535 ゲーム, VoIP, DNS, ストリーミング
⚠️ プロトコル制限
  • ICMP は非対応
  • TCP/UDP のみサポート
  • ポート単位での設定が必要

🎮 ユースケース別最適化

🎯 オンラインゲーム(UDP)
protocol : "UDP" port_range : "7000-7010" client_affinity : "SOURCE_IP" # プレイヤーのセッション維持
🌐 Webアプリ(TCP)
protocol : "TCP" port_range : "80, 443" client_affinity : "NONE" # 負荷分散優先

🏥 ヘルスチェック設定

⚙️ 設定パラメータ詳細

パラメータ デフォルト値 設定範囲
Interval 10秒 10, 30秒
Threshold 3回 1-10回
Port リスナーと同じ 1-65535
Protocol TCP TCP, HTTP, HTTPS

📊 ヘルスチェック動作

リアルタイム監視
🟢 Endpoint A: Healthy
🔴 Endpoint B: Unhealthy
🟢 Endpoint C: Healthy
# ヘルスチェック設定例 health_check_interval : 10 health_check_path : "/health" health_check_port : 8080 health_check_protocol : "HTTP" healthy_threshold : 3 unhealthy_threshold : 3

📈 パフォーマンス詳細分析

60%
最大レイテンシ削減
25%
平均ジッター削減
99.99%
アップタイム

🌍 地域別パフォーマンス

地域 従来 GA使用 改善率
北米 → アジア 180ms 75ms 58%↓
欧州 → 豪州 320ms 140ms 56%↓
アジア → 欧州 250ms 95ms 62%↓

📊 アプリケーション別効果

🎮 ゲーミング

  • レイテンシ: 200ms → 80ms
  • ジッター: 15ms → 3ms
  • パケットロス: 0.1% → 0.01%

📺 ストリーミング

  • 初回バッファ: 3秒 → 1秒
  • 再バッファ: 2回/時 → 0回/時
  • 品質安定性: 95% → 99.5%

💰 料金体系とコスト計算

💵 料金構造

コンポーネント 料金(USD) 単位
固定費 $18.00 /月(アクセラレータ毎)
データ転送(US) $0.015 /GB
データ転送(EU) $0.017 /GB
データ転送(APAC) $0.019 /GB

🧮 コスト計算ツール

GB
月額コスト: $33.00
💡 コスト最適化のヒント
  • CloudFrontとの併用: 静的コンテンツはCloudFront、動的コンテンツはGAで分離
  • 地域最適化: 主要ユーザー地域に応じてエンドポイントを配置
  • トラフィック監視: 実際の使用量を監視して適切なサイジング

⚖️ CloudFront vs Global Accelerator

項目 CloudFront Global Accelerator
主用途 静的コンテンツ配信 動的コンテンツ・アプリケーション高速化
キャッシュ エッジでキャッシュ キャッシュなし(プロキシ)
プロトコル HTTP/HTTPS TCP/UDP(すべてのプロトコル)
IP アドレス 変動する 固定(2つのエニーキャスト IP)
レイテンシ削減 キャッシュヒット時のみ 常に(ネットワーク最適化)
料金 従量課金 固定費 + 従量課金
🌐

CloudFront 推奨ケース

  • Webサイト、画像、動画配信
  • 静的コンテンツが主体
  • キャッシュ効果が高い
  • HTTP/HTTPS のみ
🚀

Global Accelerator 推奨ケース

  • リアルタイムアプリケーション
  • ゲーム、IoT、金融取引
  • UDP プロトコル使用
  • 固定IP が必要

🛠️ 実装ガイド

📋 設定手順

# Terraform設定例 resource "aws_globalaccelerator_accelerator" "example" { name = "example-accelerator" ip_address_type = "IPV4" enabled = true attributes { flow_logs_enabled = true flow_logs_s3_bucket = "accelerator-logs" flow_logs_s3_prefix = "flow-logs/" } } resource "aws_globalaccelerator_listener" "example" { accelerator_arn = aws_globalaccelerator_accelerator . example . id client_affinity = "SOURCE_IP" protocol = "TCP" port_range { from = 80 to = 80 } port_range { from = 443 to = 443 } }

⚙️ エンドポイント設定

# エンドポイントグループ設定 resource "aws_globalaccelerator_endpoint_group" "example" { listener_arn = aws_globalaccelerator_listener . example . id endpoint_group_region = "us-east-1" traffic_dial_percentage = 100 health_check_interval_seconds = 10 health_check_path = "/health" health_check_port = 80 health_check_protocol = "HTTP" healthy_threshold_count = 3 unhealthy_threshold_count = 3 endpoint_configuration { endpoint_id = aws_lb . example . arn weight = 100 client_ip_preservation_enabled = true } }

🛡️ セキュリティ機能

🔒 DDoS Protection

  • ✅ AWS Shield Standard が自動適用
  • ✅ L3/L4 DDoS攻撃を自動軽減
  • ✅ 異常トラフィックの自動検知
  • ✅ エニーキャストによる攻撃分散

🔐 アクセス制御

  • ✅ IAM ベースのアクセス管理
  • ✅ リソースベースのポリシー
  • ✅ CloudTrail によるAPI監査
  • ✅ タグベースのアクセス制御
# セキュリティポリシー例 { "Version" : "2012-10-17" , "Statement" : [ { "Effect" : "Allow" , "Principal" : { "AWS" : "arn:aws:iam::ACCOUNT:role/GlobalAcceleratorRole" }, "Action" : [ "globalaccelerator:UpdateAccelerator" , "globalaccelerator:UpdateListener" , "globalaccelerator:UpdateEndpointGroup" ], "Resource" : "*" , "Condition" : { "StringEquals" : { "aws:RequestedRegion" : "us-west-2" } } } ] }

📊 監視とトラブルシューティング

📈 CloudWatch メトリクス

メトリクス 説明 単位
NewFlowCount 新規フロー数 Count
ProcessedBytesIn 受信データ量 Bytes
ProcessedBytesOut 送信データ量 Bytes

🚨 アラート設定例

# CloudWatch アラーム resource "aws_cloudwatch_metric_alarm" "high_error_rate" { alarm_name = "ga-high-error-rate" comparison_operator = "GreaterThanThreshold" evaluation_periods = "2" metric_name = "OriginLatency" namespace = "AWS/GlobalAccelerator" period = "300" statistic = "Average" threshold = "1000" alarm_description = "High latency detected" }

🔧 よくある問題と解決法

❌ 問題: ヘルスチェックが失敗する

エンドポイントが正常に見えるのに、ヘルスチェックが失敗し続ける。

💡 解決法:
  • セキュリティグループでヘルスチェックポートを許可
  • ヘルスチェックパスが正しく応答することを確認
  • ヘルスチェック間隔としきい値を調整
❌ 問題: クライアントIPが保持されない

アプリケーションでクライアントの実IPアドレスが取得できない。

💡 解決法:
  • client_ip_preservation_enabled を true に設定
  • エンドポイントでProxy Protocolを有効化
  • X-Forwarded-For ヘッダーの確認
❌ 問題: 期待したパフォーマンス向上が見られない

Global Accelerator導入後も、レイテンシの改善が限定的。

💡 解決法:
  • エンドポイントの地理的配置を最適化
  • アプリケーション層での最適化も実施
  • CloudWatch メトリクスで実際の効果を測定

⚠️ 制限事項と注意点

📊 サービス制限
項目 制限値
アクセラレータ数(アカウント毎) 20個
リスナー数(アクセラレータ毎) 10個
エンドポイントグループ数(リスナー毎) 10個
エンドポイント数(グループ毎) 10個
🚫 技術的制限
  • プロトコル: TCP/UDP のみ(ICMP不可)
  • 地域: 中国とイラン以外のAWSリージョン
  • IP範囲: /24 サブネット内での固定IP
  • キャッシュ: コンテンツキャッシュ機能なし
  • SSL終端: GA側でのSSL終端不可

🎯 実用的ユースケース詳細

🎮

オンラインゲーム

課題:

  • 世界中のプレイヤー間での高レイテンシ
  • 不安定なネットワーク経路
  • リアルタイム通信の要求

GA活用:

  • UDPプロトコルでゲームトラフィック最適化
  • 固定IPでファイアウォール設定簡素化
  • SOURCE_IPアフィニティでセッション維持
# ゲーム向け設定 protocol : "UDP" port_range : "7000-7010" client_affinity : "SOURCE_IP"
💰

金融取引システム

課題:

  • ミリ秒単位での取引速度要求
  • グローバル市場への同時アクセス
  • 高い可用性とセキュリティ

GA活用:

  • 最短ネットワーク経路でレイテンシ最小化
  • DDoS保護で取引システム保護
  • 自動フェイルオーバーで高可用性確保
# 金融向け設定 protocol : "TCP" port_range : "443" health_check_interval : 10

🎯 Global Accelerator 完全理解チェックリスト

✅ 技術理解

  • □ エニーキャスト技術の仕組み
  • □ AWSグローバルネットワークの活用
  • □ 4つの主要機能の使い分け
  • □ CloudFrontとの違いと使い分け

✅ 実装準備

  • □ コスト計算と予算確保
  • □ セキュリティポリシーの設計
  • □ 監視・アラート設定の計画
  • □ トラブルシューティング手順の準備
🚀 これで Global Accelerator のエキスパートになれます!

Created by SSuzuki1063

AWS SAP Learning Resources

Created by SSuzuki1063

AWS SAP Learning Resources