infra-cli が作成する Azure インフラのネットワーク構成について説明します。
📊 ネットワーク構成図
🏗️ ネットワーク構成の詳細
Virtual Network (VNet)
| リージョン | CIDR | 総アドレス数 |
|---|
| Japan East | 10.0.0.0/16 | 65,536 |
| US East | 10.1.0.0/16 | 65,536 |
サブネット構成
| サブネット名 | CIDR | アドレス数 | 用途 |
|---|
| Container App Subnet | 10.0.0.0/18 | 16,384 | Container Apps Environment(500 企業対応) |
| Database Subnet | 10.0.64.0/19 | 8,192 | MySQL Flexible Server、Redis Cache |
| Shared Services Subnet | 10.0.96.0/19 | 8,192 | ACR、Key Vault、Log Analytics |
| Bastion Subnet | 10.0.128.0/26 | 64 | Azure Bastion(管理用) |
| Jumpbox Subnet | 10.0.128.64/26 | 64 | Jumpbox VM(管理用) |
| 予約領域 | 10.0.128.128/17 | 32,704 | 将来拡張用 |
Network Security Group (NSG) ルール
Container App NSG
| 優先度 | 方向 | ポート | ソース | 目的 |
|---|
| 100 | Inbound | 80 | Internet | HTTP アクセス許可 |
| 101 | Inbound | 443 | Internet | HTTPS アクセス許可 |
| 102 | Inbound | * | Container App Subnet | 内部通信許可 |
| 103 | Outbound | 443 | ACR | イメージプル |
| 104 | Outbound | 443 | Key Vault | シークレット取得 |
Database NSG
| 優先度 | 方向 | ポート | ソース | 目的 |
|---|
| 100 | Inbound | 3306 | Container App Subnet | MySQL アクセス |
| 101 | Inbound | 6379 | Container App Subnet | Redis アクセス |
| 102 | Inbound | 3306 | Jumpbox Subnet | 管理アクセス |
🔒 セキュリティ設計
- インターネット公開: Frontend Container App は HTTPS(443)でアクセス可能、Backend Container App は内部 Ingress のみ
- 内部通信: Container Apps → Database は VNet 内部通信(暗号化)、ACR と Key Vault は Managed Identity による認証
- 管理アクセス: Azure Bastion 経由で Jumpbox VM にアクセス、Jumpbox VM から Database の管理操作を実行、パブリック IP は不要
🔄 トラフィックフロー
- ユーザーアクセス: ユーザー → Internet → Frontend Container App (HTTPS:443) → Backend Container App (内部HTTPS) → MySQL Database (3306) / Redis (6379)
- CI/CD デプロイ: GitHub Actions → Container Registry (Push Image) → Container Apps (Pull Image)
- ログと監視: すべてのリソース → Log Analytics Workspace → Azure Monitor / Application Insights
🚀 スケーラビリティ
- マルチテナント対応: Container App Subnet は 16,384 アドレス(500 企業 × 約 30 アドレス)、Database Subnet は 8,192 アドレス(500 企業 × 約 15 アドレス)、将来拡張用に 32,704 アドレスの予約領域
- リージョン展開: Japan East (10.0.0.0/16)、US East (10.1.0.0/16)、各リージョンで独立した VNet 構成
📚 関連ドキュメント