Сетевые сервисы -- фундамент любой облачной архитектуры. Они обеспечивают связность между ресурсами, защиту трафика и доставку контента пользователям.
Azure Virtual Network (VNet)
VNet -- это изолированная частная сеть в Azure. Все ресурсы внутри VNet могут общаться друг с другом, но изолированы от ресурсов в других VNet и от интернета (по умолчанию).
Ключевые компоненты:
- Адресное пространство -- определяется в формате CIDR (например, 10.0.0.0/16)
- Подсети (Subnets) -- сегменты сети для организации ресурсов (например, 10.0.1.0/24 для веб-серверов, 10.0.2.0/24 для баз данных)
# Создание VNet с двумя подсетями
az network vnet create \
--resource-group rg-demo \
--name vnet-main \
--address-prefix 10.0.0.0/16 \
--subnet-name subnet-web \
--subnet-prefix 10.0.1.0/24
az network vnet subnet create \
--resource-group rg-demo \
--vnet-name vnet-main \
--name subnet-db \
--address-prefix 10.0.2.0/24
VNet Peering -- соединение двух VNet, позволяющее ресурсам в разных VNet общаться друг с другом. Peering может быть настроен между VNet в одном регионе или в разных регионах (Global VNet Peering).
Network Security Groups (NSG)
NSG -- это виртуальный файрвол, фильтрующий входящий и исходящий трафик. NSG содержит набор правил безопасности, каждое из которых определяет: разрешить или запретить трафик.
Параметры правила NSG:
- Приоритет -- числовое значение (100-4096). Чем ниже число, тем выше приоритет
- Источник/Назначение -- IP-адрес, диапазон, тег сервиса или ASG
- Порт -- номер порта или диапазон
- Протокол -- TCP, UDP, ICMP или Any
- Действие -- Allow или Deny
NSG можно привязать к подсети или к сетевому интерфейсу виртуальной машины. Если NSG привязан к подсети, правила применяются ко всем ресурсам в этой подсети.
# Создание NSG с правилом, разрешающим HTTP-трафик
az network nsg create --resource-group rg-demo --name nsg-web
az network nsg rule create \
--resource-group rg-demo \
--nsg-name nsg-web \
--name AllowHTTP \
--priority 100 \
--direction Inbound \
--access Allow \
--protocol Tcp \
--destination-port-ranges 80 443
Azure Load Balancer
Load Balancer распределяет входящий трафик между несколькими виртуальными машинами, обеспечивая высокую доступность и производительность.
Типы:
- Public Load Balancer -- распределяет трафик из интернета между VM
- Internal Load Balancer -- распределяет трафик внутри виртуальной сети
Load Balancer работает на уровне 4 (транспортный уровень -- TCP/UDP). Он не анализирует содержимое запросов, а распределяет трафик на основе IP-адресов и портов.
Алгоритмы распределения:
- Hash-based (по умолчанию) -- распределение на основе хеша 5-tuple (IP источника, порт источника, IP назначения, порт назначения, протокол)
- Source IP affinity -- запросы от одного IP направляются на один бэкенд
Azure Application Gateway
Application Gateway -- это балансировщик нагрузки уровня 7 (HTTP/HTTPS). В отличие от Load Balancer, он анализирует содержимое HTTP-запросов и может маршрутизировать трафик на основе URL, заголовков и других параметров.
Ключевые возможности:
- SSL-терминация -- расшифровка HTTPS на шлюзе, передача HTTP на бэкенд
- URL-based маршрутизация -- /api/* на один бэкенд, /images/* на другой
- Cookie-based session affinity -- привязка пользователя к конкретному бэкенду
- Web Application Firewall (WAF) -- защита от OWASP Top 10 уязвимостей (SQL injection, XSS и др.)
Azure CDN
Azure Content Delivery Network (CDN) -- глобальная сеть доставки контента. CDN кеширует статический контент (изображения, CSS, JS, видео) на серверах, расположенных ближе к пользователям.
Как это работает:
- Пользователь запрашивает файл
- Запрос направляется на ближайшую точку присутствия (POP)
- Если файл есть в кеше POP -- он возвращается мгновенно
- Если нет -- POP запрашивает файл у origin-сервера, кеширует и возвращает
Интеграция с: Blob Storage, App Service, VM, любой публичный URL
Azure DNS
Azure DNS -- это служба хостинга DNS-зон, предоставляющая разрешение имен с помощью инфраструктуры Microsoft Azure.
Возможности:
- Хостинг публичных DNS-зон
- Частные DNS-зоны для разрешения имен внутри VNet
- Поддержка записей типа A, AAAA, CNAME, MX, TXT и других
- Интеграция с другими сервисами Azure
Azure VPN Gateway
VPN Gateway создает зашифрованное соединение между вашей локальной сетью и Azure VNet через интернет.
Типы подключения:
- Site-to-Site (S2S) -- связь между офисом и Azure VNet через IPsec/IKE туннель
- Point-to-Site (P2S) -- подключение отдельного компьютера к Azure VNet
- VNet-to-VNet -- связь между двумя VNet через зашифрованный туннель
Azure ExpressRoute -- альтернатива VPN, предоставляющая выделенное (не через интернет) частное соединение между локальной сетью и Azure. Обеспечивает более высокую пропускную способность и стабильность.