Ejercicio: Creación de sitios web
En este ejercicio, creará un par de máquinas virtuales detrás de un equilibrador de carga interno e instalará la aplicación web de registro de vehículos. También configurará una red virtual con un punto de conexión privado que Front Door puede usar para conectarse a las máquinas virtuales de forma privada. Por último, implementará el sitio web de renovación de permisos de conducir en una instancia de Azure App Service y establecerá la conectividad privada con Front Door.
Creación de máquinas virtuales e implementación del sitio de registro de vehículos
Abra Azure Cloud Shell en el explorador e inicie sesión en el directorio con acceso a la suscripción en la que quiera crear los recursos.
Ejecute el siguiente comando en Cloud Shell para crear una variable para almacenar el nombre del grupo de recursos y un grupo de recursos para los recursos. Reemplace
<resource group name>
por un nombre para el grupo de recursos y<location>
por la región de Azure en la que quiera implementar los recursos.Nota:
Si necesita encontrar el nombre de la ubicación, puede usar el siguiente comando: az account list-locations -o table
RG=<resource group name> az group create --name $RG --location <location>
En la ventana de Cloud Shell de la derecha, ejecute el comando siguiente. Este comando usa la interfaz de línea de comandos de Azure para crear una red virtual denominada
vehicleappvnet
. Es una red privada que proporciona las direcciones en el intervalo de 10.0.0.0 a 10.0.255.255. El comando también crea una subred denominadawebServerSubnet
, con el intervalo de direcciones de 10.0.1.0 a 10.0.1.255. Esta subred contiene las máquinas virtuales.az network vnet create \ --resource-group $RG \ --name vehicleAppVnet \ --address-prefixes 10.0.0.0/16 \ --subnet-name webServerSubnet \ --subnet-prefixes 10.0.1.0/24
Para descargar el script que crea las máquinas virtuales, ejecute el comando siguiente.
git clone https://github.com/MicrosoftDocs/mslearn-load-balance-web-traffic-with-application-gateway module-files
Cree un grupo de seguridad de red (NSG) y una regla de NSG para que se aplique a los servidores web durante la creación.
az network nsg create \ --resource-group $RG \ --name webNSG az network nsg rule create \ --resource-group $RG \ --nsg-name webNSG \ --name myNSGRuleHTTP \ --protocol '*' \ --direction inbound \ --source-address-prefix '*' \ --source-port-range '*' \ --destination-address-prefix '*' \ --destination-port-range 80 \ --access allow \ --priority 200
Para crear y configurar las máquinas virtuales para los servidores web, ejecute los comandos siguientes. Las máquinas virtuales se denominan
webServer1
ywebServer2
. Cada máquina virtual ejecuta Ubuntu Server. Se crea una cuenta de usuario administrativo para cada máquina virtual, con el nombre de usuarioazureuser
. Cada máquina virtual tiene instalada la aplicación web de registro de vehículos.El primer comando se ejecuta de forma asincrónica para permitir que se creen simultáneamente ambas máquinas virtuales.
az vm create \ --resource-group $RG \ --name webServer1 \ --image Ubuntu2204 \ --admin-username azureuser \ --generate-ssh-keys \ --vnet-name vehicleAppVnet \ --subnet webServerSubnet \ --public-ip-address "" \ --nsg webNSG \ --custom-data module-files/scripts/vmconfig.sh \ --no-wait az vm create \ --resource-group $RG \ --name webServer2 \ --image Ubuntu2204 \ --admin-username azureuser \ --generate-ssh-keys \ --vnet-name vehicleAppVnet \ --subnet webServerSubnet \ --public-ip-address "" \ --nsg webNSG \ --custom-data module-files/scripts/vmconfig.sh
Para confirmar que ambas máquinas virtuales se crearon correctamente, ejecute el comando siguiente.
az vm list \ --resource-group $RG \ --show-details \ --output table
Debería ver una salida similar a la siguiente. Antes de continuar, asegúrese de que PowerState es Máquina virtual en ejecución para ambas máquinas virtuales.
Name ResourceGroup PowerState PublicIps Fqdns Location Zones ------------ ----------------- ------------ ----------- ------- -------------- ------- webServer1 MyResourceGroup VM running southcentralus webServer2 MyResourceGroup VM running southcentralus
Creación de un equilibrador de carga interno y adición de máquinas virtuales al grupo de back-end
Para crear un recurso de equilibrador de carga interno, ejecute el comando siguiente.
az network lb create \ --resource-group $RG \ --name webServerILB \ --sku standard \ --vnet-name vehicleAppVnet \ --subnet webServerSubnet \ --frontend-ip-name webServerIP \ --backend-pool-name webServerBackendPool
Para crear un sondeo de estado a fin de comprobar la disponibilidad de cada instancia de máquina virtual, ejecute el comando siguiente.
az network lb probe create \ --resource-group $RG \ --lb-name webServerILB \ --name webServerHealthProbe \ --protocol tcp \ --port 80
Para crear una regla de equilibrio de carga a fin de distribuir el tráfico a los servidores web, ejecute el comando siguiente.
az network lb rule create \ --resource-group $RG \ --lb-name webServerILB \ --name myHTTPRule \ --protocol tcp \ --frontend-port 80 \ --backend-port 80 \ --frontend-ip-name webServerIP \ --backend-pool-name webServerBackendPool \ --probe-name webServerHealthProbe \ --idle-timeout 15 \ --enable-tcp-reset true
Para agregar ambos servidores web al grupo de back-end del equilibrador de carga interno, ejecute los comandos siguientes.
az network nic ip-config address-pool add \ --address-pool webServerBackendPool \ --lb-name webServerILB \ --ip-config-name ipconfigwebServer1 \ --nic-name webServer1VMNic \ --resource-group $RG az network nic ip-config address-pool add \ --address-pool webServerBackendPool \ --lb-name webServerILB \ --ip-config-name ipconfigwebServer2 \ --nic-name webServer2VMNic \ --resource-group $RG
Creación de un servicio de vínculo privado y un punto de conexión privado
Se necesita un servicio de vínculo privado para establecer la comunicación privada entre Front Door y los recursos de origen. El punto de conexión privado es el elemento con el que Front Door establece una conexión para crear una conexión interna a través de la red de Microsoft.
Para crear un servicio de vínculo privado y asociarlo con el equilibrador de carga interno, ejecute los comandos siguientes. El primer comando deshabilita la directiva de red de vínculo privado en la subred para permitir que se cree el servicio de vínculo privado.
az network vnet subnet update \ --name webServerSubnet \ --resource-group $RG \ --vnet-name vehicleAppVnet \ --disable-private-link-service-network-policies true az network private-link-service create \ --resource-group $RG \ --name myPrivateLinkService \ --vnet-name vehicleAppVnet \ --subnet webServerSubnet \ --lb-name webServerILB \ --lb-frontend-ip-configs webServerIP
Para crear el punto de conexión privado en una red virtual, ejecute los comandos siguientes. Las solicitudes para establecer la conectividad con este punto de conexión privado se aprueban automáticamente.
export resourceid=$(az network private-link-service show \ --name myPrivateLinkService \ --resource-group $RG \ --query id \ --output tsv) az network private-endpoint create \ --connection-name myPEconnectiontoPLS \ --name myPrivateEndpoint \ --private-connection-resource-id $resourceid \ --resource-group $RG \ --subnet webServerSubnet \ --manual-request false \ --vnet-name vehicleAppVnet
Ya ha creado las máquinas virtuales que ejecutan la aplicación web de registro de vehículos. Ambas máquinas virtuales son idénticas y forman parte de la misma red virtual. También ha configurado un servicio de vínculo privado y un punto de conexión privado para acceder a las máquinas virtuales detrás de un equilibrador de carga interno.
Creación de App Service e implementación del sitio de renovación de licencias
Para empezar, ejecute el comando siguiente para generar un nombre único para el sitio web.
APPSERVICE="licenserenewal$RANDOM"
A continuación, para crear un plan de App Service para que lo use la aplicación web, ejecute el siguiente comando.
az appservice plan create \ --resource-group $RG \ --name vehicleAppServicePlan \ --location eastus \ --sku FREE
Por último, cree la aplicación web e implemente el sitio de renovación de licencias.
az webapp create \ --resource-group $RG \ --name $APPSERVICE \ --plan vehicleAppServicePlan \ --deployment-source-url https://github.com/MicrosoftDocs/mslearn-load-balance-web-traffic-with-application-gateway \ --deployment-source-branch appService
Veamos ahora con más detalle cómo se configura Front Door.