βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β Azure Subscription β
β β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β Resource Group (avd-prod-rg-xxxxx) β β
β β β β
β β ββββββββββββββββββββββββββββββββββββββββββββββββββββ β β
β β β NETWORKING MODULE β β β
β β β β’ Virtual Network (10.0.0.0/16) β β β
β β β β’ Subnet (10.0.1.0/24) β β β
β β β β’ Network Security Group β β β
β β ββββββββββββββββββββββββββββββββββββββββββββββββββββ β β
β β β β
β β ββββββββββββββββββββββββββββββββββββββββββββββββββββ β β
β β β MONITORING MODULE β β β
β β β β’ Log Analytics Workspace β β β
β β β β’ Application Insights (optional) β β β
β β β β’ Action Groups for alerts β β β
β β ββββββββββββββββββββββββββββββββββββββββββββββββββββ β β
β β β β
β β ββββββββββββββββββββββββββββββββββββββββββββββββββββ β β
β β β SECURITY MODULE β β β
β β β β’ Key Vault β β β
β β β β’ Admin password (auto-generated) β β β
β β β β’ Secrets management β β β
β β ββββββββββββββββββββββββββββββββββββββββββββββββββββ β β
β β β β
β β ββββββββββββββββββββββββββββββββββββββββββββββββββββ β β
β β β STORAGE MODULE β β β
β β β β’ Storage Account (Premium Files) β β β
β β β β’ FSLogix File Share β β β
β β β β’ Private Endpoint (optional) β β β
β β β β’ Private DNS Zone β β β
β β ββββββββββββββββββββββββββββββββββββββββββββββββββββ β β
β β β β
β β ββββββββββββββββββββββββββββββββββββββββββββββββββββ β β
β β β AVD MODULE β β β
β β β β’ Host Pool β β β
β β β β’ Workspace β β β
β β β β’ Desktop Application Group β β β
β β β β’ RemoteApp Application Group (optional) β β β
β β β β’ Scaling Plan (optional) β β β
β β ββββββββββββββββββββββββββββββββββββββββββββββββββββ β β
β β β β
β β ββββββββββββββββββββββββββββββββββββββββββββββββββββ β β
β β β COMPUTE MODULE β β β
β β β β’ Session Host VMs (5x) β β β
β β β β’ Network Interfaces β β β
β β β β’ Availability Zones (1, 2, 3) β β β
β β β β’ Monitoring Agents β β β
β β β β’ Auto-Shutdown Schedules β β β
β β β β’ Azure AD Join / Domain Join β β β
β β ββββββββββββββββββββββββββββββββββββββββββββββββββββ β β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β Azure Subscription β
β β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β Resource Group (avd-prod-rg-xxxxx) β β
β β β β
β β ββββββββββββββββββββββββββββββββββββββββββββββββββββ β β
β β β NETWORKING MODULE β β β
β β β β’ Virtual Network (10.0.0.0/16) β β β
β β β β’ Subnet (10.0.1.0/24) β β β
β β β β’ Network Security Group β β β
β β ββββββββββββββββββββββββββββββββββββββββββββββββββββ β β
β β β β
β β ββββββββββββββββββββββββββββββββββββββββββββββββββββ β β
β β β MONITORING MODULE β β β
β β β β’ Log Analytics Workspace β β β
β β β β’ Application Insights (optional) β β β
β β β β’ Action Groups for alerts β β β
β β ββββββββββββββββββββββββββββββββββββββββββββββββββββ β β
β β β β
β β ββββββββββββββββββββββββββββββββββββββββββββββββββββ β β
β β β SECURITY MODULE β β β
β β β β’ Key Vault β β β
β β β β’ Admin password (auto-generated) β β β
β β β β’ Secrets management β β β
β β ββββββββββββββββββββββββββββββββββββββββββββββββββββ β β
β β β β
β β ββββββββββββββββββββββββββββββββββββββββββββββββββββ β β
β β β STORAGE MODULE β β β
β β β β’ Storage Account (Premium Files) β β β
β β β β’ FSLogix File Share β β β
β β β β’ Private Endpoint (optional) β β β
β β β β’ Private DNS Zone β β β
β β ββββββββββββββββββββββββββββββββββββββββββββββββββββ β β
β β β β
β β ββββββββββββββββββββββββββββββββββββββββββββββββββββ β β
β β β AVD MODULE β β β
β β β β’ Host Pool β β β
β β β β’ Workspace β β β
β β β β’ Desktop Application Group β β β
β β β β’ RemoteApp Application Group (optional) β β β
β β β β’ Scaling Plan (optional) β β β
β β ββββββββββββββββββββββββββββββββββββββββββββββββββββ β β
β β β β
β β ββββββββββββββββββββββββββββββββββββββββββββββββββββ β β
β β β COMPUTE MODULE β β β
β β β β’ Session Host VMs (5x) β β β
β β β β’ Network Interfaces β β β
β β β β’ Availability Zones (1, 2, 3) β β β
β β β β’ Monitoring Agents β β β
β β β β’ Auto-Shutdown Schedules β β β
β β β β’ Azure AD Join / Domain Join β β β
β β ββββββββββββββββββββββββββββββββββββββββββββββββββββ β β
β β β β
β β ββββββββββββββββββββββββββββββββββββββββββββββββββββ β β
β β β β BACKUP MODULE (NEW) β β β
β β β β’ Recovery Services Vault β β β
β β β β’ Backup Policy β β β
β β β - Daily: 30 days retention β β β
β β β - Weekly: 12 weeks retention β β β
β β β - Monthly: 12 months retention β β β
β β β - Yearly: 5 years retention β β β
β β β β’ VM Backup Items (5x session hosts) β β β
β β β β’ Soft Delete: 14 days β β β
β β ββββββββββββββββββββββββββββββββββββββββββββββββββββ β β
β β β β
β β ββββββββββββββββββββββββββββββββββββββββββββββββββββ β β
β β β β IMAGE GALLERY MODULE (NEW) β β β
β β β β’ Shared Image Gallery β β β
β β β β’ Win11 Multi-Session Definition β β β
β β β - Publisher: MicrosoftWindowsDesktop β β β
β β β - Offer: Windows-11 β β β
β β β - SKU: win11-22h2-avd β β β
β β β β’ Win10 Multi-Session Definition (opt) β β β
β β β β’ RBAC for CI/CD Pipeline β β β
β β β β’ Image Versions (populated later) β β β
β β ββββββββββββββββββββββββββββββββββββββββββββββββββββ β β
β β β β
β β ββββββββββββββββββββββββββββββββββββββββββββββββββββ β β
β β β β POLICY MODULE (NEW) β β β
β β β Policy Assignments (6): β β β
β β β 1. β
Require Managed Disks β β β
β β β 2. β
Allowed VM Sizes β β β
β β β 3. β
Require Environment Tag β β β
β β β 4. β
Deploy Antimalware Extension β β β
β β β 5. β
Audit VM Encryption β β β
β β β 6. β
VM Diagnostic Settings β β β
β β ββββββββββββββββββββββββββββββββββββββββββββββββββββ β β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
main.tf
β
βββ> module.networking (base)
β
βββ> module.monitoring (base)
β
βββ> module.security (base)
β
βββ> module.storage (depends on: networking)
β
βββ> module.avd (independent)
β
βββ> module.compute (depends on: networking, avd, security, monitoring)
β
βββ> β module.backup (NEW - depends on: compute)
β β’ Waits for VMs to be created
β β’ Applies backup protection to all session hosts
β
βββ> β module.image_gallery (NEW - independent)
β β’ Can be created in parallel
β β’ No dependencies on other modules
β
βββ> β module.policy (NEW - depends on: monitoring)
β’ Needs Log Analytics workspace ID for diagnostics policy
Resource Prefix: avd-prod
Random Suffix: abcd1234
Resources Created:
βββ Resource Group: avd-prod-rg-abcd1234
βββ Virtual Network: avd-prod-vnet-abcd1234
βββ Subnet: avd-prod-subnet-abcd1234
βββ NSG: avd-prod-nsg-abcd1234
βββ Storage Account: avdprodsaabcd1234
βββ Key Vault: avd-prod-kv-abcd1234
βββ Log Analytics: avd-prod-law-abcd1234
βββ Host Pool: avd-prod-hp-abcd1234
βββ Workspace: avd-prod-ws-abcd1234
βββ Desktop App Group: avd-prod-dag-abcd1234
βββ Session Hosts: avd-prod-vm-0, avd-prod-vm-1, ...
β
βββ β NEW RESOURCES:
βββ Recovery Vault: avd-prod-rsv-abcd1234
βββ Shared Image Gallery: avd_prod_sig_abcd1234
βββ Policy Assignments: (system-generated IDs)
| Feature | Default | Production | Dev/Test | Cost/Month |
|---|---|---|---|---|
| Core Modules | Β | Β | Β | Β |
| Networking | β Always | β Required | β Required | Included |
| Monitoring | β Always | β Required | β Required | ~$5 |
| Security | β Always | β Required | β Required | ~$5 |
| Storage | β Always | β Required | β Required | ~$100 |
| AVD | β Always | β Required | β Required | Free |
| Compute | β Always | β Required | β Required | ~$350/VM |
| Β | Β | Β | Β | Β |
| NEW: Optional Modules | Β | Β | Β | Β |
| Backup | β Off | β Recommended | β οΈ Optional | ~$20/VM |
| Image Gallery | β Off | β Recommended | β οΈ Optional | ~$5 |
| Policy | β Off | β Recommended | β Recommended | Free |
| Β | Β | Β | Β | Β |
| Auto-Shutdown | β On | β Disable | β Enable | Saves $$ |
| Scaling Plan | β Off | β Enable | β οΈ Optional | Free |
| Private Endpoints | β Off | β Enable | β οΈ Optional | ~$10 |
1. terraform init (30 sec)
2. terraform plan (45 sec)
3. terraform apply (15-20 min)
ββ Networking (2 min)
ββ Monitoring (2 min)
ββ Security (1 min)
ββ Storage (3 min)
ββ AVD (2 min)
ββ Compute (10-15 min)
1. terraform init (30 sec)
2. terraform plan (60 sec)
3. terraform apply (20-25 min)
ββ Networking (2 min)
ββ Monitoring (2 min)
ββ Security (1 min)
ββ Storage (3 min)
ββ AVD (2 min)
ββ Compute (10-15 min)
ββ β Backup (2 min)
ββ β Image Gallery (1 min)
ββ β Policy (3 min)
enable_backup = false
enable_image_gallery = false
enable_policies = false
enable_auto_shutdown = true
Use case: Quick testing, demos, POC
Cost: Lowest
enable_backup = true
enable_image_gallery = false # Add later
enable_policies = true
enable_auto_shutdown = false
Use case: Production without custom images
Cost: Medium
enable_backup = true
enable_image_gallery = true
enable_policies = true
enable_auto_shutdown = false
Use case: Full production with golden images
Cost: Full featured
See detailed documentation:
Ready to deploy? Start with INTEGRATION-GUIDE.md!