%%{init: {'theme':'base', 'themeVariables': { 'primaryColor': '#ffffff', 'primaryTextColor': '#000000', 'primaryBorderColor': '#000000', 'lineColor': '#000000'}}}%% graph TB %% 인터넷 및 외부 subgraph "Internet & External" Internet[🌐 Internet
HTTPS Traffic] KOS[🏢 KOS-Order System
On-premises
Private Connection] end %% Azure Edge Services subgraph "Azure Edge (Global)" AFD[☁️ Azure Front Door
Entry Point: *.phonebill.com
DDoS Protection Standard
CDN + WAF Policy] end %% Azure Virtual Network subgraph "Azure VNet (10.0.0.0/16) - Korea Central" %% Gateway Subnet subgraph "Gateway Subnet (10.0.4.0/24)" AppGW[🛡️ Application Gateway
Public IP: 20.194.xxx.xxx
Private IP: 10.0.4.10
Standard_v2 + WAF
SSL Termination] subgraph "WAF Configuration" WAF[🔒 Web Application Firewall
• OWASP CRS 3.2
• Rate Limiting: 100/min
• Prevention Mode
• Custom Rules] end end %% Application Subnet subgraph "Application Subnet (10.0.1.0/24)" subgraph "AKS Cluster Network" LB[⚖️ Internal Load Balancer
ClusterIP: 10.0.1.100
Service Distribution] subgraph "Pod Network (CNI)" AuthSvc[🔐 Auth Service
ClusterIP: 10.0.1.10
Port: 8080
Replicas: 3-10] BillSvc[📊 Bill-Inquiry Service
ClusterIP: 10.0.1.20
Port: 8080
Replicas: 3-15] ProductSvc[🔄 Product-Change Service
ClusterIP: 10.0.1.30
Port: 8080
Replicas: 2-8] end end subgraph "Service Bus Private Endpoint" SBEndpoint[📨 Service Bus PE
10.0.1.200
sb-phonebill-prod.servicebus.windows.net] end subgraph "Key Vault Private Endpoint" KVEndpoint[🔑 Key Vault PE
10.0.1.210
kv-phonebill-prod.vault.azure.net] end end %% Database Subnet subgraph "Database Subnet (10.0.2.0/24)" subgraph "PostgreSQL Private Endpoint" PGEndpoint[🗃️ PostgreSQL PE
10.0.2.10
phonebill-prod.postgres.database.azure.com
Port: 5432 (SSL required)] end subgraph "Read Replica Endpoints" PGReplica[📚 Read Replica PE
10.0.2.20
phonebill-replica.postgres.database.azure.com
Read-only Access] end end %% Cache Subnet subgraph "Cache Subnet (10.0.3.0/24)" subgraph "Redis Private Endpoint" RedisEndpoint[⚡ Redis Cache PE
10.0.3.10
phonebill-prod.redis.cache.windows.net
Port: 6380 (SSL)
Premium P2 Cluster] end end end %% Network Security Groups subgraph "Network Security (NSG Rules)" subgraph "Gateway NSG" GatewayNSG[🔒 App Gateway NSG
• Allow HTTPS (443) from Internet
• Allow HTTP (80) from Internet
• Allow GatewayManager
• Deny All Other] end subgraph "Application NSG" AppNSG[🔒 AKS NSG
• Allow 80,443 from Gateway Subnet
• Allow 5432 to Database Subnet
• Allow 6380 to Cache Subnet
• Allow 443 to Internet (KOS)
• Allow Azure Services] end subgraph "Database NSG" DBNSG[🔒 Database NSG
• Allow 5432 from App Subnet
• Deny All Other
• Management from Azure] end end %% Traffic Flow - Inbound Internet ==> AFD AFD ==> AppGW AppGW ==> LB LB ==> AuthSvc LB ==> BillSvc LB ==> ProductSvc %% Service to Data Flow AuthSvc --> PGEndpoint BillSvc --> PGEndpoint ProductSvc --> PGEndpoint %% Read Replica Access BillSvc -.-> PGReplica %% Cache Access AuthSvc --> RedisEndpoint BillSvc --> RedisEndpoint ProductSvc --> RedisEndpoint %% Message Queue Access BillSvc --> SBEndpoint ProductSvc --> SBEndpoint %% Security Access AuthSvc --> KVEndpoint BillSvc --> KVEndpoint ProductSvc --> KVEndpoint %% External System Access BillSvc -.-> KOS ProductSvc -.-> KOS %% DNS Resolution subgraph "Private DNS Zones" DNS1[🌐 privatelink.postgres.database.azure.com
PostgreSQL DNS Resolution] DNS2[🌐 privatelink.redis.cache.windows.net
Redis DNS Resolution] DNS3[🌐 privatelink.servicebus.windows.net
Service Bus DNS Resolution] DNS4[🌐 privatelink.vaultcore.azure.net
Key Vault DNS Resolution] end %% Network Policies subgraph "Kubernetes Network Policies" NetPol[📜 Network Policies
• Default Deny All
• Allow Ingress from App Gateway
• Allow Egress to Data Services
• Allow Egress to External (KOS)
• Inter-service Communication Rules] end %% Monitoring & Logging subgraph "Network Monitoring" NetMon[📊 Network Monitoring
• NSG Flow Logs
• Application Gateway Logs
• VNet Flow Logs
• Connection Monitor] end %% 스타일링 classDef internetClass fill:#e3f2fd,stroke:#0277bd,stroke-width:2px classDef azureEdgeClass fill:#e8f5e8,stroke:#388e3c,stroke-width:2px classDef networkClass fill:#fff3e0,stroke:#f57c00,stroke-width:2px classDef appClass fill:#fce4ec,stroke:#c2185b,stroke-width:2px classDef dataClass fill:#f3e5f5,stroke:#7b1fa2,stroke-width:2px classDef securityClass fill:#ffebee,stroke:#d32f2f,stroke-width:2px class Internet,KOS internetClass class AFD azureEdgeClass class AppGW,LB,NetMon networkClass class AuthSvc,BillSvc,ProductSvc,SBEndpoint appClass class PGEndpoint,RedisEndpoint,PGReplica dataClass class GatewayNSG,AppNSG,DBNSG,WAF,KVEndpoint,NetPol securityClass