Azure
VNet 네트워킹, 컴퓨팅 및 관리형 서비스를 위해 HashiCorp Flight 및 Carbon 아이콘 팩을 사용한 Azure 인프라 다이어그램입니다.
App Gateway를 포함한 VNet
섹션 제목: “App Gateway를 포함한 VNet”게이트웨이, 애플리케이션 및 데이터 서브넷이 있는 Azure VNet입니다. Application Gateway가 VM Scale Sets에 트래픽을 분산합니다.
architecture-beta group vnet(carbon:virtual-private-cloud)[Azure VNet] group gwsub(carbon:ibm-cloud-subnets)[Gateway Subnet] in vnet group appsub(carbon:ibm-cloud-subnets)[App Subnet] in vnet group datasub(carbon:ibm-cloud-subnets)[Data Subnet] in vnet service appgw(carbon:gateway-security)[App Gateway] in gwsub service vm1(hashicorp-flight:azure-vms-color)[VM Scale Set] in appsub service vm2(hashicorp-flight:azure-vms-color)[VM Scale Set] in appsub service sqldb(carbon:data-base)[Azure SQL] in datasub appgw:R --> L:vm1 appgw:B --> T:vm2 vm1:R --> L:sqldb vm2:R --> L:sqldb
F5 XC 멀티클라우드 연결을 포함한 AKS
섹션 제목: “F5 XC 멀티클라우드 연결을 포함한 AKS”멀티클라우드 애플리케이션 연결 및 보안을 위해 F5 Distributed Cloud를 앞단에 배치한 Azure Kubernetes Service입니다.
architecture-beta group xc(lucide:cloud)[F5 XC] group aks(hashicorp-flight:azure-aks-color)[AKS Cluster] service mcn(f5xc:multi-cloud-network-connect)[Network Connect] in xc service waap(f5xc:web-app-and-api-protection)[WAAP] in xc service ingress(carbon:gateway)[Ingress] in aks service app(hashicorp-flight:docker-color)[App Pods] in aks service cache(carbon:datastore)[Redis Cache] in aks service blob(hashicorp-flight:azure-blob-storage-color)[Blob Storage] mcn:R --> L:waap waap:R --> L:ingress ingress:R --> L:app app:B --> T:cache app:R --> L:blob
Hub-Spoke 네트워크 토폴로지
섹션 제목: “Hub-Spoke 네트워크 토폴로지”여러 스포크 VNet을 연결하는 중앙화된 보안 및 공유 서비스를 갖춘 Azure Hub-Spoke 아키텍처입니다.
flowchart TD
hub@{ icon: 'carbon:virtual-private-cloud', label: 'Hub VNet' }
fw@{ icon: 'carbon:firewall', label: 'Azure Firewall' }
vpn@{ icon: 'carbon:gateway-vpn', label: 'VPN Gateway' }
spoke1@{ icon: 'carbon:ibm-cloud-subnets', label: 'Spoke 1 - Web' }
spoke2@{ icon: 'carbon:ibm-cloud-subnets', label: 'Spoke 2 - App' }
spoke3@{ icon: 'carbon:ibm-cloud-subnets', label: 'Spoke 3 - Data' }
onprem@{ icon: 'lucide:server', label: 'On-Premises DC' }
onprem --> vpn
vpn --> hub
hub --> fw
fw --> spoke1
fw --> spoke2
fw --> spoke3부하 분산 장치를 사용한 NVA HA — 인터넷 트래픽
섹션 제목: “부하 분산 장치를 사용한 NVA HA — 인터넷 트래픽”인바운드 인터넷 트래픽은 공용 부하 분산 장치에 도달하고, 이를 통해 허브의 NVA 인스턴스에 분산됩니다. NVA는 검사된 트래픽을 스포크 워크로드로 전달합니다. 스포크에서의 반환 트래픽은 내부 부하 분산 장치를 통해 이그레스를 위해 NVA로 다시 라우팅됩니다. 번호가 매겨진 단계는 인바운드 경로(1-3)와 반환 경로(4-6)를 보여줍니다.
flowchart TD
subgraph internet[Internet]
cloud@{ icon: 'lucide:globe', label: 'Internet' }
end
subgraph hub[Hub VNet 10.0.0.0/24]
subgraph gwsub[Gateway Subnet 10.0.0.0/27]
gw@{ icon: 'azure:virtual-network-gateways', label: 'VPN/ER GW' }
end
subgraph nvasub[NVA Subnet 10.0.0.32/27]
intlb@{ icon: 'azure:load-balancers', label: 'Internal LB 10.0.0.36' }
nva@{ icon: 'azure:firewalls', label: 'NVA' }
end
publb@{ icon: 'azure:load-balancers', label: 'Public LB' }
end
subgraph spoke1[Spoke1 10.1.1.0/24]
app1@{ icon: 'azure:virtual-machine', label: 'App Server' }
end
subgraph spoke2[Spoke2 10.1.2.0/24]
app2@{ icon: 'azure:virtual-machine', label: 'App Server' }
end
onprem@{ icon: 'lucide:building', label: 'On-Premises 192.168.0.0/16' }
cloud -->|1| publb
publb -->|2| nva
nva -->|3| app2
app2 -->|4| intlb
intlb -->|5| nva
nva -->|6| cloud
onprem --> gw
gw --> intlb부하 분산 장치를 사용한 NVA HA — 온프레미스 트래픽
섹션 제목: “부하 분산 장치를 사용한 NVA HA — 온프레미스 트래픽”온프레미스 트래픽은 VPN 또는 ExpressRoute 게이트웨이를 통해 진입하고 여러 NVA 인스턴스 앞의 내부 부하 분산 장치로 전달됩니다. NVA는 트래픽을 검사하고 스포크 워크로드로 전달합니다. 반환 트래픽은 비대칭 라우팅 문제를 방지하기 위해 흐름 대칭성을 보장하는 동일한 내부 부하 분산 장치를 통해 이동합니다.
flowchart TD
subgraph hub[Hub VNet 10.0.0.0/24]
subgraph gwsub[Gateway Subnet 10.0.0.0/27]
gw@{ icon: 'azure:virtual-network-gateways', label: 'VPN/ER GW' }
end
subgraph nvasub[NVA Subnet 10.0.0.32/27]
intlb@{ icon: 'azure:load-balancers', label: 'Internal LB 10.0.0.36' }
nva1@{ icon: 'azure:firewalls', label: 'NVA' }
nva2@{ icon: 'azure:firewalls', label: 'NVA' }
end
end
subgraph spoke1[Spoke1 10.1.1.0/24]
app1@{ icon: 'azure:virtual-machine', label: 'App Server' }
end
subgraph spoke2[Spoke2 10.1.2.0/24]
app2@{ icon: 'azure:virtual-machine', label: 'App Server' }
end
onprem@{ icon: 'lucide:building', label: 'On-Premises 192.168.0.0/16' }
onprem -->|1| gw
gw -->|2| intlb
intlb -->|3| nva1
nva1 -->|4| app2
app2 -->|5| intlb
intlb -->|6| nva2
nva2 -->|7| gw
gw -->|8| onpremPIP/UDR을 사용한 NVA HA — 액티브/스탠바이
섹션 제목: “PIP/UDR을 사용한 NVA HA — 액티브/스탠바이”액티브 인스턴스(NVA1)가 공용 IP 주소를 보유하는 액티브/스탠바이 NVA 쌍입니다. 장애 발생 시 스탠바이 NVA2는 Azure API를 호출하여 공용 IP를 재할당하고 자신을 가리키도록 사용자 정의 경로를 업데이트합니다. 이 방식은 부하 분산 장치를 사용하지 않지만 API 수준의 페일오버 오케스트레이션이 필요합니다.
flowchart TD
subgraph internet[Internet]
cloud@{ icon: 'lucide:globe', label: 'Internet' }
end
subgraph hub[Hub VNet 10.0.0.0/24]
pip@{ icon: 'azure:public-ip-addresses', label: 'Public IP' }
subgraph gwsub[Gateway Subnet 10.0.0.0/27]
gw@{ icon: 'azure:virtual-network-gateways', label: 'VPN/ER GW' }
end
subgraph nvasub[NVA Subnet 10.0.0.32/27]
nva1@{ icon: 'azure:firewalls', label: 'NVA1 Active 10.0.0.37' }
nva2@{ icon: 'azure:firewalls', label: 'NVA2 Standby 10.0.0.38' }
end
end
subgraph spoke1[Spoke1 10.1.1.0/24]
app1@{ icon: 'azure:virtual-machine', label: 'App Server' }
end
subgraph spoke2[Spoke2 10.1.2.0/24]
app2@{ icon: 'azure:virtual-machine', label: 'App Server' }
end
onprem@{ icon: 'lucide:building', label: 'On-Premises 192.168.0.0/16' }
cloud -->|1| pip
pip -->|2| nva1
nva1 -->|3| app2
app2 -->|4| nva1
nva1 -->|5| cloud
onprem --> gwAzure Route Server를 사용한 NVA HA
섹션 제목: “Azure Route Server를 사용한 NVA HA”Azure Route Server를 사용한 BGP 기반 고가용성입니다. Route Server는 두 NVA 인스턴스와 eBGP 인접성을 설정하고 스포크 유효 경로를 동적으로 프로그래밍합니다. ECMP는 사용자 정의 경로 없이 NVA 간에 부하를 분산합니다. Route Server는 모든 피어링된 VNet에 두 NVA IP의 넥스트홉 항목을 주입합니다.
flowchart TD
subgraph internet[Internet]
cloud@{ icon: 'lucide:globe', label: 'Internet' }
end
subgraph hub[Hub VNet 10.0.0.0/24]
publb@{ icon: 'azure:load-balancers', label: 'Public LB' }
subgraph gwsub[Gateway Subnet 10.0.0.0/27]
gw@{ icon: 'azure:virtual-network-gateways', label: 'VPN/ER GW' }
end
subgraph nvasub[NVA Subnet 10.0.0.32/27]
nva1@{ icon: 'azure:firewalls', label: 'NVA1 10.0.0.37' }
nva2@{ icon: 'azure:firewalls', label: 'NVA2 10.0.0.38' }
end
subgraph rssub[Route Server Subnet 10.0.0.64/27]
rs@{ icon: 'azure:virtual-router', label: 'Route Server' }
end
end
subgraph spoke1[Spoke1 10.1.1.0/24]
app1@{ icon: 'azure:virtual-machine', label: 'App Server' }
end
subgraph spoke2[Spoke2 10.1.2.0/24]
app2@{ icon: 'azure:virtual-machine', label: 'App Server' }
end
cloud -->|1| publb
publb -->|2| nva1
nva1 -->|3| app2
app2 -->|4| nva1
nva1 -->|5| cloud
rs <-.->|eBGP| nva1
rs <-.->|eBGP| nva2
gw --> rsGateway Load Balancer를 사용한 NVA HA
섹션 제목: “Gateway Load Balancer를 사용한 NVA HA”Azure Gateway Load Balancer를 사용한 투명한 NVA 삽입입니다. 애플리케이션을 대상으로 하는 트래픽은 공용 표준 부하 분산 장치에서 별도의 NVA VNet에 있는 Gateway LB로 투명하게 전환됩니다. NVA는 트래픽을 검사하고 Gateway LB로 반환하며, Gateway LB는 이를 다시 애플리케이션으로 전달합니다. NVA와 애플리케이션 VNet 간에 VNet 피어링이나 UDR이 필요하지 않습니다.
flowchart TD
subgraph internet[Internet]
cloud@{ icon: 'lucide:globe', label: 'Internet' }
end
subgraph nvavnet[NVA VNet]
gwlb@{ icon: 'azure:load-balancers', label: 'Gateway LB' }
nva1@{ icon: 'azure:firewalls', label: 'NVA' }
nva2@{ icon: 'azure:firewalls', label: 'NVA' }
end
subgraph appvnet[App VNet]
publb@{ icon: 'azure:load-balancers', label: 'Public Std LB' }
web@{ icon: 'azure:virtual-machine', label: 'Web Server' }
end
cloud -->|1| publb
publb -->|2| gwlb
gwlb -->|3| nva1
nva1 -->|4| gwlb
gwlb -->|5| publb
publb -->|6| web
gwlb --> nva2