diff --git a/docs/CustomizingAzdParameters.md b/docs/CustomizingAzdParameters.md index 8756c99f..50c28d1e 100644 --- a/docs/CustomizingAzdParameters.md +++ b/docs/CustomizingAzdParameters.md @@ -21,6 +21,7 @@ By default this template will use the environment name as the prefix to prevent | `AZURE_ENV_LOG_ANALYTICS_WORKSPACE_ID` | string | Guide to get your [Existing Workspace ID](/docs/re-use-log-analytics.md) | Set this if you want to reuse an existing Log Analytics Workspace instead of creating a new one. | | `AZURE_ENV_VM_ADMIN_USERNAME` | string | `take(newGuid(), 20)` | The administrator username for the virtual machine. | | `AZURE_ENV_VM_ADMIN_PASSWORD` | string | `newGuid()` | The administrator password for the virtual machine. | +| `AZURE_ENV_VM_SIZE` | string | `Standard_D2s_v5` | The size of the Jumpbox Virtual Machine. Only applicable when `enablePrivateNetworking` is true. | | `AZURE_ENV_ENABLE_TELEMETRY` | bool | `true` | Enables telemetry for monitoring and diagnostics. | --- diff --git a/docs/TroubleShootingSteps.md b/docs/TroubleShootingSteps.md index 0b177d7e..ef776447 100644 --- a/docs/TroubleShootingSteps.md +++ b/docs/TroubleShootingSteps.md @@ -61,7 +61,7 @@ Use these as quick reference guides to unblock your deployments. | **ServiceQuotaExceeded** | Free tier service quota limit reached for Azure AI Search | This error occurs when you attempt to deploy an Azure AI Search service but have already reached the **free tier quota limit** for your subscription. Each Azure subscription is limited to **one free tier Search service**.

**Example error message:**
`ServiceQuotaExceeded: Operation would exceed 'free' tier service quota. You are using 1 out of 1 'free' tier service quota.`

**Common causes:**

**Resolution:**

**Reference:**
| | **InsufficientQuota** | Not enough quota available in subscription | | | **MaxNumberOfRegionalEnvironmentsInSubExceeded** | Maximum Container App Environments limit reached for region |This error occurs when you attempt to create more **Azure Container App Environments** than the regional quota limit allows for your subscription. Each Azure region has a specific limit on the number of Container App Environments that can be created per subscription.

**Common Causes:**

**Resolution:**

**Reference:**
| -| **SkuNotAvailable** | Requested SKU not available in selected location or zone | You receive this error in the following scenarios:
| +| **SkuNotAvailable** | Requested SKU not available in selected location or zone | This error occurs when the resource SKU you've selected (such as VM size) isn't available for the target location or availability zone.

**In this deployment**, the jumpbox VM defaults to `Standard_D2s_v5`. While this size is available in most regions, certain regions or zones may not support it.

**Resolution:**

**Reference:**
| | **Conflict - No available instances to satisfy this request** | Azure App Service has insufficient capacity in the region | This error occurs when Azure App Service doesn't have enough available compute instances in the selected region to provision or scale your app.

**Common Causes:**

**Resolution:**

