Day8: ネットワーク:AWS VPC vs Azure VNet
皆さん、こんにちは。エンジニアのAkrです。
「徹底比較! AWS vs Azure」シリーズ、Day8へようこそ。
今回は、クラウドにおけるネットワークの基盤となるサービス、AWSの VPC(Virtual Private Cloud) とAzureの VNet(Virtual Network) を比較します。これらは、クラウド上に独自のプライベートネットワークを構築し、セキュリティを確保するための要となるサービスです。
クラウドネットワーキングの基本概念
VPCとVNetは、どちらもクラウド上の**「仮想的なデータセンター」**として機能します。これらのサービスにより、以下のような機能を実現できます:
主要機能
- 論理的分離: 他のユーザーのリソースから完全に隔離されたプライベート空間
- IPアドレス管理: CIDR記法による柔軟なアドレス空間設計
- サブネット分割: 用途別・層別のネットワークセグメンテーション
- ルーティング制御: カスタムルートテーブルによるトラフィック経路制御
- セキュリティ制御: ファイアウォール機能による通信の制御
- ハイブリッド接続: オンプレミス環境との安全な接続
AWS VPC vs Azure VNet:包括的比較
比較項目 | AWS VPC | Azure VNet |
---|---|---|
基本的な概念 | Region内の論理的な分離ネットワーク | Resource Group内の仮想ネットワーク |
サブネットの特徴 | 必ず単一AZに属する | AZを意識しない(可用性ゾーンまたがり可能) |
デフォルトIPアドレス範囲 | 10.0.0.0/16 | 10.0.0.0/16 |
最大CIDRブロック | /16(65,536個のIP) | /8(16,777,216個のIP) |
セキュリティ制御 | Security Group + Network ACL | Network Security Group (NSG) |
ルーティング | Route Table | Route Table + User Defined Routes |
NAT機能 | NAT Gateway / NAT Instance | NAT Gateway |
ロードバランサー | ELB (ALB/NLB/CLB) | Azure Load Balancer / Application Gateway |
VPN接続 | Site-to-Site VPN / Client VPN | Site-to-Site VPN / Point-to-Site VPN |
専用線接続 | Direct Connect | ExpressRoute |
DNS解決 | Route 53 Resolver | Azure DNS |
ネットワーク監視 | VPC Flow Logs / CloudWatch | NSG Flow Logs / Network Watcher |
AWS VPC:詳細分析
アーキテクチャの特徴
多層セキュリティモデル
Internet Gateway
↓
Route Table
↓
Network ACL (Subnet Level - Stateless)
↓
Security Group (Instance Level - Stateful)
↓
EC2 Instance
強み(Pros)
1. 多層防御によるセキュリティ
- Security Group: インスタンスレベルでのステートフル制御
- Network ACL: サブネットレベルでのステートレス制御
- デフォルトでDeny、明示的なAllow必要
2. アベイラビリティゾーン設計の明確性
# サブネット構成例
Public Subnet A (10.0.1.0/24) -> AZ-1a
Private Subnet A (10.0.11.0/24) -> AZ-1a
Public Subnet B (10.0.2.0/24) -> AZ-1b
Private Subnet B (10.0.12.0/24) -> AZ-1b
3. 豊富なネットワークサービス
- Transit Gateway: 複数VPC間の中央集約型接続
- PrivateLink: サービス間のプライベート接続
- CloudFront: グローバルCDNとの統合
4. 細かな制御とカスタマイズ
- カスタムDHCPオプション設定
- VPC Endpoints による AWS サービスへのプライベートアクセス
- Elastic IP の柔軟な割り当て
弱み(Cons)
1. 学習コストの高さ
- 多数の設定項目と概念の理解が必要
- AZ設計における制約の理解が必要
2. 初期設定の複雑さ
- NAT Gateway、Internet Gateway の明示的な設定
- ルートテーブルの詳細な設計が必要
Azure VNet:詳細分析
アーキテクチャの特徴
シンプル統合モデル
Azure Load Balancer / Application Gateway
↓
Network Security Group (NSG)
↓
Virtual Machine
強み(Pros)
1. シンプルな管理体系
- NSG一つですべてのレイヤーのセキュリティを制御
- 直感的なポータル管理画面
- デフォルト設定の充実
2. Microsoft エコシステムとの強力な統合
- Active Directory: シームレスな認証統合
- Office 365: エンタープライズアプリケーション連携
- Hybrid Connection: オンプレミスとの統合が容易
3. 柔軟なサブネット設計
- サブネットがAZをまたぐことが可能
- 後からのサブネット追加・変更が比較的容易
4. 統合監視・診断機能
- Network Watcher: 包括的なネットワーク診断
- Connection Monitor: エンドツーエンドの接続監視
- Traffic Analytics: NSGフローログの高度な分析
弱み(Cons)
1. セキュリティ制御の粒度
- NSGのみの制御でAWS VPCほどの多層防御は困難
- ステートレス制御の欠如
2. AWS比較でのサービス成熟度
- 一部のネットワーク機能でAWSに後れ
- サードパーティツールとの統合でAWSが優位
実践的な設定例
AWS VPC設定(Terraform)
# VPC作成
resource "aws_vpc" "main" {
cidr_block = "10.0.0.0/16"
enable_dns_hostnames = true
enable_dns_support = true
tags = {
Name = "main-vpc"
}
}
# パブリックサブネット
resource "aws_subnet" "public" {
count = 2
vpc_id = aws_vpc.main.id
cidr_block = "10.0.${count.index + 1}.0/24"
availability_zone = data.aws_availability_zones.available.names[count.index]
map_public_ip_on_launch = true
tags = {
Name = "public-subnet-${count.index + 1}"
}
}
# Security Group
resource "aws_security_group" "web" {
name_prefix = "web-sg"
vpc_id = aws_vpc.main.id
ingress {
from_port = 80
to_port = 80
protocol = "tcp"
cidr_blocks = ["0.0.0.0/0"]
}
ingress {
from_port = 443
to_port = 443
protocol = "tcp"
cidr_blocks = ["0.0.0.0/0"]
}
egress {
from_port = 0
to_port = 0
protocol = "-1"
cidr_blocks = ["0.0.0.0/0"]
}
}
Azure VNet設定(ARM Template)
{
"type": "Microsoft.Network/virtualNetworks",
"apiVersion": "2021-02-01",
"name": "main-vnet",
"location": "[resourceGroup().location]",
"properties": {
"addressSpace": {
"addressPrefixes": ["10.0.0.0/16"]
},
"subnets": [
{
"name": "web-subnet",
"properties": {
"addressPrefix": "10.0.1.0/24",
"networkSecurityGroup": {
"id": "[resourceId('Microsoft.Network/networkSecurityGroups', 'web-nsg')]"
}
}
},
{
"name": "app-subnet",
"properties": {
"addressPrefix": "10.0.2.0/24"
}
}
]
}
}
パフォーマンスと制限値比較
項目 | AWS VPC | Azure VNet |
---|---|---|
VPC/VNet数上限 | 5 (リクエストで100まで拡張可能) | 1000 |
サブネット数上限 | 200 | 3000 |
セキュリティグループ数上限 | 2500 | 5000 |
ルール数上限/SG | 60 | 1000 |
ネットワークACL数上限 | 200 | N/A (NSGのみ) |
VPCピアリング接続数上限 | 125 | 500 |
帯域幅 | インスタンスタイプ依存 | VM サイズ依存 |
セキュリティベストプラクティス
AWS VPCのセキュリティ設計
1. 多層防御の実装
# Network ACL(サブネットレベル)
Rule 100: Allow HTTP (80) from 0.0.0.0/0
Rule 110: Allow HTTPS (443) from 0.0.0.0/0
Rule 120: Allow SSH (22) from 10.0.0.0/8
Rule 32767: Deny All
# Security Group(インスタンスレベル)
Inbound: Allow 80,443 from ALB Security Group
Inbound: Allow 22 from Bastion Host Security Group
Outbound: Allow All (デフォルト)
2. Private Subnetの活用
- データベースやアプリケーションサーバーはPrivate Subnetに配置
- NAT Gatewayを通じたインターネットアクセス
- VPC Endpointsによる AWS サービスへのプライベートアクセス
Azure VNetのセキュリティ設計
1. NSGによる層別セキュリティ
{
"securityRules": [
{
"name": "AllowWebTraffic",
"properties": {
"priority": 100,
"access": "Allow",
"direction": "Inbound",
"protocol": "Tcp",
"sourcePortRange": "*",
"destinationPortRanges": ["80", "443"],
"sourceAddressPrefix": "Internet",
"destinationAddressPrefix": "VirtualNetwork"
}
}
]
}
2. Application Security Group(ASG)の活用
- 論理的なグループによるセキュリティポリシー管理
- 役割ベースのネットワークセキュリティ
コスト比較
AWS VPC主要コスト要素
- NAT Gateway: $0.045/時間 + データ処理料
- VPC Endpoints: $0.01/時間/AZ
- Transit Gateway: $0.05/時間 + データ処理料
- Direct Connect: 専用線料金 + ポート時間料金
Azure VNet主要コスト要素
- VNet Gateway: SKUに応じて $0.04-$0.50/時間
- NAT Gateway: $0.045/時間 + データ処理料
- ExpressRoute: 回線容量に応じた月額料金
- Private Endpoints: $0.01/時間
実際の選択指針
AWS VPCを選ぶべき場合
技術的要件:
- 極めて高いセキュリティ要件(多層防御必須)
- 複雑なネットワークトポロジーの実装
- AWSエコシステム内での最適化が優先
- 細かなトラフィック制御が必要
組織的要件:
- AWS認定エンジニアの豊富な在籍
- 既存システムがAWS中心
- スタートアップから大企業まで幅広い適用
Azure VNetを選ぶべき場合
技術的要件:
- 迅速な環境構築が最優先
- Microsoft製品との統合が前提
- シンプルな管理体系が望ましい
- ハイブリッドクラウド戦略が中心
組織的要件:
- Microsoft系の技術スタック
- エンタープライズ環境でのActive Directory統合
- Office 365との連携が重要
アーキテクチャパターン例
3層アーキテクチャ(AWS VPC)
Internet Gateway
├── Public Subnet (Web Tier)
│ └── Application Load Balancer
├── Private Subnet (App Tier)
│ └── EC2 Instances (Auto Scaling)
└── Database Subnet (Data Tier)
└── RDS Multi-AZ
ハイブリッドアーキテクチャ(Azure VNet)
ExpressRoute Gateway
├── DMZ Subnet
│ └── Azure Firewall
├── Web Subnet
│ └── Application Gateway + Web Apps
├── App Subnet
│ └── Virtual Machines + Container Instances
└── Data Subnet
└── Azure SQL Database
まとめ:戦略的な選択ガイド
評価項目 | AWS VPC | Azure VNet |
---|---|---|
セキュリティ制御 | ✅ 多層防御で最高レベル | ⭕ シンプルで実用的 |
学習コスト | ❌ 高い(複雑) | ✅ 低い(直感的) |
柔軟性・拡張性 | ✅ 極めて高い | ⭕ 十分に高い |
Microsoft統合 | ❌ 限定的 | ✅ 完全統合 |
エコシステム | ✅ 最も成熟 | ⭕ 急速に拡大 |
TCO(運用含む) | ⭕ 技術者次第 | ✅ 一般的に低い |
最終推奨
AWS VPCを選択すべきケース:
金融機関や政府機関など極めて高いセキュリティが要求される環境、複雑なマルチクラウド戦略、AWS専門チームによる運用
Azure VNetを選択すべきケース:
Microsoft環境の既存資産活用、迅速なクラウド移行、エンタープライズでのハイブリッドクラウド構築、中小企業での運用負荷軽減
どちらも業界標準の機能を提供しますが、組織の技術戦略、既存システム、運用体制を総合的に考慮した選択が成功の鍵となります。
次回のDay9では、認証・認可の要となるAWS IAMとAzure Active Directory(Entra ID)を詳細比較します。クラウドセキュリティの根幹を成すこれらのサービスの設計思想の違いから実装パターンまで、実践的な観点で分析予定です。お楽しみに!