Последняя проверка: май 2026 г.
Разверните сервисы AWS для экзамена AZ-305 с помощью чистого Terraform: пошаговое руководство с привязкой каждого блока к разделам экзамена. Код также совместим с OpenTofu.
К концу этой лабораторной работы вы настроите, используя обычный Terraform, ядро эталонной архитектуры AZ-305 — топологию сети VNet типа «звезда» (один концентратор, одна периферийная сеть, пиринговые соединения), Azure Front Door для глобального доступа по HTTPS, Key Vault для управления секретами и сертификатами с авторизацией RBAC, а также диагностическую инфраструктуру, которая предполагается в каждом проекте Architect-Expert. Каждый блок привязан к домену проектирования AZ-305.
Вставьте фрагменты кода в один файл main.tf, выполните terraform init, затем terraform apply шаг за шагом.
>= 1.5 или OpenTofu >= 1.6.az login).Вся инфраструктура ~$36/месяц в режиме простоя. Front Door — это ловушка для бюджета — удалите немедленно, если вы не проводите активное тестирование.
Стандартное начало работы с Azure. AZ-305 предполагает, что для любого вопроса о «двух регионах» вы выберете пару eastus / westus — это каноническая пара регионов для AZ-305 для тестов задержки и сценариев аварийного переключения между парными регионами.
terraform {
required_version = ">= 1.5"
required_providers {
azurerm = { source = "hashicorp/azurerm", version = "~> 4.0" }
random = { source = "hashicorp/random", version = "~> 3.6" }
}
}
provider "azurerm" {
features {
key_vault {
purge_soft_delete_on_destroy = true
}
}
}
resource "random_id" "suffix" {
byte_length = 3
}
data "azurerm_client_config" "current" {}
locals {
tags = {
Project = "certlabpro-az-305"
ManagedBy = "terraform"
}
}
resource "azurerm_resource_group" "main" {
name = "certlabpro-az-305-rg"
location = "eastus"
tags = local.tags
}Топология «звезда» — это эталонный сетевой дизайн AZ-305: центральная VNet-концентратор размещает общие службы (брандмауэр, VPN-шлюз, DNS), а VNet-периферийные сети размещают рабочие нагрузки. Периферийные сети устанавливают двунаправленный пиринг с концентратором; трафик между периферийными сетями проходит через концентратор. Экзамен постоянно проверяет знание этой топологии, поскольку она является основой любой целевой зоны Azure с несколькими рабочими нагрузками.
Мы создаем простейшую топологию «звезда»: одну VNet-концентратор (10.0.0.0/16), одну периферийную VNet (10.1.0.0/16), двунаправленный пиринг. Реальные проекты «звезда» добавляют Azure Firewall в концентратор и таблицы маршрутизации next_hop_in_ip_address, принудительно направляющие трафик периферийных сетей через него — это рассматривается концептуально, но пропущено здесь из-за стоимости (Azure Firewall стоит ~$1/час в режиме простоя).
resource "azurerm_virtual_network" "hub" {
name = "certlabpro-az-305-hub"
resource_group_name = azurerm_resource_group.main.name
location = azurerm_resource_group.main.location
address_space = ["10.0.0.0/16"]
tags = local.tags
}
resource "azurerm_subnet" "hub_shared" {
name = "shared"
resource_group_name = azurerm_resource_group.main.name
virtual_network_name = azurerm_virtual_network.hub.name
address_prefixes = ["10.0.1.0/24"]
}
resource "azurerm_virtual_network" "spoke" {
name = "certlabpro-az-305-spoke"
resource_group_name = azurerm_resource_group.main.name
location = azurerm_resource_group.main.location
address_space = ["10.1.0.0/16"]
tags = local.tags
}
resource "azurerm_subnet" "spoke_app" {
name = "app"
resource_group_name = azurerm_resource_group.main.name
virtual_network_name = azurerm_virtual_network.spoke.name
address_prefixes = ["10.1.1.0/24"]
}
resource "azurerm_virtual_network_peering" "hub_to_spoke" {
name = "hub-to-spoke"
resource_group_name = azurerm_resource_group.main.name
virtual_network_name = azurerm_virtual_network.hub.name
remote_virtual_network_id = azurerm_virtual_network.spoke.id
allow_forwarded_traffic = true
}
resource "azurerm_virtual_network_peering" "spoke_to_hub" {
name = "spoke-to-hub"
resource_group_name = azurerm_resource_group.main.name
virtual_network_name = azurerm_virtual_network.spoke.name
remote_virtual_network_id = azurerm_virtual_network.hub.id
allow_forwarded_traffic = true
}Key Vault — это примитив AZ-305 для работы с секретами и сертификатами. Экзамен проверяет два важных архитектурных решения: RBAC против политик доступа (RBAC является современным стандартом; политики доступа — устаревший подход), а также обратимое удаление + защита от очистки (обратимое удаление включено по умолчанию; защита от очистки делает период обратимого удаления необратимым — требуется для некоторых режимов соответствия).
Мы включаем авторизацию RBAC и назначаем текущему принципалу Terraform роль Администратора Key Vault, чтобы последующие ресурсы секретов/сертификатов работали. Вопросы AZ-305 типа «приложение не может прочитать пароль своей базы данных» в 90% случаев заканчиваются ответом «потому что управляемое удостоверение не имело роли Пользователя секретов Key Vault в хранилище».
resource "azurerm_key_vault" "main" {
name = "kv-az305-${random_id.suffix.hex}"
resource_group_name = azurerm_resource_group.main.name
location = azurerm_resource_group.main.location
tenant_id = data.azurerm_client_config.current.tenant_id
sku_name = "standard"
enable_rbac_authorization = true
soft_delete_retention_days = 7 # 7 minimum; 90 for purge protection in production
purge_protection_enabled = false # set true for production / compliance
public_network_access_enabled = true
tags = local.tags
}
resource "azurerm_role_assignment" "kv_admin_self" {
scope = azurerm_key_vault.main.id
role_definition_name = "Key Vault Administrator"
principal_id = data.azurerm_client_config.current.object_id
}Front Door — это решение AZ-305 для глобальной балансировки нагрузки + WAF + CDN. Экзамен проверяет его в сравнении с тремя альтернативами: Application Gateway (региональный уровень-7), Traffic Manager (на основе DNS, без транзита трафика) и Load Balancer (региональный уровень-4). Front Door — это правильный ответ для любого сценария «глобально распределенные пользователи + HTTPS + WAF + кэширование».
Мы развертываем профиль Front Door + конечную точку + заглушку группы источников. В рабочей среде вы бы подключили веб-приложение или вход AKS в качестве источника; для лабораторной работы проверяется форма топологии, которая является предметом вопросов AZ-305. Уровень Standard поддерживает функции безопасности и маршрутизации, ожидаемые на экзамене (WAF, пользовательские правила, аффинность сеансов); Premium добавляет источники приватных каналов для полностью приватного доступа к бэкенду.
resource "azurerm_cdn_frontdoor_profile" "main" {
name = "certlabpro-az-305-fd"
resource_group_name = azurerm_resource_group.main.name
sku_name = "Standard_AzureFrontDoor"
tags = local.tags
}
resource "azurerm_cdn_frontdoor_endpoint" "main" {
name = "certlabpro-az-305-${random_id.suffix.hex}"
cdn_frontdoor_profile_id = azurerm_cdn_frontdoor_profile.main.id
tags = local.tags
}
resource "azurerm_cdn_frontdoor_origin_group" "main" {
name = "app-origins"
cdn_frontdoor_profile_id = azurerm_cdn_frontdoor_profile.main.id
session_affinity_enabled = false
load_balancing {
sample_size = 4
successful_samples_required = 3
}
health_probe {
path = "/"
request_type = "HEAD"
protocol = "Https"
interval_in_seconds = 30
}
}Домен AZ-305 Проектирование хранилища данных и интеграции, а также Проектирование непрерывности бизнеса оба зависят от наличия наблюдаемости вокруг архитектурных элементов. Мы создаем рабочую область Log Analytics и подключаем к ней журналы доступа Front Door + журналы аудита Key Vault.
После настройки диагностической инфраструктуры эталонная архитектура AZ-305 приобретает форму: глобальный входящий трафик (Front Door) → сеть «звезда» → периферийная сеть рабочей нагрузки → уровень секретов (Key Vault) → система наблюдаемости (Log Analytics). Каждое дополнительное архитектурное дополнение (Application Gateway за Front Door, Cosmos DB в периферийной сети, Logic Apps в концентраторе) подключается к этой базе.
resource "azurerm_log_analytics_workspace" "main" {
name = "certlabpro-az-305-logs"
resource_group_name = azurerm_resource_group.main.name
location = azurerm_resource_group.main.location
sku = "PerGB2018"
retention_in_days = 30
tags = local.tags
}
resource "azurerm_monitor_diagnostic_setting" "key_vault" {
name = "diag"
target_resource_id = azurerm_key_vault.main.id
log_analytics_workspace_id = azurerm_log_analytics_workspace.main.id
enabled_log {
category = "AuditEvent"
}
metric {
category = "AllMetrics"
enabled = true
}
}
resource "azurerm_monitor_diagnostic_setting" "front_door" {
name = "diag"
target_resource_id = azurerm_cdn_frontdoor_profile.main.id
log_analytics_workspace_id = azurerm_log_analytics_workspace.main.id
enabled_log {
category = "FrontDoorAccessLog"
}
enabled_log {
category = "FrontDoorHealthProbeLog"
}
}terraform destroy удаляет все. Профиль Front Door — это позиция, которая оплачивается 24/7 (~$35/месяц). Удалите его незамедлительно, если вы не изучаете его активно. Key Vault имеет здесь 7-дневное обратимое удаление (настраивается до 90 дней); мы установили purge_soft_delete_on_destroy = true в провайдере, чтобы удаление фактически очищало хранилище, а не оставляло зарезервированное пространство имен.
AZ-305 охватывает огромный архитектурный ландшафт — Application Gateway, Azure Firewall, VPN Gateway + ExpressRoute, Private Link / Private Endpoints, Azure Active Directory B2B / B2C, Условный доступ, Управление привилегированными удостоверениями, AKS в архитектурном масштабе, Service Fabric, Azure API Management, многорегиональные парные развертывания, геореплицированный Cosmos / SQL / Storage, проекты BCDR (Site Recovery), управление затратами в масштабе, проекты целевых зон и инициативы Azure Policy.
Мы придерживаемся четырех фундаментальных примитивов, поскольку они являются основой, на которой строится каждый многокомпонентный дизайн AZ-305. App Gateway размещается в концентраторе из Шага 2. AKS развертывается в периферийной VNet. Cosmos DB предоставляет приватные конечные точки в периферийную сеть. Defender for Cloud считывает рабочую область Log Analytics. Архитектура — это композиция; эта лабораторная работа дает вам базовые формы.
Для ознакомления с поверхностями, которые не были настроены, разделы Просмотр, Справочник и Editorial этой страницы сертификата содержат концептуальные материалы.