**Reference:** [Azure App Service Plans](https://learn.microsoft.com/en-us/azure/app-service/overview-hosting-plans) | -------------------------------- diff --git a/infra/main.bicep b/infra/main.bicep index 0850dfa1..e7d8d8f4 100644 --- a/infra/main.bicep +++ b/infra/main.bicep @@ -71,7 +71,7 @@ param vmAdminUsername string? param vmAdminPassword string? @description('Optional. Size of the Jumpbox Virtual Machine when created. Set to custom value if enablePrivateNetworking is true.') -param vmSize string = 'Standard_DS2_v2' +param vmSize string = 'Standard_D2s_v5' @description('Optional. The tags to apply to all deployed Azure resources.') param tags resourceInput<'Microsoft.Resources/resourceGroups@2025-04-01'>.tags = {} @@ -351,7 +351,7 @@ module jumpboxVM 'br/public:avm/res/compute/virtual-machine:0.15.0' = if (enable name: take('avm.res.compute.virtual-machine.${jumpboxVmName}', 64) params: { name: take(jumpboxVmName, 15) // Shorten VM name to 15 characters to avoid Azure limits - vmSize: vmSize ?? 'Standard_DS2_v2' + vmSize: vmSize ?? 'Standard_D2s_v5' location: solutionLocation adminUsername: vmAdminUsername ?? 'JumpboxAdminUser' adminPassword: vmAdminPassword ?? 'JumpboxAdminP@ssw0rd1234!' diff --git a/infra/main.json b/infra/main.json index c6ae2903..7b36c41f 100644 --- a/infra/main.json +++ b/infra/main.json @@ -5,8 +5,8 @@ "metadata": { "_generator": { "name": "bicep", - "version": "0.40.2.10011", - "templateHash": "14645128480975829011" + "version": "0.41.2.15936", + "templateHash": "6006700104446037526" } }, "parameters": { @@ -121,7 +121,7 @@ }, "vmSize": { "type": "string", - "defaultValue": "Standard_DS2_v2", + "defaultValue": "Standard_D2s_v5", "metadata": { "description": "Optional. Size of the Jumpbox Virtual Machine when created. Set to custom value if enablePrivateNetworking is true." } @@ -6630,8 +6630,8 @@ "metadata": { "_generator": { "name": "bicep", - "version": "0.40.2.10011", - "templateHash": "5819780095460630914" + "version": "0.41.2.15936", + "templateHash": "10720297436894952204" } }, "definitions": { @@ -10764,7 +10764,7 @@ "value": "[take(variables('jumpboxVmName'), 15)]" }, "vmSize": { - "value": "[coalesce(parameters('vmSize'), 'Standard_DS2_v2')]" + "value": "[coalesce(parameters('vmSize'), 'Standard_D2s_v5')]" }, "location": { "value": "[variables('solutionLocation')]" @@ -19620,8 +19620,8 @@ "metadata": { "_generator": { "name": "bicep", - "version": "0.40.2.10011", - "templateHash": "11752366541769527004" + "version": "0.41.2.15936", + "templateHash": "15442847736367173292" }, "name": "Container Registry Module" }, diff --git a/infra/main.waf.parameters.json b/infra/main.waf.parameters.json index 337be5fd..bb4228b3 100644 --- a/infra/main.waf.parameters.json +++ b/infra/main.waf.parameters.json @@ -46,6 +46,9 @@ "vmAdminPassword": { "value": "${AZURE_ENV_VM_ADMIN_PASSWORD}" }, + "vmSize": { + "value": "${AZURE_ENV_VM_SIZE}" + }, "enableTelemetry": { "value": "${AZURE_ENV_ENABLE_TELEMETRY}" }, diff --git a/infra/modules/virtualNetwork.bicep b/infra/modules/virtualNetwork.bicep index 8919af25..8445869c 100644 --- a/infra/modules/virtualNetwork.bicep +++ b/infra/modules/virtualNetwork.bicep @@ -193,9 +193,10 @@ param resourceSuffix string // VM Size Notes: // 1 B-series VMs (like Standard_B2ms) do not support accelerated networking. // 2 Pick a VM size that does support accelerated networking (the usual jump-box candidates): -// Standard_DS2_v2 (2 vCPU, 7 GiB RAM, Premium SSD) // The most broadly available (it’s a legacy SKU supported in virtually every region). -// Standard_D2s_v3 (2 vCPU, 8 GiB RAM, Premium SSD) // next most common -// Standard_D2s_v4 (2 vCPU, 8 GiB RAM, Premium SSD) // Newest, so fewer regions availabl +// Standard_D2s_v5 (2 vCPU, 8 GiB RAM, Premium SSD) // Recommended - current gen, widely available, better network bandwidth (12,500 Mbps) +// Standard_DS2_v2 (2 vCPU, 7 GiB RAM, Premium SSD) // Previous gen - still available but being phased out +// Standard_D2s_v3 (2 vCPU, 8 GiB RAM, Premium SSD) // Previous gen +// Standard_D2s_v4 (2 vCPU, 8 GiB RAM, Premium SSD) // Previous gen // Subnet Classless Inter-Doman Routing (CIDR) Sizing Reference Table (Best Practices)