graph TB
%% Production Environment Physical Architecture
%% KT Event Marketing Service - Azure Cloud Enterprise Architecture
Users[Mobile/Web Users
초기 100명, 확장 10만명] --> CDN[Azure Front Door
+ CDN]
subgraph "Azure Cloud - Production Environment"
CDN --> AppGateway[Application Gateway
+ WAF v2
Zone Redundant]
subgraph "VNet (10.0.0.0/16)"
subgraph "Gateway Subnet (10.0.5.0/24)"
AppGateway
end
subgraph "Application Subnet (10.0.1.0/24)"
subgraph "AKS Premium Cluster - Multi-Zone"
direction TB
subgraph "System Node Pool"
SystemNode1[System Node 1
Zone 1
D2s_v3]
SystemNode2[System Node 2
Zone 2
D2s_v3]
SystemNode3[System Node 3
Zone 3
D2s_v3]
end
subgraph "Application Node Pool"
AppNode1[App Node 1
Zone 1
D4s_v3]
AppNode2[App Node 2
Zone 2
D4s_v3]
AppNode3[App Node 3
Zone 3
D4s_v3]
end
subgraph "Application Services - 7 Microservices"
UserService[User Service
Layered Arch
3 replicas, HPA 2-10]
EventService[Event Service
Clean Arch
3 replicas, HPA 3-15]
AIService[AI Service
Clean Arch
2 replicas, HPA 2-8]
ContentService[Content Service
Clean Arch
2 replicas, HPA 2-8]
DistService[Distribution Service
Layered Arch
2 replicas, HPA 2-10]
PartService[Participation Service
Layered Arch
2 replicas, HPA 2-8]
AnalService[Analytics Service
Layered Arch
2 replicas, HPA 2-10]
end
end
end
AppGateway -->|NodePort 30080-30086| UserService
AppGateway -->|NodePort 30080-30086| EventService
AppGateway -->|NodePort 30080-30086| AIService
AppGateway -->|NodePort 30080-30086| ContentService
AppGateway -->|NodePort 30080-30086| DistService
AppGateway -->|NodePort 30080-30086| PartService
AppGateway -->|NodePort 30080-30086| AnalService
subgraph "Database Subnet (10.0.2.0/24)"
subgraph "Per-Service Databases"
UserDB[User PostgreSQL
Flexible Server
Primary - Zone 1
GP_Standard_D2s_v3]
EventDB[Event PostgreSQL
Flexible Server
Primary - Zone 1
GP_Standard_D4s_v3]
AIDB[AI PostgreSQL
Flexible Server
Primary - Zone 1
GP_Standard_D2s_v3]
ContentDB[Content PostgreSQL
Flexible Server
Primary - Zone 1
GP_Standard_D2s_v3]
DistDB[Distribution PostgreSQL
Flexible Server
Primary - Zone 1
GP_Standard_D2s_v3]
PartDB[Participation PostgreSQL
Flexible Server
Primary - Zone 1
GP_Standard_D2s_v3]
AnalDB[Analytics PostgreSQL
Flexible Server
Primary - Zone 1
GP_Standard_D4s_v3]
end
subgraph "Database HA"
UserReplica[User DB Replica
Zone 2]
EventReplica[Event DB Replica
Zone 2]
AnalReplica[Analytics DB Replica
Zone 2]
AutoBackup[Automated Backup
Point-in-time Recovery
35 days retention]
end
end
subgraph "Cache Subnet (10.0.3.0/24)"
RedisPrimary[Azure Redis Premium
P2 - 6GB
Primary - Zone 1
AI결과/이미지/사업자검증 캐시]
RedisSecondary[Redis Secondary
Zone 2
HA Enabled]
end
end
subgraph "Service Bus Premium"
ServiceBusPremium[Azure Service Bus
Premium Tier
sb-kt-event-prod]
subgraph "Message Queues"
AIQueue[ai-event-generation
Partitioned, 16GB
비동기 AI 처리]
ContentQueue[content-generation
Partitioned, 16GB
비동기 이미지 생성]
DistQueue[distribution-jobs
Partitioned, 16GB
다중 채널 배포]
AnalQueue[analytics-aggregation
Partitioned, 8GB
실시간 분석]
end
end
subgraph "Private Endpoints"
UserDBEndpoint[User DB
Private Endpoint
10.0.2.10]
EventDBEndpoint[Event DB
Private Endpoint
10.0.2.11]
AIDBEndpoint[AI DB
Private Endpoint
10.0.2.12]
ContentDBEndpoint[Content DB
Private Endpoint
10.0.2.13]
DistDBEndpoint[Distribution DB
Private Endpoint
10.0.2.14]
PartDBEndpoint[Participation DB
Private Endpoint
10.0.2.15]
AnalDBEndpoint[Analytics DB
Private Endpoint
10.0.2.16]
RedisEndpoint[Redis
Private Endpoint
10.0.3.10]
ServiceBusEndpoint[Service Bus
Private Endpoint
10.0.4.10]
KeyVaultEndpoint[Key Vault
Private Endpoint
10.0.6.10]
end
subgraph "Security & Management"
KeyVault[Azure Key Vault
Premium
HSM-backed
시크릿 관리]
AAD[Azure Active Directory
RBAC Integration]
Monitor[Azure Monitor
+ Application Insights
Log Analytics]
end
%% Database Private Link Connections
UserService -->|Private Link| UserDBEndpoint
EventService -->|Private Link| EventDBEndpoint
AIService -->|Private Link| AIDBEndpoint
ContentService -->|Private Link| ContentDBEndpoint
DistService -->|Private Link| DistDBEndpoint
PartService -->|Private Link| PartDBEndpoint
AnalService -->|Private Link| AnalDBEndpoint
UserDBEndpoint --> UserDB
EventDBEndpoint --> EventDB
AIDBEndpoint --> AIDB
ContentDBEndpoint --> ContentDB
DistDBEndpoint --> DistDB
PartDBEndpoint --> PartDB
AnalDBEndpoint --> AnalDB
%% Cache Private Link Connections - Cache-Aside Pattern
UserService -->|Private Link
Cache-Aside| RedisEndpoint
AIService -->|Private Link
Cache-Aside
24h TTL| RedisEndpoint
ContentService -->|Private Link
Cache-Aside
이미지 캐싱| RedisEndpoint
AnalService -->|Private Link
Cache-Aside
5분 간격| RedisEndpoint
RedisEndpoint --> RedisPrimary
RedisEndpoint --> RedisSecondary
%% Service Bus Private Link Connections - Async Request-Reply Pattern
AIService -->|Private Link
Async Request-Reply| ServiceBusEndpoint
ContentService -->|Private Link
Async Request-Reply| ServiceBusEndpoint
DistService -->|Private Link
7개 채널 배포| ServiceBusEndpoint
AnalService -->|Private Link
실시간 분석| ServiceBusEndpoint
ServiceBusEndpoint --> ServiceBusPremium
ServiceBusPremium --> AIQueue
ServiceBusPremium --> ContentQueue
ServiceBusPremium --> DistQueue
ServiceBusPremium --> AnalQueue
%% High Availability Connections
UserDB -.->|Replication| UserReplica
EventDB -.->|Replication| EventReplica
AnalDB -.->|Replication| AnalReplica
UserDB -.->|Auto Backup| AutoBackup
EventDB -.->|Auto Backup| AutoBackup
AIDB -.->|Auto Backup| AutoBackup
ContentDB -.->|Auto Backup| AutoBackup
DistDB -.->|Auto Backup| AutoBackup
PartDB -.->|Auto Backup| AutoBackup
AnalDB -.->|Auto Backup| AutoBackup
RedisPrimary -.->|HA Sync| RedisSecondary
%% Security Connections - Managed Identity
UserService -.->|Managed Identity| KeyVaultEndpoint
EventService -.->|Managed Identity| KeyVaultEndpoint
AIService -.->|Managed Identity| KeyVaultEndpoint
ContentService -.->|Managed Identity| KeyVaultEndpoint
DistService -.->|Managed Identity| KeyVaultEndpoint
PartService -.->|Managed Identity| KeyVaultEndpoint
AnalService -.->|Managed Identity| KeyVaultEndpoint
KeyVaultEndpoint --> KeyVault
UserService -.->|RBAC| AAD
EventService -.->|RBAC| AAD
AIService -.->|RBAC| AAD
ContentService -.->|RBAC| AAD
DistService -.->|RBAC| AAD
PartService -.->|RBAC| AAD
AnalService -.->|RBAC| AAD
%% Monitoring Connections
UserService -.->|Telemetry| Monitor
EventService -.->|Telemetry| Monitor
AIService -.->|Telemetry| Monitor
ContentService -.->|Telemetry| Monitor
DistService -.->|Telemetry| Monitor
PartService -.->|Telemetry| Monitor
AnalService -.->|Telemetry| Monitor
end
%% External Integrations - Circuit Breaker Pattern
subgraph "External Services - Circuit Breaker 적용"
TaxAPI[국세청 API
사업자번호 검증]
ClaudeAPI[Claude API
트렌드 분석 및 추천]
SDAPI[Stable Diffusion
SNS 이미지 생성]
UriAPI[우리동네TV API
영상 송출]
RingoAPI[링고비즈 API
연결음]
GenieAPI[지니TV API
광고 등록]
InstagramAPI[Instagram API
SNS 포스팅]
NaverAPI[Naver Blog API
블로그 포스팅]
KakaoAPI[Kakao API
채널 포스팅]
end
%% External API Connections with Circuit Breaker
UserService -->|Circuit Breaker
실패율 5% 임계값| TaxAPI
AIService -->|Circuit Breaker
10초 타임아웃| ClaudeAPI
ContentService -->|Circuit Breaker
5초 타임아웃| SDAPI
DistService -->|Circuit Breaker
독립 채널 처리| UriAPI
DistService -->|Circuit Breaker
독립 채널 처리| RingoAPI
DistService -->|Circuit Breaker
독립 채널 처리| GenieAPI
DistService -->|Circuit Breaker
독립 채널 처리| InstagramAPI
DistService -->|Circuit Breaker
독립 채널 처리| NaverAPI
DistService -->|Circuit Breaker
독립 채널 처리| KakaoAPI
%% DevOps & CI/CD
subgraph "DevOps Infrastructure"
GitHubActions[GitHub Actions
Enterprise CI/CD]
ArgoCD[ArgoCD
GitOps Deployment
HA Mode]
ContainerRegistry[Azure Container Registry
Premium Tier
Geo-replicated]
end
%% DevOps Connections
GitHubActions -->|Build & Push| ContainerRegistry
ArgoCD -->|Deploy| UserService
ArgoCD -->|Deploy| EventService
ArgoCD -->|Deploy| AIService
ArgoCD -->|Deploy| ContentService
ArgoCD -->|Deploy| DistService
ArgoCD -->|Deploy| PartService
ArgoCD -->|Deploy| AnalService
%% Backup & DR
subgraph "Backup & Disaster Recovery"
BackupVault[Azure Backup Vault
GRS - 99.999999999%]
DRSite[DR Site
Secondary Region
Korea Central]
end
UserDB -.->|Automated Backup| BackupVault
EventDB -.->|Automated Backup| BackupVault
AIDB -.->|Automated Backup| BackupVault
ContentDB -.->|Automated Backup| BackupVault
DistDB -.->|Automated Backup| BackupVault
PartDB -.->|Automated Backup| BackupVault
AnalDB -.->|Automated Backup| BackupVault
RedisPrimary -.->|Data Persistence| BackupVault
ContainerRegistry -.->|Image Backup| BackupVault
BackupVault -.->|Geo-replication| DRSite
%% Styling
classDef azureService fill:#0078d4,stroke:#333,stroke-width:2px,color:#fff
classDef microservice fill:#28a745,stroke:#333,stroke-width:2px,color:#fff
classDef database fill:#dc3545,stroke:#333,stroke-width:2px,color:#fff
classDef cache fill:#ff6b6b,stroke:#333,stroke-width:2px,color:#fff
classDef security fill:#ffc107,stroke:#333,stroke-width:2px,color:#333
classDef external fill:#17a2b8,stroke:#333,stroke-width:2px,color:#fff
classDef devops fill:#6f42c1,stroke:#333,stroke-width:2px,color:#fff
classDef backup fill:#e83e8c,stroke:#333,stroke-width:2px,color:#fff
classDef privateEndpoint fill:#fd7e14,stroke:#333,stroke-width:2px,color:#fff
classDef nodePool fill:#20c997,stroke:#333,stroke-width:2px,color:#fff
classDef queue fill:#f8b500,stroke:#333,stroke-width:2px,color:#333
class CDN,AppGateway,ServiceBusPremium,ContainerRegistry,Monitor,AAD azureService
class UserService,EventService,AIService,ContentService,DistService,PartService,AnalService microservice
class UserDB,EventDB,AIDB,ContentDB,DistDB,PartDB,AnalDB,UserReplica,EventReplica,AnalReplica,AutoBackup database
class RedisPrimary,RedisSecondary cache
class KeyVault,KeyVaultEndpoint security
class Users,TaxAPI,ClaudeAPI,SDAPI,UriAPI,RingoAPI,GenieAPI,InstagramAPI,NaverAPI,KakaoAPI external
class GitHubActions,ArgoCD devops
class BackupVault,DRSite backup
class UserDBEndpoint,EventDBEndpoint,AIDBEndpoint,ContentDBEndpoint,DistDBEndpoint,PartDBEndpoint,AnalDBEndpoint,RedisEndpoint,ServiceBusEndpoint privateEndpoint
class SystemNode1,SystemNode2,SystemNode3,AppNode1,AppNode2,AppNode3 nodePool
class AIQueue,ContentQueue,DistQueue,AnalQueue queue