Prueba de puntos de conexión privados mediante la implementación de Azure Load Testing en una red virtual de Azure
En este artículo, aprenderá a probar puntos de conexión de aplicación privados con Azure Load Testing. Cree un recurso de Azure Load Testing y habilite para generar la carga desde dentro de la red virtual (inyección de red virtual).
Esta funcionalidad habilita las siguientes situaciones de uso:
- Generar la carga a un punto de conexión que se implementa en una red virtual de Azure.
- Generar la carga a un punto de conexión público con restricciones de acceso, como restringir las direcciones IP del cliente.
- Generar la carga a un servicio local, no accesible públicamente, que esté conectado a Azure a través de ExpressRoute.
Obtenga más información sobre loas situaciones para implementar Azure Load Testing en su red virtual.
El diagrama que aparece a continuación muestra una visión general técnica:
Al iniciar la prueba de carga, el servicio Azure Load Testing inserta los siguientes recursos de Azure en la red virtual que contiene el punto de conexión de la aplicación:
- Máquinas virtuales del motor de prueba. Estas máquinas virtuales invocan el punto de conexión de la aplicación durante la prueba de carga.
- Una dirección IP pública.
- Un grupo de seguridad de red (NSG).
- Un equilibrador de carga de Azure.
Estos recursos son efímeros y solo existen mientras se ejecuta la prueba de carga. Si tiene restricciones en la implementación de una dirección IP pública, un equilibrador de carga de Azure o un grupo de seguridad de red en la subred, puede deshabilitar la implementación de estos recursos. Para obtener más información, consulte Configuración de la prueba de carga.
Si restringe el acceso a su red virtual, debe configurar su red virtual para habilitar la comunicación entre Azure Load Testing y las máquinas virtuales insertadas.
Requisitos previos
- Su cuenta de Azure tiene el rol Colaborador de red, o un elemento primario de este rol, en la red virtual. Consulte Comprobación del acceso de un usuario a los recursos de Azure para comprobar los permisos.
- La subred que use para Azure Load Testing debe tener suficientes direcciones IP no asignadas para dar cabida al número de motores de prueba de carga de la prueba. Obtenga más información sobre cómo configurar su prueba para la carga a gran escala.
- La subred no se puede delegar a ningún otro servicio de Azure. Por ejemplo, no debe delegarse en Azure Container Instances (ACI). Obtenga más información sobre la delegación de subred.
- CLI de Azure versión 2.2.0 o posterior (si usa CI/CD). Ejecute
az --version
para buscar la versión que está instalada en el equipo. Si tiene que instalar o actualizar la CLI de Azure, consulte Instalación de la CLI de Azure.
Configurar la red virtual
Para probar los puntos de conexión privados, conecte Azure Load Testing a una red virtual de Azure. La red virtual debe tener al menos una subred y permitir el tráfico saliente al servicio Azure Load Testing.
Si aún no tiene una red virtual, siga estos pasos para crear una red virtual de Azure en Azure Portal.
Importante
La red virtual debe estar en la misma suscripción y en la misma región que el recurso de prueba de carga.
Creación de una subred
Al implementar Azure Load Testing en la red virtual, se recomienda usar subredes separadas para Azure Load Testing y el punto de conexión de la aplicación. Este enfoque le permite configurar las directivas de acceso al tráfico de red específicamente para cada propósito. Obtenga más información sobre cómo agregar una subred a una red virtual.
(Opcional) Configuración de reglas de tráfico
Azure Load Testing requiere que las máquinas virtuales insertadas en la red virtual tengan permitido el acceso saliente al servicio Azure Load Testing. De forma predeterminada, cuando se crea una red virtual, ya se permite el acceso saliente.
Si tiene previsto restringir aún más el acceso a la red virtual con un grupo de seguridad de red, o si ya tiene un grupo de seguridad de red, debe configurar una regla de seguridad de salida para permitir el tráfico desde las máquinas virtuales del motor de prueba al servicio Azure Load Testing.
Para configurar el acceso saliente para Azure Load Testing:
Inicie sesión en Azure Portal.
Vaya al grupo de seguridad de red.
Si aún no tiene un NSG, siga estos pasos para crear un grupo de seguridad de red.
Cree un NSG en la misma región que la red virtual y asócielo a la subred.
Seleccione Reglas de seguridad salientes en el panel de navegación izquierdo.
Seleccione + Agregar para agregar una nueva regla de seguridad de salida. Escriba la siguiente información para crear una nueva regla.
Campo Value Origen Cualquiera Intervalos de puertos de origen * Destino Cualquiera Intervalos de puertos de destino * Nombre azure-load-testing-outbound Descripción Se usa para varios operaciones implicadas en la orquestación de pruebas de carga. Seleccione Agregar para agregar la regla de seguridad de salida al grupo de seguridad de red.
Configuración de su prueba de carga
Las máquinas virtuales del motor de prueba, que ejecutan el script JMeter, se insertan en la red virtual que contiene el punto de conexión de la aplicación. Ahora puede hacer referencia directamente al punto de conexión en el archivo JMX mediante la dirección IP privada o usar la resolución de nombres en su red.
Por ejemplo, para un punto de conexión con la dirección IP 10.179.0.7, en una red virtual con intervalo de subredes 10.179.0.0/18, el archivo JMX podría tener esta información:
<HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Internal service homepage" enabled="true">
<elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="Service homepage" enabled="true">
<collectionProp name="Arguments.arguments"/>
</elementProp>
<stringProp name="HTTPSampler.domain">10.179.0.7</stringProp>
<stringProp name="HTTPSampler.port">8081</stringProp>
<stringProp name="HTTPSampler.protocol"></stringProp>
<stringProp name="HTTPSampler.contentEncoding"></stringProp>
<stringProp name="HTTPSampler.path"></stringProp>
<stringProp name="HTTPSampler.method">GET</stringProp>
</HTTPSamplerProxy>
Configure la prueba de carga
Para incluir puntos de conexión hospedados de forma privada en la prueba de carga, debe configurar las opciones de red virtual para la prueba de carga. Puede configurar las opciones de red virtual en Azure Portal o especificarlas en el archivo de configuración de prueba de YAML para canalizaciones de CI/CD.
Importante
Al implementar Azure Load Testing en una red virtual, incurrirá en cargos adicionales. Azure Load Testing implementa una Azure Load Balancer y una dirección IP pública en su suscripción y puede haber un costo para el tráfico generado. Para obtener más información, consulte la información sobre los precios de la red virtual.
Configuración de la red virtual en Azure Portal
Puede especificar las opciones de configuración de red virtual en el Asistente para creación o actualización de pruebas de carga.
Inicie sesión en Azure Portal con las credenciales de la suscripción de Azure.
Vaya al recurso de Azure Load Testing y, en el panel de la izquierda, seleccione Pruebas.
Abra el asistente para crear o actualizar pruebas de carga de dos maneras:
Seleccione + Crear > Actualizar un script JMeter si desea crear una nueva prueba.
Seleccione una prueba existente de la lista y luego haga clic en Editar.
En la pestaña Cargar, seleccione Modo de tráficoprivado y, a continuación, seleccione la red virtual y la subred.
Si tiene varias subredes en la red virtual, asegúrese de seleccionar la subred que hospedará las máquinas virtuales insertadas del motor de prueba.
Importante
Asegúrese de que tiene permisos suficientes para administrar redes virtuales. Necesita el rol Colaborador de red.
(Opcional) Active Deshabilitar la implementación de IP pública si no desea implementar una dirección IP pública, un equilibrador de carga y un grupo de seguridad de red en la subred.
Al seleccionar esta opción, asegúrese de que hay un mecanismo alternativo como Azure NAT Gateway, Azure Firewall o una aplicación virtual de red (NVA) para habilitar el enrutamiento de tráfico saliente desde la subred.
Revise o rellene la información de la prueba de carga. Siga estos pasos para crear o administrar una prueba.
Seleccione Revisar + crear y, a continuación, Crear (o Aplicar, al actualizar una prueba existente).
Cuando se inicia la prueba de carga, Azure Load Testing inserta las máquinas virtuales del motor de prueba en la red virtual y la subred. El script de prueba ahora puede acceder al punto de conexión de aplicación hospedado de forma privada en la red virtual.
Configuración de la red virtual para canalizaciones de CI/CD
Para configurar la prueba de carga con la configuración de la red virtual, actualice el archivo de configuración de prueba de YAML.
Abra un terminal y use la CLI de Azure para iniciar sesión en la suscripción de Azure:
az login az account set --subscription <your-Azure-Subscription-ID>
Recupere el identificador de subred y copie el valor resultante:
az network vnet subnet show -g <your-resource-group> --vnet-name <your-vnet-name> --name <your-subnet-name> --query id
Abra el archivo de configuración de prueba de YAML en el editor que prefiera.
Agregue la
subnetId
propiedad al archivo de configuración y proporcione el identificador de subred que copió anteriormente:version: v0.1 testName: SampleTest testPlan: SampleTest.jmx description: 'Load test the website home page' engineInstances: 1 subnetId: <your-subnet-id> publicIPDisabled: False
Opcionalmente, puede establecer la
publicIPDisabled
propiedadTrue
en . Para obtener más información sobre la configuración de YAML, consulte Configuración de una prueba de carga en YAML.Importante
Asegúrese de que tiene permisos suficientes para administrar redes virtuales. Necesita el rol Colaborador de red.
Guarde el archivo de configuración de YAML y confirme los cambios en el repositorio de código fuente.
Después de que se desencadene el flujo de trabajo de CI/CD, se inicia la prueba de carga y ahora puede acceder al punto de conexión de la aplicación hospedada de forma privada en la red virtual.
Solución de problemas
Se produce un error al crear o actualizar la prueba de carga con Subscription not registered with Microsoft.Batch (ALTVNET001)
Al configurar una prueba de carga en una red virtual, la suscripción debe registrarse con Microsoft.Batch
.
Intente crear o actualizar la prueba de carga de nuevo pasados unos minutos.
Si el error persiste, siga estos pasos para registrar la suscripción con el proveedor de recursos
Microsoft.Batch
manualmente.
Se produce un error al crear o actualizar la prueba de carga con Subnet is not in the Succeeded state (ALTVNET002)
La subred que usa para la prueba de carga no tiene el estado Succeeded
y no está lista para implementar la prueba de carga en ella.
Compruebe el estado de la subred.
Ejecute el siguiente comando de la CLI de Azure para comprobar el estado. El resultado debe ser
Succeeded
.az network vnet subnet show -g MyResourceGroup -n MySubnet --vnet-name MyVNet
Resuelva los problemas de la subred. Si acaba de crear la subred, compruebe el estado de nuevo después de unos minutos.
Como alternativa, seleccione otra subred para la prueba de carga.
Error al crear o actualizar la prueba de carga con Subnet is delegated to other service (ALTVNET003)
La subred que se usa para implementar la prueba de carga no se puede delegar en otro servicio de Azure. Quite la delegación existente o seleccione otra subred que no esté delegada en un servicio.
Más información sobre la incorporación o retirada de una delegación de subred.
Error al actualizar o iniciar la prueba de carga con User doesn't have subnet/join/action permission on the virtual network (ALTVNET004)
Para actualizar o iniciar una prueba de carga, debe tener permisos suficientes para implementar Azure Load Testing en la red virtual. Necesita el rol Colaborador de red, o un elemento primario de este rol, en la red virtual.
Consulte Comprobación del acceso de un usuario a los recursos de Azure para comprobar los permisos.
Siga estos pasos para asignar el rol Colaborador de red a su cuenta.
Se produce un error al crear o actualizar la prueba de carga con IPv6 enabled subnet not supported (ALTVNET005)
Azure Load Testing no admite las subredes habilitadas para IPv6. Seleccione otra subred para la que IPv6 no está habilitado.
Se produce un error al crear o actualizar la prueba de carga con NSG attached to subnet is not in Succeeded state (ALTVNET006)
El grupo de seguridad de red asociado a la subred no tiene el estado Succeeded
.
Compruebe el estado del grupo de seguridad de red.
Ejecute el siguiente comando de la CLI de Azure para comprobar el estado. El resultado debe ser
Succeeded
.az network nsg show -g MyResourceGroup -n MyNsg
Resuelva los problemas del grupo de seguridad de red. Si acaba de crear el grupo de seguridad de red o la subred, compruebe su estado de nuevo transcurridos unos minutos.
Como alternativa, seleccione otro grupo de seguridad de red.
Se produce un error al crear o actualizar la prueba de carga con Route Table attached to subnet is not in Succeeded state (ALTVNET007)
La tabla de enrutamiento asociada a la subred no tiene el estado Succeeded
.
Compruebe el estado de la tabla de rutas.
Ejecute el siguiente comando de la CLI de Azure para comprobar el estado. El resultado debe ser
Succeeded
.az network route-table show -g MyResourceGroup -n MyRouteTable
Resuelva los problemas con la tabla de rutas. Si acaba de crear la tabla de rutas o la subred, compruebe el estado de nuevo después de unos minutos.
Como alternativa, seleccione otra tabla de rutas.
Se produce un error al crear o actualizar la prueba de carga con Inbound not allowed from AzureLoadTestingInstanceManagement service tag (ALTVNET008)
No se permite el acceso entrante desde la etiqueta de servicio AzureLoadTestingInstanceManagement
a la red virtual.
Siga estos pasos para habilitar el acceso al tráfico para la etiqueta de servicio AzureLoadTestingInstanceManagement
.
Se produce un error al crear o actualizar la prueba de carga con Inbound not allowed from BatchNodeManagement service tag (ALTVNET009)
No se permite el acceso entrante desde la etiqueta de servicio BatchNodeManagement
a la red virtual.
Siga estos pasos para habilitar el acceso entrante para la etiqueta de servicio BatchNodeManagement
.
Se produce un error al crear o actualizar la prueba de carga con Route Table has next hop set for address prefix 0.0.0.0/0
La tabla de rutas de subred tiene el tipo del próximo salto establecido en Aplicación virtual para la ruta 0.0.0.0/0. Esta configuración provocaría el enrutamiento asimétrico de los paquetes de red al aprovisionar las máquinas virtuales en la subred.
Para resolver este error, haga cualquiera de estas dos acciones:
- Use otra subred que no tenga rutas personalizadas.
- Modifique la tabla de rutas de subred y establezca el tipo del próximo salto para la ruta 0.0.0.0/0 en Internet.
Más información sobre el enrutamiento del tráfico de red virtual.
Se produce un error al crear o actualizar la prueba de carga con Subnet is in a different subscription than resource (ALTVNET011)
La red virtual no está en la misma suscripción y región que el recurso de prueba de carga de Azure. Mueva la red virtual de Azure o el recurso de prueba de carga de Azure a la misma suscripción y región o vuelva a crearlos.
Error de aprovisionamiento con An azure policy is restricting engine deployment to your subscription (ALTVNET012)
Una directiva de Azure restringe la implementación del motor de prueba de carga a la suscripción. Compruebe las restricciones de la directiva e inténtelo de nuevo. Si tiene restricciones de directiva en la implementación de la dirección IP pública, el equilibrador de carga de Azure o el grupo de seguridad de red, puede deshabilitar la implementación de estos recursos. Consulte Configuración de la prueba de carga.
Error de aprovisionamiento con Engines could not be deployed due to an error in subnet configuration (ALTVNET013)
Las instancias del motor de prueba de carga no se pudieron implementar por un error en la configuración de la subred. Compruebe la configuración de la subred. Si el problema persiste, abra una incidencia con soporte técnico junto con el identificador de ejecución de la prueba.
Compruebe el estado de la subred.
Ejecute el siguiente comando de la CLI de Azure para comprobar el estado. El resultado debe ser
Succeeded
.az network vnet subnet show -g MyResourceGroup -n MySubnet --vnet-name MyVNet
Resuelva los problemas de la subred. Si acaba de crear la subred, compruebe el estado de nuevo después de unos minutos.
Si el problema persiste, abra una solicitud de soporte técnico al cliente en línea.
En la solicitud de soporte técnico, proporcione el identificador de ejecución de prueba de carga.
Se produce un error al iniciar la prueba de carga con Subnet has {0} free IPs, {1} more free IP(s) required to run {2} engine instance load test (ALTVNET014)
La subred que use para Azure Load Testing debe tener suficientes direcciones IP no asignadas para dar cabida al número de motores de prueba de carga de la prueba.
Siga estos pasos para actualizar la configuración de la subred y aumentar el intervalo de direcciones IP.
Se produce un error al iniciar la prueba de carga con Management Lock is enabled on Resource Group of VNET (ALTVNET015)
Si hay un bloqueo en el grupo de recursos que contiene la red virtual, el servicio no puede insertar las máquinas virtuales del motor de prueba en la red virtual. Quite el bloqueo de administración antes de ejecutar la prueba de carga. Aprenda a configurar bloqueos en Azure Portal.
Se produce un error al iniciar la prueba de carga con Insufficient public IP address quota in VNET subscription (ALTVNET016)
Al iniciar la prueba de carga, Azure Load Testing inserta los siguientes recursos de Azure en la red virtual que contiene el punto de conexión de la aplicación:
- Máquinas virtuales del motor de prueba. Estas máquinas virtuales invocan el punto de conexión de la aplicación durante la prueba de carga.
- Una dirección IP pública.
- Un grupo de seguridad de red (NSG).
- Un equilibrador de carga de Azure.
Asegúrese de que tiene cuota para al menos una dirección IP pública disponible en la suscripción para usarla en la prueba de carga.
Se produce un error al iniciar la prueba de carga con Subnet with name "AzureFirewallSubnet" cannot be used for load testing (ALTVNET017)
La subred AzureFirewallSubnet está reservada y no se puede usar para Azure Load Testing. Seleccione otra subred para la prueba de carga.
Pasos siguientes
- Obtenga más información sobre las situaciones para implementar Azure Load Testing en su red virtual.
- Aprenda a supervisar métricas de aplicación del lado servidor.
Comentarios
https://aka.ms/ContentUserFeedback.
Próximamente: A lo largo de 2024 iremos eliminando gradualmente GitHub Issues como mecanismo de comentarios sobre el contenido y lo sustituiremos por un nuevo sistema de comentarios. Para más información, vea:Enviar y ver comentarios de