Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Un équilibreur de charge global garantit la disponibilité mondiale du service dans plusieurs régions Azure. En cas de défaillance d'une région, le trafic est acheminé vers l'équilibreur de charge régional sain le plus proche.
L’utilisation du modèle Resource Manager comprend moins d’étapes que les autres méthodes de déploiement.
Un modèle Azure Resource Manager est un fichier JSON (JavaScript Object Notation) qui définit l’infrastructure et la configuration de votre projet. Le modèle utilise la syntaxe déclarative. Vous décrivez votre déploiement prévu sans écrire la séquence de commandes de programmation pour créer le déploiement.
Si votre environnement remplit les prérequis et que vous êtes déjà familiarisé avec l’utilisation des modèles ARM, sélectionnez le bouton Déployer sur Azure. Le modèle s’ouvre dans le portail Azure.
Dans ce tutoriel, vous allez apprendre à :
- Tous les tutoriels incluent une liste récapitulant les étapes à effectuer
- Chacun de ces éléments à puce s’aligne sur une clé H2
- Utilisez ces cases à cocher vertes dans un tutoriel
Prérequis
- Compte Azure avec un abonnement actif. Créez un compte gratuitement et accédez au Portail Azure.
Vérifier le modèle
Dans cette section, vous passez en revue le modèle et les paramètres utilisés pour déployer l’équilibreur de charge global. Le modèle utilisé dans ce guide de démarrage rapide provient des modèles de démarrage rapide Azure.
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"metadata": {
"_generator": {
"name": "bicep",
"version": "0.26.54.24096",
"templateHash": "15686909125702100557"
}
},
"parameters": {
"projectName": {
"type": "string",
"metadata": {
"description": "Specifies a project name that is used for generating resource names."
}
},
"locationCr": {
"type": "string",
"defaultValue": "eastus2",
"allowedValues": [
"eastus2",
"westus",
"centralus",
"westeurope",
"southeastasia",
"centralus",
"northeurope",
"eastasia",
"UKsouth",
"USgovvirginia"
],
"metadata": {
"description": "Specifies the location for the cross-region load balancer. Available in limited regions."
}
},
"locationR1": {
"type": "string",
"defaultValue": "eastus",
"allowedValues": [
"eastus",
"eastus2",
"southcentralus",
"westus2",
"westus3",
"australiaeast",
"southeastasia",
"northeurope",
"swedencentral",
"uksouth",
"westeurope",
"centralus",
"southafricanorth",
"centralindia",
"eastasia",
"japaneast",
"koreacentral",
"canadacentral",
"francecentral",
"germanywestcentral",
"norwayeast",
"switzerlandnorth",
"uaenorth",
"brazilsouth",
"eastus2euap",
"qatarcentral",
"centralusstage",
"eastus2stage",
"northcentralusstage",
"southcentralusstage",
"westusstage",
"westus2stage",
"asia",
"asiapacific",
"australia",
"brazil",
"canada",
"europe",
"france",
"germany",
"global",
"india",
"japan",
"korea",
"norway",
"singapore",
"southafrica",
"switzerland",
"unitedstates",
"eastasiastage",
"eastusstg",
"northcentralus",
"westus",
"jioindiawest",
"centraluseuap",
"westcentralus",
"southafricawest",
"australiacentral",
"australiacentral2",
"australiasoutheast",
"japanwest",
"jioindiacentral",
"koreasouth",
"southindia",
"westindia",
"francesouth",
"germanynorth",
"norwaywest",
"switzerlandwest",
"ukwest",
"uaecentral",
"brazilsoutheast"
],
"metadata": {
"description": "Specifies the location for the regional load balancer."
}
},
"locationR2": {
"type": "string",
"defaultValue": "westus2",
"allowedValues": [
"eastus",
"eastus2",
"southcentralus",
"westus2",
"westus3",
"australiaeast",
"southeastasia",
"northeurope",
"swedencentral",
"uksouth",
"westeurope",
"centralus",
"southafricanorth",
"centralindia",
"eastasia",
"japaneast",
"koreacentral",
"canadacentral",
"francecentral",
"germanywestcentral",
"norwayeast",
"switzerlandnorth",
"uaenorth",
"brazilsouth",
"eastus2euap",
"qatarcentral",
"centralusstage",
"eastus2stage",
"northcentralusstage",
"southcentralusstage",
"westusstage",
"westus2stage",
"asia",
"asiapacific",
"australia",
"brazil",
"canada",
"europe",
"france",
"germany",
"global",
"india",
"japan",
"korea",
"norway",
"singapore",
"southafrica",
"switzerland",
"unitedstates",
"eastasiastage",
"eastusstg",
"northcentralus",
"westus",
"jioindiawest",
"centraluseuap",
"westcentralus",
"southafricawest",
"australiacentral",
"australiacentral2",
"australiasoutheast",
"japanwest",
"jioindiacentral",
"koreasouth",
"southindia",
"westindia",
"francesouth",
"germanynorth",
"norwaywest",
"switzerlandwest",
"ukwest",
"uaecentral",
"brazilsoutheast"
],
"metadata": {
"description": "Specifies the location for the regional load balancer."
}
},
"adminUsername": {
"type": "string",
"metadata": {
"description": "Specifies the virtual machine administrator username."
}
},
"adminPassword": {
"type": "securestring",
"metadata": {
"description": "Specifies the virtual machine administrator password."
}
},
"vmSize": {
"type": "string",
"defaultValue": "Standard_DS1_v2",
"metadata": {
"description": "Size of the virtual machine"
}
}
},
"variables": {
"publicIPAddressType": "Static",
"lbSkuName": "Standard",
"vmStorageAccountType": "Premium_LRS",
"lbR1Name": "[format('{0}-lb-r1', parameters('projectName'))]",
"lbPIPR1Name": "[format('{0}-lbPublicIP-r1', parameters('projectName'))]",
"lbFrontEndR1Name": "LoadBalancerFrontEnd-r1",
"lbBackendPoolR1Name": "LoadBalancerBackEndPool-r1",
"lbProbeR1Name": "loadBalancerHealthProbe-r1",
"nsgR1Name": "[format('{0}-nsg-r1', parameters('projectName'))]",
"vnetR1Name": "[format('{0}-vnet-r1', parameters('projectName'))]",
"vnetAddressPrefixR1": "10.0.0.0/16",
"vnetSubnetR1Name": "BackendSubnet-r1",
"vnetSubnetAddressPrefixR1": "10.0.0.0/24",
"bastionHostR1Name": "[format('{0}-bastion-r1', parameters('projectName'))]",
"bastionSubnetR1Name": "AzureBastionSubnet",
"vnetBastionSubnetAddressPrefixR1": "10.0.1.0/26",
"bastionPIPR1Name": "[format('{0}-bastionPublicIP-r1', parameters('projectName'))]",
"natGatewayR1Name": "[format('{0}-natgateway-r1', parameters('projectName'))]",
"natGatewayPIR1Name": "[format('{0}-natPublicIP-r1', parameters('projectName'))]",
"lbR2Name": "[format('{0}-lb-r2', parameters('projectName'))]",
"lbPIPR2Name": "[format('{0}-lbPublicIP-r2', parameters('projectName'))]",
"lbFrontEndR2Name": "LoadBalancerFrontEnd-r2",
"lbBackendPoolR2Name": "LoadBalancerBackEndPool-r2",
"lbProbeR2Name": "loadBalancerHealthProbe-r2",
"nsgR2Name": "[format('{0}-nsg-r2', parameters('projectName'))]",
"vnetR2Name": "[format('{0}-vnet-r2', parameters('projectName'))]",
"vnetAddressPrefixR2": "10.1.0.0/16",
"vnetSubnetR2Name": "BackendSubnet-r2",
"vnetSubnetAddressPrefixR2": "10.1.0.0/24",
"bastionHostR2Name": "[format('{0}-bastion-r2', parameters('projectName'))]",
"bastionSubnetR2Name": "AzureBastionSubnet",
"vnetBastionSubnetAddressPrefixR2": "10.1.1.0/26",
"bastionPIPR2Name": "[format('{0}-bastionPublicIP-r2', parameters('projectName'))]",
"natGatewayR2Name": "[format('{0}-natgateway-r2', parameters('projectName'))]",
"natGatewayPIR2Name": "[format('{0}-natPublicIP-r2', parameters('projectName'))]",
"lbCrName": "[format('{0}-lb-cr', parameters('projectName'))]",
"lbBackendPoolCrName": "LoadBalancerBackEndPool-cr",
"lbPIPCrName": "[format('{0}-lbPublicIP-cr', parameters('projectName'))]",
"lbFrontEndCrName": "LoadBalancerFrontEnd-cr"
},
"resources": [
{
"copy": {
"name": "nicVmR1",
"count": "[length(range(0, 3))]"
},
"type": "Microsoft.Network/networkInterfaces",
"apiVersion": "2023-02-01",
"name": "[format('vm-r1-{0}-networkInterface', add(range(0, 3)[copyIndex()], 1))]",
"location": "[parameters('locationR1')]",
"properties": {
"ipConfigurations": [
{
"name": "ipconfig1",
"properties": {
"privateIPAllocationMethod": "Dynamic",
"subnet": {
"id": "[resourceId('Microsoft.Network/virtualNetworks/subnets', variables('vnetR1Name'), variables('vnetSubnetR1Name'))]"
},
"loadBalancerBackendAddressPools": [
{
"id": "[resourceId('Microsoft.Network/loadBalancers/backendAddressPools', variables('lbR1Name'), variables('lbBackendPoolR1Name'))]"
}
]
}
}
],
"networkSecurityGroup": {
"id": "[resourceId('Microsoft.Network/networkSecurityGroups', variables('nsgR1Name'))]"
}
},
"dependsOn": [
"[resourceId('Microsoft.Network/loadBalancers', variables('lbR1Name'))]",
"[resourceId('Microsoft.Network/networkSecurityGroups', variables('nsgR1Name'))]",
"[resourceId('Microsoft.Network/virtualNetworks', variables('vnetR1Name'))]",
"[resourceId('Microsoft.Network/virtualNetworks/subnets', variables('vnetR1Name'), variables('vnetSubnetR1Name'))]"
]
},
{
"copy": {
"name": "installWebServerVmR1",
"count": "[length(range(0, 3))]"
},
"type": "Microsoft.Compute/virtualMachines/extensions",
"apiVersion": "2023-03-01",
"name": "[format('vm-r1-{0}/InstallWebServer', add(range(0, 3)[copyIndex()], 1))]",
"location": "[parameters('locationR1')]",
"properties": {
"publisher": "Microsoft.Compute",
"type": "CustomScriptExtension",
"typeHandlerVersion": "1.7",
"autoUpgradeMinorVersion": true,
"settings": {
"commandToExecute": "powershell.exe Install-WindowsFeature -name Web-Server -IncludeManagementTools && powershell.exe remove-item 'C:\\inetpub\\wwwroot\\iisstart.htm' && powershell.exe Add-Content -Path 'C:\\inetpub\\wwwroot\\iisstart.htm' -Value $('Hello World from ' + $env:computername)"
}
},
"dependsOn": [
"vmR2"
]
},
{
"copy": {
"name": "vmR1",
"count": "[length(range(0, 3))]"
},
"type": "Microsoft.Compute/virtualMachines",
"apiVersion": "2023-03-01",
"name": "[format('vm-r1-{0}', add(range(0, 3)[copyIndex()], 1))]",
"location": "[parameters('locationR1')]",
"properties": {
"hardwareProfile": {
"vmSize": "[parameters('vmSize')]"
},
"storageProfile": {
"imageReference": {
"publisher": "MicrosoftWindowsServer",
"offer": "WindowsServer",
"sku": "2019-Datacenter",
"version": "latest"
},
"osDisk": {
"createOption": "fromImage",
"managedDisk": {
"storageAccountType": "[variables('vmStorageAccountType')]"
}
}
},
"networkProfile": {
"networkInterfaces": [
{
"id": "[resourceId('Microsoft.Network/networkInterfaces', format('vm-r1-{0}-networkInterface', add(range(0, 3)[copyIndex()], 1)))]"
}
]
},
"osProfile": {
"computerName": "[format('vm-r1-{0}', add(range(0, 3)[copyIndex()], 1))]",
"adminUsername": "[parameters('adminUsername')]",
"adminPassword": "[parameters('adminPassword')]",
"windowsConfiguration": {
"enableAutomaticUpdates": true,
"provisionVMAgent": true
}
}
},
"dependsOn": [
"nicVmR2"
]
},
{
"type": "Microsoft.Network/virtualNetworks/subnets",
"apiVersion": "2023-02-01",
"name": "[format('{0}/{1}', variables('vnetR1Name'), variables('bastionSubnetR1Name'))]",
"properties": {
"addressPrefix": "[variables('vnetBastionSubnetAddressPrefixR1')]"
},
"dependsOn": [
"[resourceId('Microsoft.Network/virtualNetworks', variables('vnetR1Name'))]"
]
},
{
"type": "Microsoft.Network/virtualNetworks/subnets",
"apiVersion": "2023-02-01",
"name": "[format('{0}/{1}', variables('vnetR1Name'), variables('vnetSubnetR1Name'))]",
"properties": {
"addressPrefix": "[variables('vnetSubnetAddressPrefixR1')]",
"natGateway": {
"id": "[resourceId('Microsoft.Network/natGateways', variables('natGatewayR1Name'))]"
}
},
"dependsOn": [
"[resourceId('Microsoft.Network/natGateways', variables('natGatewayR1Name'))]",
"[resourceId('Microsoft.Network/virtualNetworks', variables('vnetR1Name'))]",
"[resourceId('Microsoft.Network/virtualNetworks/subnets', variables('vnetR1Name'), variables('bastionSubnetR1Name'))]"
]
},
{
"type": "Microsoft.Network/bastionHosts",
"apiVersion": "2023-02-01",
"name": "[variables('bastionHostR1Name')]",
"location": "[parameters('locationR1')]",
"properties": {
"ipConfigurations": [
{
"name": "IpConf",
"properties": {
"privateIPAllocationMethod": "Dynamic",
"publicIPAddress": {
"id": "[resourceId('Microsoft.Network/publicIPAddresses', variables('bastionPIPR1Name'))]"
},
"subnet": {
"id": "[resourceId('Microsoft.Network/virtualNetworks/subnets', variables('vnetR1Name'), variables('bastionSubnetR1Name'))]"
}
}
}
]
},
"dependsOn": [
"[resourceId('Microsoft.Network/publicIPAddresses', variables('bastionPIPR1Name'))]",
"[resourceId('Microsoft.Network/virtualNetworks', variables('vnetR1Name'))]",
"[resourceId('Microsoft.Network/virtualNetworks/subnets', variables('vnetR1Name'), variables('bastionSubnetR1Name'))]"
]
},
{
"type": "Microsoft.Network/publicIPAddresses",
"apiVersion": "2023-02-01",
"name": "[variables('bastionPIPR1Name')]",
"location": "[parameters('locationR1')]",
"sku": {
"name": "[variables('lbSkuName')]"
},
"properties": {
"publicIPAddressVersion": "IPv4",
"publicIPAllocationMethod": "Static"
}
},
{
"type": "Microsoft.Network/natGateways",
"apiVersion": "2021-05-01",
"name": "[variables('natGatewayR1Name')]",
"location": "[parameters('locationR1')]",
"sku": {
"name": "Standard"
},
"properties": {
"idleTimeoutInMinutes": 4,
"publicIpAddresses": [
{
"id": "[resourceId('Microsoft.Network/publicIPAddresses', variables('natGatewayPIR1Name'))]"
}
]
},
"dependsOn": [
"[resourceId('Microsoft.Network/publicIPAddresses', variables('natGatewayPIR1Name'))]"
]
},
{
"type": "Microsoft.Network/publicIPAddresses",
"apiVersion": "2021-05-01",
"name": "[variables('natGatewayPIR1Name')]",
"location": "[parameters('locationR1')]",
"sku": {
"name": "Standard"
},
"properties": {
"publicIPAddressVersion": "IPv4",
"publicIPAllocationMethod": "Static",
"idleTimeoutInMinutes": 4
}
},
{
"type": "Microsoft.Network/loadBalancers",
"apiVersion": "2023-02-01",
"name": "[variables('lbR1Name')]",
"location": "[parameters('locationR1')]",
"sku": {
"name": "[variables('lbSkuName')]"
},
"properties": {
"frontendIPConfigurations": [
{
"name": "[variables('lbFrontEndR1Name')]",
"properties": {
"publicIPAddress": {
"id": "[resourceId('Microsoft.Network/publicIPAddresses', variables('lbPIPR1Name'))]"
}
}
}
],
"backendAddressPools": [
{
"name": "[variables('lbBackendPoolR1Name')]"
}
],
"loadBalancingRules": [
{
"name": "myHTTPRule",
"properties": {
"frontendIPConfiguration": {
"id": "[resourceId('Microsoft.Network/loadBalancers/frontendIPConfigurations', variables('lbR1Name'), variables('lbFrontEndR1Name'))]"
},
"backendAddressPool": {
"id": "[resourceId('Microsoft.Network/loadBalancers/backendAddressPools', variables('lbR1Name'), variables('lbBackendPoolR1Name'))]"
},
"frontendPort": 80,
"backendPort": 80,
"enableFloatingIP": false,
"idleTimeoutInMinutes": 15,
"protocol": "Tcp",
"enableTcpReset": true,
"loadDistribution": "Default",
"disableOutboundSnat": true,
"probe": {
"id": "[resourceId('Microsoft.Network/loadBalancers/probes', variables('lbR1Name'), variables('lbProbeR1Name'))]"
}
}
}
],
"probes": [
{
"name": "[variables('lbProbeR1Name')]",
"properties": {
"protocol": "Http",
"port": 80,
"requestPath": "/",
"intervalInSeconds": 5,
"numberOfProbes": 2
}
}
],
"outboundRules": []
},
"dependsOn": [
"[resourceId('Microsoft.Network/publicIPAddresses', variables('lbPIPR1Name'))]"
]
},
{
"type": "Microsoft.Network/publicIPAddresses",
"apiVersion": "2023-02-01",
"name": "[variables('lbPIPR1Name')]",
"location": "[parameters('locationR1')]",
"sku": {
"name": "[variables('lbSkuName')]"
},
"properties": {
"publicIPAddressVersion": "IPv4",
"publicIPAllocationMethod": "Static"
}
},
{
"type": "Microsoft.Network/networkSecurityGroups",
"apiVersion": "2023-02-01",
"name": "[variables('nsgR1Name')]",
"location": "[parameters('locationR1')]",
"properties": {
"securityRules": [
{
"name": "AllowHTTPInbound",
"properties": {
"protocol": "*",
"sourcePortRange": "*",
"destinationPortRange": "80",
"sourceAddressPrefix": "Internet",
"destinationAddressPrefix": "*",
"access": "Allow",
"priority": 100,
"direction": "Inbound"
}
}
]
}
},
{
"type": "Microsoft.Network/virtualNetworks",
"apiVersion": "2023-02-01",
"name": "[variables('vnetR1Name')]",
"location": "[parameters('locationR1')]",
"properties": {
"addressSpace": {
"addressPrefixes": [
"[variables('vnetAddressPrefixR1')]"
]
}
}
},
{
"copy": {
"name": "nicVmR2",
"count": "[length(range(0, 3))]"
},
"type": "Microsoft.Network/networkInterfaces",
"apiVersion": "2023-02-01",
"name": "[format('vm-r2-{0}-networkInterface', add(range(0, 3)[copyIndex()], 1))]",
"location": "[parameters('locationR2')]",
"properties": {
"ipConfigurations": [
{
"name": "ipconfig1",
"properties": {
"privateIPAllocationMethod": "Dynamic",
"subnet": {
"id": "[resourceId('Microsoft.Network/virtualNetworks/subnets', variables('vnetR2Name'), variables('vnetSubnetR2Name'))]"
},
"loadBalancerBackendAddressPools": [
{
"id": "[resourceId('Microsoft.Network/loadBalancers/backendAddressPools', variables('lbR2Name'), variables('lbBackendPoolR2Name'))]"
}
]
}
}
],
"networkSecurityGroup": {
"id": "[resourceId('Microsoft.Network/networkSecurityGroups', variables('nsgR2Name'))]"
}
},
"dependsOn": [
"[resourceId('Microsoft.Network/loadBalancers', variables('lbR2Name'))]",
"[resourceId('Microsoft.Network/networkSecurityGroups', variables('nsgR2Name'))]",
"[resourceId('Microsoft.Network/virtualNetworks', variables('vnetR2Name'))]",
"[resourceId('Microsoft.Network/virtualNetworks/subnets', variables('vnetR2Name'), variables('vnetSubnetR2Name'))]"
]
},
{
"copy": {
"name": "installWebServerVmR2",
"count": "[length(range(0, 3))]"
},
"type": "Microsoft.Compute/virtualMachines/extensions",
"apiVersion": "2023-03-01",
"name": "[format('vm-r2-{0}/InstallWebServer', add(range(0, 3)[copyIndex()], 1))]",
"location": "[parameters('locationR2')]",
"properties": {
"publisher": "Microsoft.Compute",
"type": "CustomScriptExtension",
"typeHandlerVersion": "1.7",
"autoUpgradeMinorVersion": true,
"settings": {
"commandToExecute": "powershell.exe Install-WindowsFeature -name Web-Server -IncludeManagementTools && powershell.exe remove-item 'C:\\inetpub\\wwwroot\\iisstart.htm' && powershell.exe Add-Content -Path 'C:\\inetpub\\wwwroot\\iisstart.htm' -Value $('Hello World from ' + $env:computername)"
}
},
"dependsOn": [
"vmR2"
]
},
{
"copy": {
"name": "vmR2",
"count": "[length(range(0, 3))]"
},
"type": "Microsoft.Compute/virtualMachines",
"apiVersion": "2023-03-01",
"name": "[format('vm-r2-{0}', add(range(0, 3)[copyIndex()], 1))]",
"location": "[parameters('locationR2')]",
"properties": {
"hardwareProfile": {
"vmSize": "[parameters('vmSize')]"
},
"storageProfile": {
"imageReference": {
"publisher": "MicrosoftWindowsServer",
"offer": "WindowsServer",
"sku": "2019-Datacenter",
"version": "latest"
},
"osDisk": {
"createOption": "fromImage",
"managedDisk": {
"storageAccountType": "[variables('vmStorageAccountType')]"
}
}
},
"networkProfile": {
"networkInterfaces": [
{
"id": "[resourceId('Microsoft.Network/networkInterfaces', format('vm-r2-{0}-networkInterface', add(range(0, 3)[copyIndex()], 1)))]"
}
]
},
"osProfile": {
"computerName": "[format('vm-r2-{0}', add(range(0, 3)[copyIndex()], 1))]",
"adminUsername": "[parameters('adminUsername')]",
"adminPassword": "[parameters('adminPassword')]",
"windowsConfiguration": {
"enableAutomaticUpdates": true,
"provisionVMAgent": true
}
}
},
"dependsOn": [
"nicVmR2"
]
},
{
"type": "Microsoft.Network/virtualNetworks/subnets",
"apiVersion": "2023-02-01",
"name": "[format('{0}/{1}', variables('vnetR2Name'), variables('bastionSubnetR2Name'))]",
"properties": {
"addressPrefix": "[variables('vnetBastionSubnetAddressPrefixR2')]"
},
"dependsOn": [
"[resourceId('Microsoft.Network/virtualNetworks', variables('vnetR2Name'))]"
]
},
{
"type": "Microsoft.Network/virtualNetworks/subnets",
"apiVersion": "2023-02-01",
"name": "[format('{0}/{1}', variables('vnetR2Name'), variables('vnetSubnetR2Name'))]",
"properties": {
"addressPrefix": "[variables('vnetSubnetAddressPrefixR2')]",
"natGateway": {
"id": "[resourceId('Microsoft.Network/natGateways', variables('natGatewayR2Name'))]"
}
},
"dependsOn": [
"[resourceId('Microsoft.Network/natGateways', variables('natGatewayR2Name'))]",
"[resourceId('Microsoft.Network/virtualNetworks', variables('vnetR2Name'))]",
"[resourceId('Microsoft.Network/virtualNetworks/subnets', variables('vnetR2Name'), variables('bastionSubnetR2Name'))]"
]
},
{
"type": "Microsoft.Network/bastionHosts",
"apiVersion": "2023-02-01",
"name": "[variables('bastionHostR2Name')]",
"location": "[parameters('locationR2')]",
"properties": {
"ipConfigurations": [
{
"name": "IpConf",
"properties": {
"privateIPAllocationMethod": "Dynamic",
"publicIPAddress": {
"id": "[resourceId('Microsoft.Network/publicIPAddresses', variables('bastionPIPR2Name'))]"
},
"subnet": {
"id": "[resourceId('Microsoft.Network/virtualNetworks/subnets', variables('vnetR2Name'), variables('bastionSubnetR2Name'))]"
}
}
}
]
},
"dependsOn": [
"[resourceId('Microsoft.Network/publicIPAddresses', variables('bastionPIPR2Name'))]",
"[resourceId('Microsoft.Network/virtualNetworks', variables('vnetR2Name'))]",
"[resourceId('Microsoft.Network/virtualNetworks/subnets', variables('vnetR2Name'), variables('bastionSubnetR2Name'))]"
]
},
{
"type": "Microsoft.Network/publicIPAddresses",
"apiVersion": "2023-02-01",
"name": "[variables('bastionPIPR2Name')]",
"location": "[parameters('locationR2')]",
"sku": {
"name": "[variables('lbSkuName')]"
},
"properties": {
"publicIPAddressVersion": "IPv4",
"publicIPAllocationMethod": "Static"
}
},
{
"type": "Microsoft.Network/natGateways",
"apiVersion": "2021-05-01",
"name": "[variables('natGatewayR2Name')]",
"location": "[parameters('locationR2')]",
"sku": {
"name": "Standard"
},
"properties": {
"idleTimeoutInMinutes": 4,
"publicIpAddresses": [
{
"id": "[resourceId('Microsoft.Network/publicIPAddresses', variables('natGatewayPIR2Name'))]"
}
]
},
"dependsOn": [
"[resourceId('Microsoft.Network/publicIPAddresses', variables('natGatewayPIR2Name'))]"
]
},
{
"type": "Microsoft.Network/publicIPAddresses",
"apiVersion": "2021-05-01",
"name": "[variables('natGatewayPIR2Name')]",
"location": "[parameters('locationR2')]",
"sku": {
"name": "Standard"
},
"properties": {
"publicIPAddressVersion": "IPv4",
"publicIPAllocationMethod": "Static",
"idleTimeoutInMinutes": 4
}
},
{
"type": "Microsoft.Network/loadBalancers",
"apiVersion": "2023-02-01",
"name": "[variables('lbR2Name')]",
"location": "[parameters('locationR2')]",
"sku": {
"name": "[variables('lbSkuName')]"
},
"properties": {
"frontendIPConfigurations": [
{
"name": "[variables('lbFrontEndR2Name')]",
"properties": {
"publicIPAddress": {
"id": "[resourceId('Microsoft.Network/publicIPAddresses', variables('lbPIPR2Name'))]"
}
}
}
],
"backendAddressPools": [
{
"name": "[variables('lbBackendPoolR2Name')]"
}
],
"loadBalancingRules": [
{
"name": "myHTTPRule",
"properties": {
"frontendIPConfiguration": {
"id": "[resourceId('Microsoft.Network/loadBalancers/frontendIPConfigurations', variables('lbR2Name'), variables('lbFrontEndR2Name'))]"
},
"backendAddressPool": {
"id": "[resourceId('Microsoft.Network/loadBalancers/backendAddressPools', variables('lbR2Name'), variables('lbBackendPoolR2Name'))]"
},
"frontendPort": 80,
"backendPort": 80,
"enableFloatingIP": false,
"idleTimeoutInMinutes": 15,
"protocol": "Tcp",
"enableTcpReset": true,
"loadDistribution": "Default",
"disableOutboundSnat": true,
"probe": {
"id": "[resourceId('Microsoft.Network/loadBalancers/probes', variables('lbR2Name'), variables('lbProbeR2Name'))]"
}
}
}
],
"probes": [
{
"name": "[variables('lbProbeR2Name')]",
"properties": {
"protocol": "Http",
"port": 80,
"requestPath": "/",
"intervalInSeconds": 5,
"numberOfProbes": 2
}
}
],
"outboundRules": []
},
"dependsOn": [
"[resourceId('Microsoft.Network/publicIPAddresses', variables('lbPIPR2Name'))]"
]
},
{
"type": "Microsoft.Network/publicIPAddresses",
"apiVersion": "2023-02-01",
"name": "[variables('lbPIPR2Name')]",
"location": "[parameters('locationR2')]",
"sku": {
"name": "[variables('lbSkuName')]"
},
"properties": {
"publicIPAddressVersion": "IPv4",
"publicIPAllocationMethod": "Static"
}
},
{
"type": "Microsoft.Network/networkSecurityGroups",
"apiVersion": "2023-02-01",
"name": "[variables('nsgR2Name')]",
"location": "[parameters('locationR2')]",
"properties": {
"securityRules": [
{
"name": "AllowHTTPInbound",
"properties": {
"protocol": "*",
"sourcePortRange": "*",
"destinationPortRange": "80",
"sourceAddressPrefix": "Internet",
"destinationAddressPrefix": "*",
"access": "Allow",
"priority": 100,
"direction": "Inbound"
}
}
]
}
},
{
"type": "Microsoft.Network/virtualNetworks",
"apiVersion": "2023-02-01",
"name": "[variables('vnetR2Name')]",
"location": "[parameters('locationR2')]",
"properties": {
"addressSpace": {
"addressPrefixes": [
"[variables('vnetAddressPrefixR2')]"
]
}
}
},
{
"type": "Microsoft.Network/publicIPAddresses",
"apiVersion": "2023-02-01",
"name": "[variables('lbPIPCrName')]",
"location": "[parameters('locationCr')]",
"sku": {
"name": "Standard",
"tier": "Global"
},
"properties": {
"publicIPAllocationMethod": "[variables('publicIPAddressType')]"
}
},
{
"type": "Microsoft.Network/loadBalancers",
"apiVersion": "2023-02-01",
"name": "[variables('lbCrName')]",
"location": "[parameters('locationCr')]",
"sku": {
"name": "Standard",
"tier": "Global"
},
"properties": {
"frontendIPConfigurations": [
{
"name": "[variables('lbFrontEndCrName')]",
"properties": {
"publicIPAddress": {
"id": "[resourceId('Microsoft.Network/publicIPAddresses', variables('lbPIPCrName'))]"
}
}
}
],
"backendAddressPools": [
{
"name": "[variables('lbBackendPoolCrName')]"
}
],
"loadBalancingRules": [
{
"name": "LBRule",
"properties": {
"frontendIPConfiguration": {
"id": "[resourceId('Microsoft.Network/loadBalancers/frontendIPConfigurations', variables('lbCrName'), variables('lbFrontEndCrName'))]"
},
"backendAddressPool": {
"id": "[resourceId('Microsoft.Network/loadBalancers/backendAddressPools', variables('lbCrName'), variables('lbBackendPoolCrName'))]"
},
"protocol": "Tcp",
"frontendPort": 80,
"backendPort": 80,
"enableFloatingIP": false
}
}
]
},
"dependsOn": [
"[resourceId('Microsoft.Network/publicIPAddresses', variables('lbPIPCrName'))]"
]
},
{
"type": "Microsoft.Network/loadBalancers/backendAddressPools",
"apiVersion": "2023-02-01",
"name": "[format('{0}/{1}', variables('lbCrName'), variables('lbBackendPoolCrName'))]",
"properties": {
"loadBalancerBackendAddresses": [
{
"name": "address1",
"properties": {
"loadBalancerFrontendIPConfiguration": {
"id": "[resourceId('Microsoft.Network/loadBalancers/frontendIPConfigurations', variables('lbR1Name'), variables('lbFrontEndR1Name'))]"
}
}
},
{
"name": "address2",
"properties": {
"loadBalancerFrontendIPConfiguration": {
"id": "[resourceId('Microsoft.Network/loadBalancers/frontendIPConfigurations', variables('lbR2Name'), variables('lbFrontEndR2Name'))]"
}
}
}
]
},
"dependsOn": [
"[resourceId('Microsoft.Network/loadBalancers', variables('lbCrName'))]",
"[resourceId('Microsoft.Network/loadBalancers', variables('lbR1Name'))]",
"[resourceId('Microsoft.Network/loadBalancers', variables('lbR2Name'))]"
]
}
]
}
Notes
Lorsque vous créez un équilibreur de charge standard, vous devez également créer une adresse IP publique standard configurée en tant que front-end pour cet équilibreur de charge standard. En outre, les équilibreurs de charge et les références SKU IP publiques doivent correspondre. Dans notre cas, nous allons créer deux adresses IP publiques standard, une pour l’équilibreur de charge au niveau régional et une autre pour l’équilibreur de charge global.
Plusieurs ressources Azure ont été définies dans le modèle :
Microsoft.Network/loadBalancers : équilibreurs de charge régionaux et globaux.
Microsoft.Network/publicIPAddresses : pour l’équilibreur de charge, l’hôte bastion et pour chacune des trois machines virtuelles.
Microsoft.Network/virtualNetworks : Réseau virtuel pour l’équilibreur de charge et les machines virtuelles.
Microsoft.Compute/virtualMachines (2) : machines virtuelles.
Microsoft.Network/networkInterfaces (2) : interfaces réseau pour les machines virtuelles.
Microsoft.Compute/virtualMachine/extensions (2) : à utiliser pour configurer Internet Information Server (IIS) et les pages web.
Important
Le tarif horaire commence à partir du moment où Bastion est déployé, quelle que soit l’utilisation des données sortantes. Pour plus d’informations, consultez Tarifications et Références SKU. Si vous déployez Bastion dans le cadre d’un tutoriel ou d’un test, nous vous recommandons de supprimer cette ressource après l’avoir utilisée.
Pour rechercher d’autres modèles qui sont liés à l’équilibrage de charge Azure, consultez Modèles de démarrage rapide Azure.
Déployer le modèle
Connectez-vous au portail Azure.
Entrez et sélectionnez Déployer un modèle personnalisé dans la barre de recherche
Dans la page Déploiement personnalisé, saisissez load-balancer-cross-region dans la zone de texte Modèle de démarrage rapide et sélectionnez quickstarts/microsoft.network/load-balancer-cross-region.
Choisissez Sélectionner un modèle et entrez les informations suivantes :
Nom Valeur Abonnement Sélectionnez votre abonnement groupe de ressources Sélectionnez votre groupe de ressources ou créez un nouveau groupe de ressources Région Sélectionner la région de déploiement pour les ressources Nom du projet Entrez un nom de projet utilisé pour créer des noms de ressources uniques LocationCR Sélectionner la région de déploiement pour l’équilibreur de charge inter-régions Location-r1 Sélectionner la région de déploiement pour l’équilibreur de charge régional et les machines virtuelles Location-r2 Sélectionner la région de déploiement pour l’équilibreur de charge régional et les machines virtuelles Nom d’utilisateur d’administrateur Entrer un nom d’utilisateur pour la machine virtuelle Mot de passe d’administrateur Entrer un mot de passe pour les machines virtuelles Sélectionner Vérifier + créer pour exécuter la validation du modèle.
Si aucune erreur n’est présente, passez en revue les termes du modèle et sélectionnez Créer.
Vérifier le déploiement
Connectez-vous au Portail Azure le cas échéant.
Sélectionnez Groupes de ressources dans le volet gauche.
Sélectionnez le groupe de ressources utilisé dans le déploiement. Le nom du groupe de ressources par défaut est le nom de projet avec -rg à la fin. Par exemple, crlb-learn-arm-rg.
Sélectionnez l’équilibreur de charge global. Son nom par défaut est le nom du projet plus -cr ajouté à la fin. Par exemple, crlb-learn-arm-rg.
Copiez uniquement la partie adresse IP de l’adresse IP publique, puis collez cette donnée dans la barre d’adresse de votre navigateur. La page est résolue en page web Windows Server IIS par défaut.
Nettoyer les ressources
Quand vous n’avez plus besoin des ressources suivantes, supprimez-les :
- groupe de ressources
- Équilibrage de charge
- Ressources associées
- Dans le portail Azure, sélectionnez le groupe de ressources qui contient l’équilibreur de charge, puis sélectionnez Supprimer le groupe de ressources.
- Sélectionnez Appliquer la suppression forcée pour les machines virtuelles et les groupes de machines virtuelles identiques sélectionnés, entrez le nom du groupe de ressources, puis sélectionnez **Supprimer > supprimer**.
Étapes suivantes
Dans ce tutoriel, vous allez :
- Vous avez créé un équilibreur de charge interrégional\
- Vous avez créé un équilibreur de charge régional
- Vous avez créé trois machines virtuelles et vous les avez liées à l’équilibreur de charge régional
- Vous avez configuré l’équilibreur de charge global pour qu’il fonctionne avec l’équilibreur de charge régional
- L’équilibreur de charge global a été testé.
En savoir plus sur l’équilibreur de charge interrégional.
Passez à l’article suivant pour découvrir comment créer...