AWS Networking

VPC、ロードバランサー、Route 53

VPC(Virtual Private Cloud)

AWS内の論理的に分離されたネットワーク。IPレンジ、サブネット、ルーティングを定義。

VPCの構成要素

VPC
10.0.0.0/16(65,536 IPs)
Public Subnet
10.0.1.0/24(インターネットアクセス可)
Private Subnet
10.0.2.0/24(インターネット直接アクセス不可)
コンポーネント説明
Internet GatewayVPCとインターネット間の通信を可能に
NAT Gatewayプライベートサブネットからの外向き通信を許可
Route Tableトラフィックの経路を定義
Security Groupインスタンスレベルのファイアウォール(ステートフル)
Network ACLサブネットレベルのファイアウォール(ステートレス)

セキュリティグループ vs NACL

観点Security GroupNetwork ACL
適用レベルインスタンスサブネット
ステートステートフルステートレス
ルール許可のみ許可と拒否
評価順すべて評価番号順
デフォルトすべて拒否すべて許可

ロードバランサー

ALB

Application Load Balancer

  • • L7(HTTP/HTTPS)
  • • パスベースルーティング
  • • WebSocket対応

NLB

Network Load Balancer

  • • L4(TCP/UDP)
  • • 超低レイテンシ
  • • 静的IP

GLB

Gateway Load Balancer

  • • L3(IP)
  • • ファイアウォール連携
  • • トラフィック検査
1# ALB Terraform例
2resource "aws_lb" "main" {
3 name = "my-alb"
4 internal = false
5 load_balancer_type = "application"
6 security_groups = [aws_security_group.alb.id]
7 subnets = aws_subnet.public[*].id
8
9 enable_deletion_protection = true
10}
11
12resource "aws_lb_target_group" "app" {
13 name = "app-tg"
14 port = 80
15 protocol = "HTTP"
16 vpc_id = aws_vpc.main.id
17 target_type = "ip" # Fargate用
18
19 health_check {
20 path = "/health"
21 healthy_threshold = 2
22 unhealthy_threshold = 10
23 }
24}

Route 53

AWSのDNSサービス。ドメイン登録、DNSルーティング、ヘルスチェック。

ルーティングポリシー

シンプル

1つのリソースにルーティング

加重(Weighted)

トラフィックを割合で分散(カナリアデプロイ)

レイテンシ

最も低レイテンシのリージョンにルーティング

フェイルオーバー

プライマリ障害時にセカンダリに切り替え

位置情報

ユーザーの地理的位置に基づきルーティング

VPC接続オプション

オプションユースケース
VPC Peering2つのVPC間の直接接続
Transit Gateway複数VPCのハブ&スポーク接続
VPNオンプレミスとの暗号化接続
Direct Connect専用線によるオンプレミス接続
PrivateLinkVPCエンドポイント経由でAWSサービスにアクセス

VPCエンドポイント

Gatewayエンドポイント

S3、DynamoDB向け。無料。

Interfaceエンドポイント

ほとんどのAWSサービス。ENIを作成。課金あり。

メリット: プライベートサブネットからNATなしでAWSサービスにアクセス。 トラフィックがインターネットを通らないため、セキュリティとコスト面で有利。