허브 앤 스포크 네트워크 토폴로지
방화벽, DNS, VPN을 위한 공유 허브와 VNet 피어링으로 연결된 개별 작업 부하용 스포크 VNet으로 허브 앤 스포크 VNet 토폴로지를 설계합니다.
허브 앤 스포크 네트워크 토폴로지은(는) CoddyKit의 무료 Azure Fundamentals 강의입니다. 이것은 4개 중 3번째 강의입니다. 아래에서 전체 강의를 무료로 읽을 수 있으며, 내장 코드 에디터와 24/7 AI 튜터와 함께 브라우저에서 직접 실습할 수 있습니다. 이 강의는 Azure Fundamentals 학습 경로의 일부이며, 진행 상황이 웹과 CoddyKit 앱에 동기화됩니다. Azure Fundamentals 강의에는 총 4개의 강의가 포함되어 있습니다.
허브 앤 스포크 소개
허브 앤 스포크 네트워크 토폴로지는 엔터프라이즈 환경에 권장되는 Azure 네트워크 아키텍처입니다. 공유 네트워킹 서비스를 호스팅하는 중앙 허브 VNet과 개별 워크로드를 호스팅하는 여러 스포크 VNet으로 구성됩니다. 스포크는 VNet 피어링을 통해 허브에 연결됩니다. 이 토폴로지는 보안 제어를 중앙 집중화하고 네트워크 복잡성을 줄이며, 새로운 워크로드가 추가될 때 효율적으로 확장됩니다.
허브 VNet
허브 VNet은 모든 스포크 VNet이 연결되는 중앙 네트워크입니다. 일반적으로 다음을 포함합니다.
- Azure Firewall — 중앙 집중식 아웃바운드 및 동서 방향 트래픽 검사
- VPN Gateway 또는 ExpressRoute Gateway — 온프레미스 연결
- Azure Bastion — 공용 IP 없이 VMs에 안전하게 RDP/SSH로 액세스
- Azure DNS 프라이빗 영역 — 중앙 집중식 프라이빗 DNS 이름 확인
- 네트워크 모니터링 리소스 — 연결 모니터 및 흐름 로그
# Create the hub VNet:
az network vnet create \
--resource-group hubRG \
--name hubVNet \
--address-prefix 10.0.0.0/16 \
--subnet-name AzureFirewallSubnet \
--subnet-prefix 10.0.1.0/26스포크 VNet과 워크로드
각 스포크 VNet은 하나의 워크로드 또는 밀접하게 관련된 워크로드 집합을 호스팅합니다. 예를 들면 다음과 같습니다. 스포크 1 — 운영 웹 애플리케이션, 스포크 2 — 데이터 분석 플랫폼, 스포크 3 — 개발/테스트 환경. 워크로드를 별도의 스포크로 격리하면 워크로드 사이에 네트워크 경계가 생깁니다. 한 워크로드가 침해되더라도 공격자는 허브 방화벽을 거치지 않고 다른 워크로드의 VNet으로 직접 이동할 수 없습니다.
# Create a spoke VNet:
az network vnet create \
--resource-group spoke1RG \
--name spoke1VNet \
--address-prefix 10.1.0.0/24 \
--subnet-name webSubnet \
--subnet-prefix 10.1.0.0/25허브와 스포크 간 VNet 피어링
허브와 스포크 VNet은 VNet 피어링을 통해 연결되며, 이 연결은 공용 인터넷을 거치지 않고 프라이빗 저지연 연결을 제공합니다. 피어링은 양방향으로 만들어야 합니다. 즉, 허브에서 스포크로 연결하는 피어링과 스포크에서 허브로 연결하는 피어링을 모두 구성해야 합니다. 스포크 간 트래픽은 직접 라우팅되지 않고 허브를 통과하므로, 허브 방화벽이 스포크 간 통신을 검사하고 제어할 수 있습니다.
# Create hub-to-spoke peering:
az network vnet peering create \
--resource-group hubRG \
--name hub-to-spoke1 \
--vnet-name hubVNet \
--remote-vnet spoke1VNet \
--allow-gateway-transit true
# Create spoke-to-hub peering:
az network vnet peering create \
--resource-group spoke1RG \
--name spoke1-to-hub \
--vnet-name spoke1VNet \
--remote-vnet hubVNet \
--use-remote-gateways true허브 방화벽을 통한 라우팅
기본적으로 VNet 피어링은 트래픽이 Azure Firewall을 통과하도록 강제하지 않으며, VNet 간에 직접 라우팅합니다. 스포크 간 트래픽과 스포크에서 인터넷으로 나가는 트래픽을 허브 방화벽을 통해 검사하려면, 각 스포크 서브넷에 사용자 정의 경로(UDR)를 구성하고 기본 게이트웨이(0.0.0.0/0)가 방화벽의 프라이빗 IP 주소를 가리키도록 해야 합니다. 이렇게 하면 스포크에서 나가는 모든 아웃바운드 트래픽이 중앙 집중식 방화벽에 의해 필터링됩니다.
# Create a route table that forces traffic through the hub firewall:
az network route-table create \
--resource-group spoke1RG \
--name spoke1RouteTable
# Add a default route pointing to the Azure Firewall private IP:
az network route-table route create \
--resource-group spoke1RG \
--route-table-name spoke1RouteTable \
--name defaultRoute \
--address-prefix 0.0.0.0/0 \
--next-hop-type VirtualAppliance \
--next-hop-ip-address 10.0.1.4 # Azure Firewall private IP허브의 Azure Firewall
허브 VNet의 Azure Firewall은 모든 스포크에 중앙 집중식 네트워크 보안을 제공합니다. 다음 기능을 지원합니다.
- 네트워크 규칙 — IP, 포트 및 프로토콜에 따라 허용 또는 거부
- 애플리케이션 규칙 — FQDN 및 HTTP 범주에 따라 허용 또는 거부
- DNAT 규칙 — 인바운드 공용 IP를 프라이빗 백엔드 IP로 변환
- 위협 인텔리전스 — 알려진 악성 IP 및 도메인으로 향하거나 해당 출처에서 오는 트래픽 차단
하나의 Azure Firewall이 모든 스포크 VNet을 담당할 수 있으므로, 스포크마다 개별 방화벽을 배포하는 비용과 관리 부담을 줄일 수 있습니다.
허브 앤 스포크 토폴로지의 DNS
허브 앤 스포크 아키텍처에서는 중앙 집중식 DNS가 매우 중요합니다. 허브 VNet에 연결된 Azure DNS 프라이빗 영역을 배포하고, 스포크 VNet이 허브의 DNS 서버를 사용하도록 구성해야 합니다(또는 자동 등록 기능이 있는 Azure 제공 DNS를 사용해야 합니다). 이렇게 하면 일관된 DNS 구성으로 모든 스포크의 VMs가 서로의 이름과 프라이빗 엔드포인트를 통해 액세스하는 Azure PaaS 서비스의 이름을 확인할 수 있습니다.
# Create a private DNS zone and link to hub VNet:
az network private-dns zone create \
--resource-group hubRG \
--name privatelink.blob.core.windows.net
az network private-dns link vnet create \
--resource-group hubRG \
--zone-name privatelink.blob.core.windows.net \
--name hub-dns-link \
--virtual-network hubVNet \
--registration-enabled false허브를 통한 온프레미스 연결
허브 앤 스포크의 주요 장점은 온프레미스 연결이 허브에 중앙 집중화된다는 것입니다. 허브 VNet의 단일 VPN Gateway 또는 ExpressRoute Gateway를 통해 모든 스포크 워크로드가 온프레미스 시스템에 연결할 수 있습니다. 스포크 워크로드에 자체 게이트웨이는 필요하지 않습니다. 피어링을 통해 허브 게이트웨이를 거쳐 온프레미스 리소스에 액세스하므로 비용과 복잡성을 크게 줄일 수 있습니다.
토폴로지 확장
허브 앤 스포크는 자연스럽게 확장됩니다. 새 워크로드를 추가하려면 새 스포크 VNet을 만들고, 이를 허브와 피어링한 다음, 허브 방화벽을 통과하도록 라우팅하는 UDR을 적용하면 됩니다. 허브 서비스(방화벽, 게이트웨이, DNS, Bastion)는 모든 스포크에서 공유됩니다. Azure Virtual WAN은 Microsoft의 관리형 허브 앤 스포크 서비스로, 스포크 VNet이 많은 대규모 배포에서 피어링, 라우팅 및 게이트웨이 관리를 자동화합니다.
허브 앤 스포크와 플랫 네트워크 비교
플랫 네트워크(모든 항목을 서브넷에 포함하는 하나의 대규모 VNet)는 시작하기는 더 간단하지만, 규모가 커지면 관리와 보안 유지가 어려워집니다. 플랫 네트워크에서는 NSG만으로 워크로드를 분리하므로 모든 워크로드가 동일한 주소 공간을 공유합니다. 허브 앤 스포크는 더 강력한 격리(VNet 경계는 NSG 규칙보다 넘기 어렵습니다), 중앙 집중식 보안 제어, 그리고 각 스포크를 독립적으로 관리할 수 있는 더 명확한 거버넌스를 제공합니다.
허브 앤 스포크의 비용
워크로드 리소스 외에 허브 앤 스포크에서 발생하는 주요 비용은 다음과 같습니다.
- Azure Firewall — 배포 시간별 요금과 데이터 처리 요금이 부과됩니다.
- VPN/ExpressRoute Gateway — 게이트웨이 시간별 요금과 대역폭 요금이 부과됩니다.
- VNet 피어링 — 피어링 연결을 통해 전송된 데이터 GB당 요금이 부과됩니다.
이러한 비용이 발생하더라도 허브에 서비스를 중앙 집중화하는 편이 각 스포크에 방화벽, 게이트웨이 및 DNS 서버를 개별적으로 배포하는 것보다 일반적으로 저렴합니다.
빠른 확인
이 강의에서 다룬 Microsoft Azure 기초(AZ-900) 개념에 대한 이해도를 확인해 보세요.
강의 요약
이 강의에서는 다음을 배웠습니다. 허브 앤 스포크 토폴로지는 공유 네트워킹 서비스(방화벽, 게이트웨이, DNS)를 허브 VNet에 중앙 집중화하고, 워크로드는 별도의 스포크 VNet에 배치합니다. VNet 피어링은 스포크를 허브에 연결하며, UDR을 사용하면 트래픽이 허브 방화벽을 통과하도록 라우팅할 수 있습니다. 또한 모든 스포크에서 플랫폼 서비스를 공유하므로 효율적으로 확장됩니다. 다음으로 RBAC 및 Privileged Identity Management를 사용한 엔터프라이즈 ID 및 액세스 설계를 살펴보겠습니다.
자주 묻는 질문
“허브 앤 스포크 네트워크 토폴로지” 강의는 무료인가요?
네 — “허브 앤 스포크 네트워크 토폴로지” 전체 내용을 이 웹사이트에서 무료로 읽을 수 있습니다. 인터랙티브하게 실습하려면(내장 코드 에디터와 24/7 AI 튜터), CoddyKit PRO로 업그레이드하면 Azure Fundamentals 강의 전체를 잠금 해제할 수 있습니다. Azure Fundamentals 강의에는 총 4개의 강의가 포함되어 있습니다.
“허브 앤 스포크 네트워크 토폴로지”에서 뭘 배우나요?
방화벽, DNS, VPN을 위한 공유 허브와 VNet 피어링으로 연결된 개별 작업 부하용 스포크 VNet으로 허브 앤 스포크 VNet 토폴로지를 설계합니다. 브라우저에서 직접 실행하는 실습 코드로 Azure Fundamentals을(를) 배우며, 24/7 AI 튜터가 강의를 진행하면서 질문에 답변해줍니다.
Azure Fundamentals을(를) 시작하는 데 경험이 필요한가요?
사전 경험은 필요하지 않습니다. CoddyKit의 Azure Fundamentals은(는) 초급자부터 고급 학습자까지를 위해 구성되어 있으므로, 여기서 시작하거나 처음부터 시작할 수 있으며 자신의 속도대로 진행할 수 있습니다. 이것은 4개 중 3번째 강의입니다.
“허브 앤 스포크 네트워크 토폴로지” 강의는 얼마나 걸리나요?
대부분의 CoddyKit 강의는 약 5~10분이 소요됩니다. 각 강의는 간결하고 인터랙티브하여 꾸준한 진행이 가능하며, 웹과 앱에서 중단한 부분부터 바로 시작할 수 있습니다.
이 Azure Fundamentals 강의에서 코드를 작성하고 실행할 수 있나요?
네. 모든 Azure Fundamentals 강의에는 내장 코드 에디터가 포함되어 있으므로, 브라우저에서 바로 실제 코드를 작성하고 실행한 후 즉시 AI 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.
이 강의의 모든 강의
- Cloud Adoption Framework 개요
- Azure 랜딩 존
- 허브 앤 스포크 네트워크 토폴로지
- 엔터프라이즈 ID 및 액세스 설계