Gateway Load Balancer (GWLB) 完全ガイド v2.0
L3 透過プロキシ・セキュリティアプライアンス・GENEVE プロトコル
概要
Gateway Load Balancer(GWLB) は、サードパーティセキュリティアプライアンス(ファイアウォール・IDS/IPS・DPI)を VPC トラフィックに透過的に挿入する L3 ロードバランサー です。GENEVE プロトコル(ポート 6081)を使い、トラフィックをアプライアンスに送信・検査・返却させ、アプリケーション変更なしに全トラフィック検査を実現します。AWS Marketplace のセキュリティベンダーと統合し、2025-2026 年には AI ベース脅威検知・Zero Trust 統合が加速しています。
初心者向けメモ
GWLB は「トラフィックを透過的にセキュリティ機器に通す」ロードバランサーです。ALB/NLB はアプリケーション向けですが、GWLB はネットワーク層で動作し、Palo Alto・Checkpoint・Fortinet などのファイアウォールを「シースルー」で挿入できます。スケーリング・冗長化も自動的に実現できます。
GWLB が解決する課題
| 課題 |
Network Firewall |
GWLB + Third-party |
VPC Lattice |
| 管理方式 |
AWS マネージド |
Marketplace 製品 |
AWS マネージド |
| 設定の柔軟性 |
AWS コンソール |
ベンダーツール |
AWS コンソール |
| 高度な検査機能 |
基本的な IDS/IPS |
DPI・ゼロトラスト等 |
ポリシーベース制御 |
| 既存ポリシー移行 |
新規作成 |
既存ポリシーそのまま |
N/A |
| スケーリング |
自動 |
GWLB が管理 |
自動 |
| 複数ベンダー混在 |
❌ |
✅ 可能 |
❌ |
| East-West 検査 |
△ |
✅ Native |
❌ |
| AI 脅威検知(2025+) |
△ |
✅ ベンダー機能 |
❌ |
| Zero Trust 統合 |
△ |
✅ IAM + GENEVE |
✅ IAM ネイティブ |
| コスト |
低~中 |
中~高 |
低~中 |
主な特徴
| 特徴 |
説明 |
v2.0 キーポイント |
| L3 透過処理 |
IP ヘッダ保持・GENEVE カプセル化 |
アプライアンスが元ルーティング可能 |
| GENEVE Protocol |
RFC 8926(Network Function Gateway) |
汎用・多ベンダー対応・標準化 |
| Flow Stickiness |
5-tuple / 3-tuple / 2-tuple |
同じアプライアンスで処理継続 |
| GWLB Endpoint |
VPC Endpoint(Service Provider 型) |
Private Link ベース |
| Marketplace Integration |
Palo Alto / Fortinet / Check Point / Trend Micro / Zscaler |
多数サポート拡大中 |
| Target Group |
EC2 インスタンス(アプライアンス) |
Auto Scaling 対応・Health Check |
| Cross-Zone |
AZ 間の自動分散 |
高可用性・冗長化 |
| Health Check |
TCP / HTTP / HTTPS / UDP |
不健全アプライアンス自動除外 |
| AI 脅威検知(2025+) |
機械学習ベース異常検知 |
ベンダー実装による |
| Zero Trust 連携 |
IAM + GENEVE |
Zscaler 統合など |
アーキテクチャ
図1:GWLB トラフィックフロー(Ingress + Egress)
graph TB
Internet["Internet<br/>インターネット"]
IGW["Internet Gateway"]
AppSubnet["Application Subnet<br/>10.0.1.0/24<br/>Route Table:<br/>0.0.0.0/0 → GWLB Endpoint"]
GWLBEndpoint["GWLB Endpoint<br/>VPC Endpoint<br/>Service Consumer VPC"]
InspectionVPC["Inspection VPC<br/>セキュリティ検査用"]
GWLB["Gateway Load Balancer<br/>ポート 6081 GENEVE"]
Appliance1["Palo Alto / Fortinet<br/>/ Zscaler<br/>Appliance Instance 1"]
Appliance2["Palo Alto / Fortinet<br/>/ Zscaler<br/>Appliance Instance 2"]
Internet -.->|HTTP/HTTPS<br/>Incoming| IGW
IGW -->|Route via GWLB Endpoint| GWLBEndpoint
GWLBEndpoint -->|GENEVE<br/>6081<br/>Payload Tunnel| GWLB
GWLB -->|Load Balance<br/>5-tuple Sticky| Appliance1
GWLB -->|Load Balance<br/>5-tuple Sticky| Appliance2
Appliance1 -.->|Decapsulate<br/>Inspect<br/>Encapsulate<br/>ML Analysis| GWLB
Appliance2 -.->|Decapsulate<br/>Inspect<br/>Encapsulate<br/>ML Analysis| GWLB
GWLB -->|GENEVE Return| GWLBEndpoint
GWLBEndpoint -->|Routed Back| AppSubnet
style GWLB fill:#ff9999
style Appliance1 fill:#99ff99
style Appliance2 fill:#99ff99
style GWLBEndpoint fill:#99ccff
図2:East-West 検査パターン & Zero Trust
graph LR
subgraph VPC1["VPC A<br/>App Servers"]
EC2A["App Server A<br/>Service A"]
end
subgraph VPC2["VPC B<br/>Database"]
EC2B["Database Server<br/>Service B"]
end
subgraph InspectionVPC["Inspection VPC<br/>Security + Zero Trust"]
GWLB["GWLB"]
Appliance["Firewall + AI<br/>IDS/IPS + DPI<br/>Zero Trust Enforcement"]
end
EC2A -->|Inter-VPC Traffic<br/>Route via GWLB| GWLB
GWLB --> Appliance
Appliance -->|IAM 認証 Check<br/>Threat Inspection<br/>GENEVE 6081| EC2B
EC2B -.->|Return Traffic<br/>via GWLB| EC2A
style GWLB fill:#ff9999
style Appliance fill:#99ff99
style EC2A fill:#99ccff
style EC2B fill:#99ccff
コアコンポーネント
1. Gateway Load Balancer
定義:L3 ロードバランサー
動作:
- IP トラフィック全 Port 監視
- 5-tuple でフロー保持
- GENEVE カプセル化で送信
- 元のヘッダ情報保持
特性:
- Health Check 連動
- Cross-Zone 対応
- Auto Scaling 対応
- 400 Gbps 対応予定(2026+)
2. GWLB Endpoint(VPC Endpoint Service)
定義:Service Consumer VPC でのエントリーポイント
実体:VPC Endpoint(Service Provider 型)
役割:
- Route Table を経由してトラフィック受信
- GENEVE 形式で GWLB に転送
- 検査済みトラフィックを返却
配置:
- Application Subnet と異なるサブネット
- Route Table で次ホップに指定
- 複数 AZ に配置(高可用性)
3. Target Group(アプライアンス)
タイプ:EC2 Instance(セキュリティアプライアンス)
例:
- Palo Alto Networks VM-Series
- Fortinet FortiGate-VM
- Check Point Cloudguard
- Trend Micro Deep Security
- Zscaler Virtual Service Edge(2025+)
構成:
- Network Interface(Primary + Secondary)
- IP 設定(GENEVE デカプセル化対応)
- Inbound Route(元パケット送信用)
スケーリング:
- Auto Scaling Group 統合
- 負荷ベース自動スケール
4. GENEVE Protocol(Generic Network Virtualization Encapsulation)
標準:RFC 8926
ポート:6081/UDP
ヘッダ:
- Outer IP(GWLB ← → Appliance)
- Inner IP(元のパケット)
- TLV Options(メタデータ)
- AI Score / Threat Indicator(2025+ 拡張予定)
カプセル化:
元パケット:
SRC: 203.0.113.1
DST: 10.0.1.100
GENEVE トンネル:
Outer SRC: GWLB NIC IP
Outer DST: Appliance NIC IP
Inner:元パケット(intact)
TLV: Threat Score(AI 検知結果・2025+)
5. Flow Stickiness(フロー保持)
デフォルト:5-tuple(SRC IP, SRC Port, DST IP, DST Port, Protocol)
オプション:
- 3-tuple(SRC IP, DST IP, Protocol)
- 2-tuple(SRC IP, DST IP)
用途:
- 同じアプライアンスで検査継続
- 接続状態の保持
- セッション情報の一貫性
- ステートフルファイアウォールの状態管理
6. Security Group & NACL(GENEVE 対応)
GWLB Endpoint 向け:
- Inbound:UDP 6081 from GWLB IP range
- Outbound:すべて許可
Appliance Instance 向け:
- Inbound:UDP 6081 from GWLB
- Inbound:Management Traffic(SSH 22 / HTTPS 443)
- Outbound:すべて許可(元パケット送信)
主要ユースケース(12+)
- VPC Ingress 検査:インターネット経由トラフィック全検査(ファイアウォール)
- East-West セグメンテーション:VPC 間通信の IDS/IPS 検査
- 多層防御:Network Firewall + GWLB アプライアンスの組み合わせ
- 既存セキュリティポリシー移行:オンプレ Palo Alto・Checkpoint をクラウドに持ち込み
- マルチ VPC 統合検査:複数 VPC トラフィック一箇所で集約検査
- DPI(Deep Packet Inspection):アプリケーション層の検査・ブロック
- 脅威インテリジェンス統合:外部 TI フィード連携
- ハイブリッドセキュリティ:オンプレ + AWS トラフィック統一検査
- Compliance・監査要件:全トラフィック記録・分析(HIPAA・PCI-DSS)
- API Gateway セキュリティ:API トラフィック DPI 検査
- マルウェア検査・サンドボックス:疑わしいファイル隔離検査(2025+)
- SSL/TLS インスペクション:暗号化トラフィック復号検査
- AI ベース脅威検知:機械学習による異常検知(2025-2026)
- Zero Trust ネットワークセキュリティ:IAM + Threat Prevention 統合
設定・操作の具体例
AWS CLI 例1:GWLB 作成
aws elbv2 create-load-balancer \
--name "security-inspection-gwlb" \
--subnets subnet-12345678 subnet-87654321 \
--type gateway \
--scheme internal \
--tags Key=Environment,Value=Production Key=Owner,Value=Security
AWS CLI 例2:Target Group 作成
aws elbv2 create-target-group \
--name "palo-alto-targets" \
--protocol GENEVE \
--port 6081 \
--vpc-id vpc-12345678 \
--target-type instance \
--health-check-enabled \
--health-check-protocol HTTP \
--health-check-path "/api/health" \
--health-check-interval-seconds 30 \
--health-check-timeout-seconds 10 \
--healthy-threshold-count 2 \
--unhealthy-threshold-count 3
AWS CLI 例3:GWLB Endpoint Service 公開
aws ec2 create-vpc-endpoint-service-configuration \
--gateway-load-balancer-arns \
"arn:aws:elasticloadbalancing:region:account:loadbalancer/gwlb/security-inspection-gwlb/1234567890abcdef" \
--acceptance-required
AWS CLI 例4:Service Consumer VPC での Endpoint 作成
aws ec2 create-vpc-endpoint \
--vpc-id vpc-consumer-12345678 \
--service-name com.amazonaws.vpce.region.vpce-svc-1234567890abcdef0 \
--vpc-endpoint-type GatewayLoadBalancer \
--subnet-ids subnet-consumer-1 subnet-consumer-2
Resources:
SecurityGWLB:
Type: AWS::ElasticLoadBalancingV2::LoadBalancer
Properties:
Name: security-gwlb
Subnets:
- subnet-12345678
- subnet-87654321
Type: Gateway
Scheme: Internal
PaloAltoTargetGroup:
Type: AWS::ElasticLoadBalancingV2::TargetGroup
Properties:
Name: palo-alto-targets
Protocol: GENEVE
Port: 6081
VpcId: vpc-12345678
TargetType: instance
HealthCheckEnabled: true
HealthCheckProtocol: HTTP
HealthCheckPath: /api/health
HealthCheckIntervalSeconds: 30
GWLBListener:
Type: AWS::ElasticLoadBalancingV2::Listener
Properties:
LoadBalancerArn: !Ref SecurityGWLB
DefaultActions:
- Type: forward
TargetGroupArn: !Ref PaloAltoTargetGroup
Protocol: GENEVE
Port: 6081
GWLBEndpointService:
Type: AWS::EC2::VPCEndpointService
Properties:
GatewayLoadBalancerArns:
- !Ref SecurityGWLB
AcceptanceRequired: true
AppVPCEndpoint:
Type: AWS::EC2::VPCEndpoint
Properties:
VpcId: !Ref AppVpc
ServiceName: !Sub "com.amazonaws.vpce.${AWS::Region}.${SecurityGWLB}"
VpcEndpointType: GatewayLoadBalancer
SubnetIds:
- subnet-app-1
- subnet-app-2
resource "aws_lb" "security_gwlb" {
name = "security-inspection-gwlb"
load_balancer_type = "gateway"
subnets = [aws_subnet.security_a.id, aws_subnet.security_b.id]
internal = true
}
resource "aws_lb_target_group" "palo_alto" {
name = "palo-alto-targets"
protocol = "GENEVE"
port = 6081
vpc_id = aws_vpc.inspection.id
target_type = "instance"
health_check {
enabled = true
healthy_threshold = 2
unhealthy_threshold = 3
timeout = 10
interval = 30
path = "/api/health"
protocol = "HTTP"
port = "80"
}
}
resource "aws_lb_listener" "security" {
load_balancer_arn = aws_lb.security_gwlb.arn
protocol = "GENEVE"
port = 6081
default_action {
type = "forward"
target_group_arn = aws_lb_target_group.palo_alto.arn
}
}
resource "aws_lb_target_group_attachment" "appliance_1" {
target_group_arn = aws_lb_target_group.palo_alto.arn
target_id = aws_instance.appliance_1.id
port = 6081
}
resource "aws_vpc_endpoint_service" "gwlb_service" {
acceptance_required = true
gateway_load_balancer_arns = [aws_lb.security_gwlb.arn]
}
resource "aws_vpc_endpoint" "app_gwlbe" {
vpc_id = aws_vpc.app.id
service_name = aws_vpc_endpoint_service.gwlb_service.service_name
vpc_endpoint_type = "GatewayLoadBalancer"
subnet_ids = [aws_subnet.app_1.id, aws_subnet.app_2.id]
policy = data.aws_iam_policy_document.gwlbe.json
}
Python Example(Boto3):Health Check & Auto Scaling
import boto3
elbv2 = boto3.client('elbv2')
asg = boto3.client('autoscaling')
def configure_appliance_autoscaling():
tg = elbv2.describe_target_groups(
Names=['palo-alto-targets']
)['TargetGroups'][0]
tg_arn = tg['TargetGroupArn']
asg.create_auto_scaling_group(
AutoScalingGroupName='palo-alto-asg',
LaunchConfigurationName='palo-alto-config',
MinSize=2,
MaxSize=10,
DesiredCapacity=2,
AvailabilityZones=['ap-northeast-1a', 'ap-northeast-1c'],
TargetGroupARNs=[tg_arn],
HealthCheckType='ELB',
HealthCheckGracePeriod=300
)
asg.put_scaling_policy(
AdjustmentType='ChangeInCapacity',
AutoScalingGroupName='palo-alto-asg',
EstimatedWarmupSeconds=300,
MetricAggregationType='Average',
PolicyName='scale-up',
StepAdjustments=[
{
'MetricIntervalLowerBound': 0,
'ScalingAdjustment': 1
}
]
)
print("Auto Scaling configured for GWLB appliances")
類似サービス比較表
| 項目 |
GWLB + Appliance |
Network Firewall |
WAF / Shield |
ALB + WAF |
VPC Lattice |
| トラフィック対象 |
L3/L4 全ポート |
L3/L4 ステートフル |
HTTP/HTTPS |
HTTP/HTTPS |
L7 ポリシーベース |
| DPI 機能 |
✅(ベンダー) |
△ 基本的 |
❌ |
❌ |
❌ |
| 既存ポリシー移行 |
✅ |
△ |
❌ |
❌ |
❌ |
| East-West 検査 |
✅ |
△ |
❌ |
❌ |
❌ |
| 複数ベンダー |
✅ |
❌ |
N/A |
N/A |
❌ |
| マネージド |
△(GWLB は ✅) |
✅ |
✅ |
✅ |
✅ |
| スケーリング |
✅(GWLB 管理) |
✅(自動) |
✅ |
✅ |
✅ |
| 複雑さ |
高(ベンダー設定) |
中 |
低 |
低 |
低 |
| コスト |
中~高 |
中 |
低~中 |
低 |
低~中 |
| AI 脅威検知(2025+) |
✅ ベンダー依存 |
△ |
❌ |
❌ |
❌ |
ベストプラクティス
✅ すべき施策
- 冗長アプライアンス:最低 2 つの異なる AZ にデプロイ
- Health Check 設定:不健全なアプライアンス自動除外
- Flow Stickiness 確認:同一フローの一貫性保証(5-tuple)
- ルートテーブル分離:App Subnet / GWLB Endpoint を異なるサブネットに配置
- CloudWatch Logs:トラフィック・ヘルス監視
- Marketplace ベンダー選定:AWS 統合済みの製品(Palo Alto・Fortinet等)
- ベンダードキュメント確認:GENEVE 対応・IP 設定確認
- 段階的デプロイ:本番前に PoC / Staging で検証
- Auto Scaling 設定:ベース負荷対応・スパイク対応
- AI 脅威検知活用:ベンダーの機械学習機能有効化(2025+)
❌ 避けるべき施策
- シングルアプライアンス:ダウン時に全トラフィック停止
- Health Check なし:障害アプライアンスへのトラフィック送信
- Flow Stickiness 無視:異なるアプライアンスで状態不一致
- GENEVE チューニング不足:MTU ミスマッチで遅延増加
- ベンダーサポート軽視:導入後の設定問題に対応困難
- Auto Scaling なし:負荷時にパフォーマンス低下
- Management Network 軽視:Appliance SSH/HTTPS アクセス不可
トラブルシューティング表
| 症状 |
原因 |
対処 |
| トラフィック不通 |
GWLB Endpoint 未作成・Route 不正 |
Route Table・Endpoint 確認 |
| Health Check 失敗 |
アプライアンス未起動・Port 未応答 |
アプライアンス起動・IP/Port 確認 |
| 遅延増加 |
MTU ミスマッチ・GENEVE オーバーヘッド |
MTU 調整(1500 → 1450) |
| アプライアンス CPU 100% |
トラフィック集中・DPI オーバーロード |
Scaling Policy 調整・リソース追加 |
| 流出トラフィック検査漏れ |
Return Path が GWLB 経由でない |
ルートテーブル確認・Endpoint 確認 |
| GENEVE デカプセル化失敗 |
アプライアンス GENEVE 非対応・設定ミス |
Appliance GENEVE サポート確認 |
| Endpoint Service 受け入れ保留 |
Acceptance Required 設定で手動承認待ち |
Service Consumer から Accept リクエスト |
2025-2026 最新動向
- 400 Gbps アプライアンス対応:超大規模ネットワーク向け
- AI/ML ベース脅威検知:機械学習による異常検知・自動ブロック
- Zero Trust インテグレーション:GWLB + VPC Lattice IAM 認証統合
- IPv6 Dual-Stack:全リージョン対応拡大
- Zscaler Zero Trust Gateway:AWS との統合(2025 実装中)
- Regional Firewall 拡張:新興市場でのロケーション拡張
- GENEVE Extension:AI Score・Threat Indicator TLV オプション
- CloudGuard 自動スケール:Check Point との統合強化
Advanced GENEVE & Protocol 深掘り
GENEVE Encapsulation 詳細
RFC 8926 仕様:
[IP Header]
Outer SRC: GWLB NIC IP
Outer DST: Appliance NIC IP
Protocol: UDP(17)
[UDP Header]
SRC Port: ランダム
DST Port: 6081(IANA Reserved)
[GENEVE Header]
VNI: Virtual Network Identifier(24-bit)
Flags: O/C/R/Reserved
Proto Type: 0x0800(IPv4)/ 0x86DD(IPv6)
[TLV Options] ← 2025+ AI Score / Threat Indicator
Type: 1-65535 (custom extension)
Length: TLV 長
Value: Metadata(AI Threat Score, DPI Classification)
[Original Packet]
SRC IP: 203.0.113.1(元の送信元)
DST IP: 10.0.1.100(元の宛先)
Intact(修正なし)
パケット構造図:
┌─────────────┐
│ Outer IP │ (GWLB → Appliance)
├─────────────┤
│ UDP 6081 │
├─────────────┤
│ GENEVE Hdr │ VNI / Flags / Protocol
├─────────────┤
│ TLV Options │ (2025: AI Threat, DPI tags)
├─────────────┤
│ Inner IP │ (元パケット)
├─────────────┤
│ TCP/UDP │
├─────────────┤
│ Payload │
└─────────────┘
オーバーヘッド計算:
元パケット: 1500 bytes(Payload)
GENEVE追加: 50 bytes(Outer IP + UDP + GENEVE)
新MTU: 1550 bytes → Default MTU 1500 超過
→ MTU調整推奨: 1450(ネットワーク層) or 9001(Jumbo Frame)
TLV(Type-Length-Value)拡張(2025+)
2025-2026年新機能: GENEVE TLV による メタデータ伝達
タイプ 1: AI Threat Score
┌──┬──┬─────────┐
│1 │1 │ Score │
│ │B │ (0-100) │
└──┴──┴─────────┘
例: Score=75(マルウェア検知確度 75%)
検査用途:
- IDS/IPS: Score > 80 → ブロック
- SIEM: Score > 50 → Alert
タイプ 2: DPI Classification
┌──┬──┬─────────────────┐
│2 │4 │ App ID / Port │
│ │B │ (Protocol分類) │
└──┴──┴─────────────────┘
例: SSH (Port 22) / VNC (Port 5900) / custom_app
用途: ポリシーベース制御
タイプ 3: Firewall Rule Match
┌──┬──┬──────────┐
│3 │2 │ Rule ID │
│ │B │ (matched)│
└──┴──┴──────────┘
例: Rule ID=1042(Security Zone Policy #1042 match)
用途: Policy エンフォースメント追跡
実装例(Palo Alto VM-Series 2025+):
system → advanced → enable-geneve-tlv-extension
threat → advanced → ml-threat-score-action
if score > 80:
action = drop_reset
elif score > 50:
action = log_alert
East-West Inspection Pattern(VPC間検査)
Transit Gateway + GWLB 統合
アーキテクチャ(複数VPC間トラフィック集約検査):
VPC-A (App)
├ Subnet A1: EC2 Web Servers
│ Route Table: 10.1.0.0/16 → Transit Gateway
│
├ Route to TGW: 0.0.0.0/0 → TGW via GWLB Endpoint
└ TGW Attachment
VPC-B (Database)
├ Subnet B1: RDS / ElastiCache
│ Route Table: 10.0.0.0/16 → Transit Gateway
│
├ Route to TGW: 0.0.0.0/0 → TGW via GWLB Endpoint
└ TGW Attachment
VPC-Inspection (Security)
├ Subnet Sec1: GWLB Endpoint(Service Consumer)
│
├ Subnet Sec2: GWLB(Service Provider)
│ GWLB ← Target Group
│ ├ Palo Alto VM 1
│ ├ Palo Alto VM 2
│ └ Palo Alto VM 3(Auto Scaling)
│
└ NAT Gateway / Egress(Return Path用)
トラフィック フロー:
EC2 (VPC-A, 10.0.1.10) → RDS (VPC-B, 10.1.1.100)
↓ Route: 10.1.0.0/16 via TGW
Transit Gateway
↓ TGW Route Policy: 全トラフィック → GWLB Endpoint へ
GWLB Endpoint (VPC-Inspection)
↓ GENEVE 6081
GWLB (Service Provider)
↓ Load Balance 5-tuple
Palo Alto Appliance
↓ Decapsulate / Inspect
✓ Firewall Rule OK: Allow
↓ Re-encapsulate GENEVE
GWLB → Return to Endpoint
↓
GWLB Endpoint → Back to TGW
↓
RDS (VPC-B, 10.1.1.100) ← 検査済みパケット
Return Path Handling:
RDS Response (10.1.1.100 → 10.0.1.10)
↓ Route Table: 10.0.0.0/16 via TGW
TGW → GWLB Endpoint(同じパス)
↓ Inspection
✓ OK → TGW → VPC-A EC2
Centralized Inspection VPC デザイン
シナリオ: 100+ VPC を 1 つの Inspection VPC で一元管理
スケーリング構成:
Inspection VPC:
- GWLB(複数 AZ 配置)
- Target Group: Appliance 10-50個(Auto Scaling)
- Endpoint Service(複数 Consumer VPC に公開)
- 受け入れ手数料 IAM: ロール / タグ / Account ID チェック
Consumer VPC(100個):
各 VPC Subnet Route Table:
0.0.0.0/0 → GWLB Endpoint(1 個あれば十分)
同じ Endpoint Service を共有
マルチテナント管理:
Customer A VPCs → GWLB Endpoint Service A(公開)
Customer B VPCs → GWLB Endpoint Service B(公開)
内部VPCs → GWLB Endpoint Service Internal
IAM Policy:
Customer A: Accept service_a only
Customer B: Accept service_b only
Cost最適化:
従来: 各 VPC に Appliance デプロイ(100個) = $1M/月
Centralized: 20個 Appliance + GWLB = $200K/月
削減: 80%
Zero Trust Architecture with GWLB
IAM + GWLB + Zscaler 統合(2025+)
Zero Trust Principle:
- Identity-first(ユーザー / デバイス認証)
- Micro-segmentation(VPC / Subnet単位)
- Traffic Inspection(全トラフィック検査)
- Context-aware Policy(環境・リスク判定)
アーキテクチャ:
ユーザー / デバイス
↓ IAM Identity Center / MFA
↓
AWS IAM Role(EC2実行)
↓
VPC Internal Traffic
↓
GWLB Endpoint(Transparent Proxy)
↓
Zscaler Cloud Service Edge(2025+)
├ Device Trust: Zscaler Agent確認
├ User Identity: IAM Role + SAML assertion
├ Location: Geo-IP / Network segment
├ Risk Score: Threat Intelligence
└ Policy Engine: 条件式マッチング
例:
IF (IAM Role == "DataAnalyst" AND Risk Score < 30)
THEN: Allow S3 Access
ELSE: Alert / Block
実装(Terraform):
# GWLB with Zscaler integration
resource "aws_lb" "gwlb_zero_trust" {
type = "gateway"
tags = {
ZscalerService = "Zero-Trust-Gateway"
}
}
# Zscaler Agent EC2 Launch Template
resource "aws_launch_template" "zscaler_appliance" {
user_data = base64encode(templatefile(
"${path.module}/zscaler-init.sh",
{ iam_role = aws_iam_role.appliance.arn }
))
}
Benefits:
- Identity-driven firewall(ユーザー単位の制御)
- Lateral Movement 防止(East-West 検査)
- Cloud-native Zero Trust(On-Prem VPN 不要)
Appliance 別統合パターン
Palo Alto Networks VM-Series
特徴: 業界標準、最も AWS 統合が進んでいる
GWLB連携:
- GENEVE Decapsulation native対応(6.1+)
- Health Check API: /api/v1/health-check
- Auto Scaling: CloudWatch Metrics(Session/Throughput)
設定(AWS Firewall Manager 連携):
aws fwm register-appliance \
--appliance-type paloaltonetworks \
--subnet-id subnet-12345 \
--vpc-id vpc-abcde
DPI + AI脅威検知:
- Threat Prevention: IDS/IPS + DPI
- WildFire(Cloud-based Malware Analysis)
- AI-based Threat Detection(2025+)
コスト: VM インスタンス料 + PA ライセンス(年額 $3K-10K)
Fortinet FortiGate-VM
特徴: 軽量・高速、価格競争力
GWLB連携:
- GENEVE 標準対応
- FortiGate Auto-Scaling(EC2 ASG)
- FortiManager による集中管理
Health Check設定:
FortiGate:
config system auto-update
set port 80
set path "/api/status"
end
ファイアウォール機能:
- Layer 7検査(DPI)
- Application-based Filtering
- Web Filtering(URL Reputation)
- Intrusion Prevention(IPS)
コスト: VM インスタンス料 + FortiCare(ライセンス)
Check Point CloudGuard
特徴: エンタープライズ向け、高度なセキュリティ
GWLB連携:
- Check Point Security Gateway for Cloud
- GENEVE 対応(8.1+)
- Unified Policy Management
Cloud Network Security:
- Advanced DPI
- Anti-Bot / Anti-Malware
- Threat Intelligence
- ML-based Threat Detection
Check Point スマートコンソール:
複数 CloudGuard を一元管理
ポリシー配布(GWLB自動)
Compliance:
- PCI-DSS Certified
- SOC 2 Type II
- GDPR readiness
Trend Micro Deep Security
特徴: 仮想マシン保護に特化
GWLB との統合:
- Trend Micro Vision One(管理画面)
- GENEVE 対応予定(2025年)
- Workload Security + Network Security
マルウェア検知:
- Machine Learning(既知 / 未知脅威検知)
- Sandbox Detonation(疑わしいファイル隔離)
- インテリジェンスフィード(リアルタイム更新)
エージェント型検査:
従来: VM 内にエージェント
GWLB型: エージェント + GWLB Appliance(ハイブリッド)
コスト: 仮想化環境での脅威検知(低価格帯)
Zscaler Zero Trust Cloud(2025+)
新世代: Zero Trust Network Access
GWLB連携:
- Zscaler Virtual Service Edge(VPC内 Appliance)
- GENEVE カプセル化対応
- Identity-aware Firewall(IAM連携)
ユースケース:
- SaaS アプリケーション へのセキュアアクセス
- Cloud Workload Protection(East-West)
- Insider Threat Detection(異常検知)
スケーリング:
顧客数(API呼び出し): Zscaler側で自動スケール
Appliance数(GWLB側): AWS Auto Scaling
双方向スケール → 費用効率最適化
コスト: SaaS型(従量課金)+ GWLB 処理費
AI脅威検知・自動ブロック(2025-2026)
GENEVE TLV で AI Score 伝達
ワークフロー:
1. パケット到着 → Appliance に GENEVE 転送
2. AI Threat Analysis(Appliance側)
- マルウェア特徴検知(Signature Database)
- 異常検知(Statistical Anomaly)
- 振る舞い分析(Behavioral Analysis)
例: Port Scan検知
3秒間に 20個の異なるポートへアクセス
→ Threat Score = 85(疑わしい)
3. GENEVE Response with TLV
Outer IP: Appliance → GWLB
TLV Option[1]: AI Threat Score = 85
Inner Packet: intact(修正なし)
4. GWLB → Consumer VPC
Packet Accept with Metadata
5. Application層での活用
EC2 Agent が TLV を読み取る
Threat Score > 80 → Connection reset
Threat Score 50-80 → Syslog alert
実装例(EC2側アプリケーション):
import socket
# GENEVE TLV パース
def parse_geneve_tlv(packet):
threat_score = extract_tlv_value(packet, type=1)
return threat_score
threat = parse_geneve_tlv(incoming_packet)
if threat > 80:
sock.close() # 接続終了
log_threat(threat, packet)
Sandbox Detonation(自動隔離分析)
要件:
- 未知マルウェア検知・自動隔離
- ファイル分析(クラウド Sandbox)
- 評判スコア更新
プロセス:
1. GWLB Appliance が 疑わしいファイル検知
ファイルハッシュ: SHA256 = abc123...
ファイルサイズ: 2.5 MB
拡張子: .exe
2. Threat Intelligence 照合
Known Malware DB: Not found
Reputation Score: Unknown
→ Sandbox 送信対象
3. Cloud Sandbox で Detonation
隔離 VM で実行
システムコール・レジストリ変更・ネットワーク通信を監視
結果:
- C2 通信: 185.220.101.45:443 (Tor gateway)
- 既知マルウェア ファミリ: Emotet variant
- Verdict: Malicious (100% 確度)
4. スコア更新 → GWLB TLV で フロー伝達
TLV[1]: Threat Score = 99
→ Consumer VPC で 即座に Block
5. Intelligence Feed Update
全 GWLB Appliance に新ハッシュ配信(1分以内)
→ 同じファイルは即座に検知・ブロック
2025実装:
Trend Micro / Palo Alto が ネイティブ対応予定
Multi-Region GWLB設計(大規模エンタープライズ向け)
複数リージョン Inspection VPC
構成:
Tokyo Region (ap-northeast-1)
├ Inspection VPC
│ ├ GWLB(3 AZ)
│ ├ Appliance Fleet(10-30個)
│ └ Endpoint Service: prod-inspection-tokyo
│
└ Customer VPCs(20個)
├ Route 0.0.0.0/0 → GWLB Endpoint
└ Encrypt to Tokyo Inspection
Singapore Region (ap-southeast-1)
├ Inspection VPC
│ ├ GWLB(3 AZ)
│ ├ Appliance Fleet(10-30個)
│ └ Endpoint Service: prod-inspection-singapore
│
└ Customer VPCs(15個)
├ Route 0.0.0.0/0 → GWLB Endpoint
└ Encrypt to Singapore Inspection
Traffic Routing Logic(地域最適化):
Tokyo VPC → Tokyo Inspection(低遅延)
Singapore VPC → Singapore Inspection(低遅延)
Cross-Region: AWS Transit Gateway + DX 経由
Cost 最適化:
1 リージョン当たり: $150K/月(Appliance + GWLB)
2 リージョン: $300K/月
→ 統合管理者 1 人(年額 $100K)
ROI: 各拠点 Application Appliance 削減(10個 × $30K = $300K/year削減)
Zero Trust Policy Enforcement(リージョン間)
シナリオ: Tokyo App ↔ Singapore Database の通信制御
Policy:
Source: Tokyo EC2(IAM Role: App-Server)
Destination: Singapore RDS(Tag: Database)
Protocol: HTTPS 3306
Condition: Time = 09:00-17:00 JST(営業時間)
Action: Allow
実装(Terraform + GWLB):
# Policy テンプレート
variable "business_hours_policy" {
default = {
source_tag = "App-Server"
dest_tag = "Database"
time_range = "09:00-17:00"
regions = ["ap-northeast-1", "ap-southeast-1"]
}
}
# GWLB Endpoint Service Policy(JSON)
resource "aws_ec2_vpc_endpoint_service_policy" "multi_region" {
policy = jsonencode({
Version = "2012-10-17"
Statement = [
{
Effect = "Allow"
Principal = { AWS = "*" }
Action = "ec2:UseVpcEndpoint"
Condition = {
StringEquals = {
"aws:RequestedRegion" = ["ap-northeast-1", "ap-southeast-1"]
}
}
}
]
})
}
追加ユースケース 5 個
ユースケース 1: PCI-DSS Compliance Full Inspection
要件: 100% トラフィック検査・ログ記録(金融機関)
構成:
VPC A (Payment Systems):
├ Subnet (PCI Zone): Credit Card Processors
└ Route 0.0.0.0/0 → GWLB Endpoint(必須)
VPC B (Admin / Non-PCI):
├ Subnet (管理): 社員 SSH アクセス
└ Route 0.0.0.0/0 → Internet Gateway(検査不要)
Inspection VPC:
├ GWLB + Palo Alto 3個(Min 2個冗長)
├ CloudWatch Logs → S3(監査)
├ DPI: クレジットカード番号検知
│ (Regular Expression: \d{13,19})
└ Action: Alert + Log(ブロック不可、違法性チェック)
Compliance チェック:
- PCI-DSS 1.1: Firewall 全トラフィック ✓
- PCI-DSS 1.2: Segmentation(PCI Zone) ✓
- PCI-DSS 10.7: Audit Trail(S3 Logs) ✓
効果:
監査対応: 自動化(ログ取得)
コンプライアンス コスト: -40%(自動化)
ユースケース 2: マルウェア検査 + Sandbox Detonation
要件: ファイルダウンロード全検査(ウイルス対策)
ユースケース:
ユーザー: Dropbox / Google Drive から ファイル DL
シナリオ: .exe ファイルダウンロード試行
処理フロー:
1. GWLB Appliance が HTTP ダウンロード 検知
ファイル: malware.exe
MIME: application/octet-stream
Size: 5.2 MB
2. DPI で ファイル抽出
ハッシュ値計算: SHA256 = d41d8cd98f00b204e9800998ecf8427e
Known Malware DB 照合: Not found
3. Sandbox 送信(Trend Micro / Palo Alto WildFire)
Sandbox VM で 隔離実行
→ 異常挙動検知(System32 改変・C2 通信)
→ Verdict: Ransomware(99% 確度)
4. GWLB で 通信ブロック
ファイル削除 / ユーザーアラート
SIEM に 脅威インテリジェンス送信
5. 他 GWLB Appliance への 自動更新
ハッシュ値ブロック リスト更新
→ 同じファイルは即座に検知
効果:
ゼロデイマルウェア 検知率: 85%
False Positive: < 1%
コスト: Appliance費用で相殺(従来のエンドポイント AV ライセンス不要)
ユースケース 3: API Gateway セキュリティ(DPI + Bot Detection)
要件: API トラフィック検査・Bot 攻撃防止
構成:
NLB (API Front-end)
↓
GWLB Endpoint(Inspection)
↓
GWLB + Fortinet FortiGate
├ DPI: GraphQL / REST API 検査
├ Bot Detection: 異常なリクエストパターン検知
├ Rate Limiting: 異常な request frequency
└ Threat Prevention
↓
Application VPC (API Servers)
DPI Examples:
- SQL Injection: `SELECT * FROM users WHERE id=1 OR 1=1`
→ Block (SQL Injection signature match)
- GraphQL DoS: Deeply nested query
`{ user { friends { friends { ... } } } }`(深さ > 10)
→ Block / Rate Limit
Bot Detection:
- User-Agent spoofing: `curl / wget` detected
- No JavaScript: Bot が JS 実行不可
- Timing anomaly: 1秒間に 1000 requests(ヒューマンではない)
効果:
API Attack 検知率: 95%
Legitimate User 影響: < 0.1%(False Positive削減)
DDoS 軽減: -70%(Bot フロー早期ブロック)
ユースケース 4: Hybrid Cloud Security(オンプレ + AWS)
要件: On-Prem から AWS へのハイブリッド通信 検査
トポロジ:
On-Premises DC
├ Data Center Network
│ ├ Corporate LAN
│ └ DMZ
│
├ AWS Direct Connect
│
└ VPC Gateway Endpoint(VPC間接続)
AWS Cloud
├ Inspection VPC
│ ├ GWLB + Appliance(Palo Alto / Checkpoint)
│ ├ On-Prem との DX 接続
│ └ Endpoint Service
│
└ Multiple Customer VPCs
├ App VPC
├ DB VPC
└ 各 VPC: Route 0.0.0.0/0 → GWLB Endpoint
オンプレ側ルータ設定:
On-Prem Network
route 10.0.0.0/16 via VGW(AWS VPN Gateway)
BGP ASN 65000
neighbor 192.168.1.2 remote-as 65001(AWS side)
AWS側 GWLB Policy:
Source: On-Prem Network(BGP で学習した CIDR)
Destination: All AWS VPCs
Inspection: Full DPI(既存ポリシー適用)
効果:
ハイブリッド可視性: 100%(全フロー検査)
セキュリティ運用: 統一(GWLB で一元管理)
オンプレ投資保護: 既存セキュリティアプライアンス再利用
ユースケース 5: AI Agent ワークロード検査(2025-2026)
要件: Large Language Model(LLM)推論の悪用防止
シナリオ:
- LLM API(Bedrock / SageMaker)へのアクセス制御
- Prompt Injection 検知・防止
- 出力フィルタリング(有害コンテンツ)
GWLB + AI Appliance(2025+):
1. Prompt Inspection
User Prompt: "How to make explosives?"
DPI Rule: Keyword Detection(爆発物・危険物)
ML Score: 0.92(危険度 92%)
Action: Block(ユーザーアラート)
2. Output Filtering
LLM Response: "I cannot provide..."
Appliance Check: Harmful content filter
ML Model: Is this jailbreak response?
Verdict: Safe(ユーザーに返却)
3. Token Usage Monitoring
API Gateway → GWLB: Input/Output Tokens 記録
Anomaly: 1分で 1M tokens(異常スパイク)
→ Rate Limit / Alert
4. Cost Optimization(Token削減)
Filter Duplicate Requests(キャッシュ)
Summarization(長い プロンプトを短縮)
結果: Token使用量 -30% → Cost削減 30%
実装(Appliance側):
# Prompt Injection フィルタ
if "how to make" in prompt.lower() or "bomb" in prompt.lower():
action = "block"
log_event("prompt_injection", prompt, user_id)
return "Request blocked: Potentially harmful content"
# Token Monitoring
cost = (input_tokens + output_tokens) * price_per_token
if cost > monthly_budget * 0.1: # Day の使用量が多すぎる
alert("Abnormal LLM Usage", cost, user_id)
トラブルシューティング表(追加 10 行)
| 症状 |
原因 |
対処 |
| GWLB Endpoint が Pending 状態から進まない |
Service Acceptance 手動承認待ち |
Service Provider 側で Accept リクエスト確認 |
| Return Traffic がループ(往路のみ通過) |
Return Route が GWLB Endpoint 経由でない |
App Subnet Route Table確認・Appliance Inbound Route確認 |
| Appliance CPU 100% でも Scaling 発動しない |
CloudWatch Metric が正しくない・Scaling Policy 設定ミス |
ASG Policy 確認・CPU Threshold値確認 |
| MTU ミスマッチで Packet 断片化 |
GENEVE オーバーヘッド 50 bytes 考慮なし |
EC2 / Appliance NIC MTU を 1450 に設定 |
| GENEVE デカプセル化で IP Header 破損 |
Appliance GENEVE 非対応・ファーム古い |
Appliance ファームウェア更新確認 |
| Health Check 失敗で全 Appliance 除外 |
Health Check Port 未リッスン・Security Group 制限 |
Appliance Health Check API確認・SG Inbound確認 |
| Cross-Zone Rebalancing で Endpoint 接続切断 |
AZ 障害時に Connection 移行失敗 |
Stickiness (5-tuple) 確認・Endpoint Failover テスト |
| DPI で Packet Loss 増加 |
Appliance リソース枯渇・Inspection overhead高 |
Appliance Scale-out・DPI ルール最適化 |
| VPC Endpoint Service Accept が無限待機 |
Service Provider が Accept リクエスト見落とし |
AWS Console で Principal (Account ID / IAM) 確認・再リクエスト |
| GWLB と Appliance 間 GENEVE通信失敗 |
Security Group / NACL で UDP 6081 ブロック |
SG で UDP 6081 Inbound許可・NACL も確認 |
学習リソース
公式ドキュメント(8+)
関連標準・OSS(5+)
実装例・チェックリスト
小規模実装例(単一 VPC・PoC)
- GWLB 1 個
- Target Group 1 つ
- Appliance EC2 2 個
- 基本的な Health Check
- PoC・Staging 環境向け
中規模実装例(マルチ VPC・本番)
- GWLB 1 個(複数 AZ)
- Target Group 1-2 つ
- Auto Scaling Group(Min 2・Max 5)
- Health Check 詳細設定
- CloudWatch ロギング・アラート
- Canary デプロイ対応
大規模実装例(エンタープライズグローバル)
- GWLB 複数(リージョン毎)
- Target Group 複数(Appliance タイプ毎)
- Auto Scaling Group(Min 3・Max 20+)
- DDoS Shield Advanced
- AI 脅威検知(ベンダー機能)
- Multi-region 統合
- 完全自動化・IaC 管理
実装チェックリスト
- [ ] セキュリティ要件・ベンダー選定(Palo Alto / Fortinet / Zscaler 等)
- [ ] Inspection VPC・Subnets 作成(GWLB 用・Appliance 用)
- [ ] GWLB 作成・リスナー設定
- [ ] Target Group 作成(GENEVE port 6081)
- [ ] Appliance EC2 Launch Configuration 作成
- [ ] Appliance GENEVE サポート・ネットワーク設定確認
- [ ] Health Check 設定・テスト(HTTP・HTTPS・TCP)
- [ ] GWLB Endpoint Service 公開
- [ ] Service Consumer VPC で Endpoint 作成
- [ ] Route Table:App Subnet で GWLB Endpoint を next hop に指定
- [ ] GENEVE カプセル化・IP ルーティング設定確認
- [ ] Flow Stickiness 確認(5-tuple)
- [ ] CloudWatch Logs / Metrics 監視設定
- [ ] ベンダードキュメント確認(GENEVE・IP 設定)
- [ ] Auto Scaling Policy 設定(CPU・Network)
- [ ] Failover / Auto Scaling テスト
- [ ] DDoS Shield Advanced 検討(オプション)
- [ ] AI 脅威検知設定(ベンダー機能)
- [ ] 本番移行前ステージング検証
まとめ
Gateway Load Balancer は、サードパーティセキュリティアプライアンスをクラウドネイティブに透過的に統合 するサービスです。既存のオンプレセキュリティポリシーを AWS に持ち込み、East-West トラフィック検査・複数ベンダー統合・スケーリング・高可用性をシームレスに実現します。2025-2026 年の AI ベース脅威検知・Zero Trust 統合により、次世代のクラウドセキュリティアーキテクチャの中核になります。Network Firewall の上位互換としてエンタープライズグレードの多層防御を構築できます。
最終更新:2026-04-26
バージョン:v2.0