Tester des points de terminaison privés en déployant le Test de charge Azure dans un réseau virtuel Azure
Dans cet article, découvrez comment tester des points de terminaison d’application privés avec Test de charge Azure. Vous allez créer une ressource Test de charge Azure et l’activer pour générer la charge à partir de votre réseau virtuel (injection de réseau virtuel).
Cette fonctionnalité permet les scénarios d’utilisation suivants :
- Générez la charge sur un point de terminaison déployé dans un réseau virtuel Azure.
- Générez une charge sur un point de terminaison public avec des restrictions d’accès, comme la restriction des adresses IP du client.
- Générez la charge sur un service local, non accessible publiquement, qui est connecté à Azure via ExpressRoute.
En savoir plus sur les scénarios de déploiement du Test de charge Azure dans votre réseau virtuel.
Le schéma suivant donne un aperçu technique :
Lorsque vous démarrez le test de charge, le service Test de charge Azure injecte les ressources Azure suivantes dans le réseau virtuel qui contient le point de terminaison d’application :
- Machines virtuelles du moteur de test. Ces machines virtuelles appellent votre point de terminaison d’application pendant le test de charge.
- Adresse IP publique.
- Un groupe de sécurité réseau (NSG).
- Une instance Azure Load Balancer.
Ces ressources sont éphémères et existent uniquement pendant l’exécution du test de charge. Si vous avez des restrictions sur le déploiement d’une adresse IP publique, d’un équilibreur de charge Azure ou d’un groupe de sécurité réseau dans votre sous-réseau, vous pouvez désactiver le déploiement de ces ressources. Pour plus d’informations, consultez Configurer votre charge de test.
Si vous limitez l’accès à votre réseau virtuel, vous devez configurer votre réseau virtuel pour permettre la communication entre ces tests de charge Azure et les machines virtuelles injectées.
Prérequis
- Votre compte Azure a le rôle Contributeur de réseaux, ou un parent de ce rôle, dans le réseau virtuel. Consultez Vérifier l’accès d’un utilisateur aux ressources Azure pour vérifier vos autorisations.
- Le sous-réseau que vous utilisez pour le Test de charge Azure doit avoir suffisamment d’adresses IP non attribuées pour prendre en charge le nombre de moteurs de test de charge pour votre test. En savoir plus sur la configuration de votre test pour une charge à grande échelle.
- Le sous-réseau ne doit pas être délégué à un autre service Azure. Par exemple, il ne doit pas être délégué à Azure Container Instances (ACI). En savoir plus sur la délégation de sous-réseau.
- IPv6 ne doit pas être activé dans le sous-réseau. Test de charge Azure ne prend pas en charge les sous-réseaux où IPv6 est activé. En savoir plus sur [IPv6 pour Azure Virtual Network].(/azure/virtual-network/ip-services/ipv6-overview)
- Azure CLI version 2.2.0 ou ultérieure (si vous utilisez CI/CD). Exécutez
az --version
pour rechercher la version installée sur votre ordinateur local. Si vous devez installer ou mettre à niveau Azure CLI, consultez Installer Azure CLI 2.0.
Configurer un réseau virtuel
Pour tester des points de terminaison privés, vous connectez Test de charge Azure à un réseau virtuel Azure. Le réseau virtuel doit avoir au moins un sous-réseau et autoriser le trafic sortant vers le service Test de charge Azure.
Si vous n’avez pas encore de réseau virtuel, procédez comme suit pour créer un réseau virtuel Azure dans le Portail Azure.
Important
Le réseau virtuel doit se trouver dans le même abonnement et la même région que la ressource de test de charge.
Créer un sous-réseau
Lorsque vous déployez le Test de charge Azure dans votre réseau virtuel, il est recommandé d’utiliser des sous-réseaux séparés pour le Test de charge Azure et le point de terminaison de l’application. Cette approche vous permet de configurer spécifiquement les stratégies de l’accès au trafic réseau pour chaque objectif. En savoir plus sur l’ajout d’un sous-réseau à un réseau virtuel.
(Facultatif) Configurer des règles de trafic
Test de charge Azure nécessite que les machines virtuelles injectées dans votre réseau virtuel disposent d’un accès sortant au service Test de charge Azure. Par défaut, lorsque vous créez un réseau virtuel, l’accès sortant est déjà autorisé.
Si vous envisagez de restreindre davantage l’accès à votre réseau virtuel avec un groupe de sécurité réseau ou si vous disposez déjà d’un groupe de sécurité réseau, vous devez configurer une règle de sécurité sortante pour autoriser le trafic des machines virtuelles du moteur de test vers le service Test de charge Azure.
Pour configurer l’accès sortant pour le Test de charge Azure :
Connectez-vous au portail Azure.
Accédez à votre groupe de sécurité réseau.
Si vous n’avez pas encore de groupe de sécurité réseau, suivez ces étapes pour créer un groupe de sécurité réseau.
Créez le groupe de sécurité réseau dans la même région que votre réseau virtuel et associez-le à votre sous-réseau.
Sélectionnez Règles de sécurité sortantes dans le volet de navigation de gauche.
Sélectionnez + Ajouter pour ajouter une nouvelle règle de sécurité sortante. Entrez les informations suivantes pour créer une règle.
Champ Valeur Source N’importe lequel/laquelle Plages de ports source * Destination N’importe lequel/laquelle Plages de ports de destination * Nom azure-load-testing-outbound Description Utilisé pour diverses opérations impliquées dans l’orchestration d’un test de charge. Sélectionnez Ajouter pour ajouter la règle de sécurité sortante au groupe de sécurité réseau.
Configurer votre script de test de charge
Les machines virtuelles du moteur de test, qui exécutent le script JMeter, sont injectées dans le réseau virtuel qui contient le point de terminaison de l’application. Vous pouvez désormais faire référence directement au point de terminaison dans le fichier JMX à l’aide de l’adresse IP privée ou utiliser la résolution de noms dans votre réseau.
Par exemple, pour un point de terminaison avec l’adresse IP 10.179.0.7, dans un réseau virtuel avec une plage de sous-réseau 10.179.0.0/18, le fichier JMX peut avoir ces informations :
<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>
Configurer votre test de charge :
Pour inclure des points de terminaison hébergés en privé dans votre test de charge, vous devez configurer les paramètres du réseau virtuel pour le test de charge. Vous pouvez configurer les paramètres du réseau virtuel dans le Portail Azure ou les spécifier dans le fichier de configuration de test YAML pour les pipelines CI/CD.
Important
Lorsque vous déployez le test de charge Azure dans un réseau virtuel, vous aurez des frais supplémentaires. Le Test de charge Azure déploie un Azure Load Balancer et une adresse IP publique dans votre abonnement, et il peut y avoir un coût pour le trafic généré. Pour plus d’informations, consultez les Informations de tarification des réseaux virtuels.
Configurer le réseau virtuel dans le Portail Azure
Vous pouvez spécifier les paramètres de configuration du réseau virtuel dans l’Assistant Création/mise à jour du test de charge.
Connectez-vous au Portail Azure à l’aide des informations d’identification de votre abonnement Azure.
Accédez à votre ressource de Test de charge Azure, puis, dans le volet gauche, sélectionnez Tests.
Ouvrez l’Assistant Création/mise à jour du test de charge de deux façons :
Sélectionnez + Créer > un script JMeter, si vous souhaitez créer un nouveau test.
Sélectionnez un test existant à partir de la liste, puis sélectionnez Modifier.
Sous l’onglet Charger, sélectionnez le mode de trafic Privé, puis votre réseau virtuel et votre sous-réseau.
Si vous avez plusieurs sous-réseaux dans votre réseau virtuel, veillez à sélectionner le sous-réseau qui hébergera les machines virtuelles du moteur de test injecté.
Important
Vérifiez que vous disposez des autorisations suffisantes pour gérer des réseaux virtuels. Vous avez besoin du rôle de Contributeur de réseau.
(Facultatif) Cochez la case Désactiver le déploiement d’adresses IP publiques si vous ne souhaitez pas déployer d’adresse IP publique, d’équilibreur de charge et de groupe de sécurité réseau dans votre sous-réseau.
Lorsque vous sélectionnez cette option, assurez-vous qu’il existe un autre mécanisme comme la passerelle NAT Azure, le Pare-feu Azure ou une appliance virtuelle réseau (NVA) pour activer le routage du trafic sortant à partir du sous-réseau.
Passez en revue ou remplissez les informations de test de charge. Suivez ces étapes pour créer ou gérer un test.
Sélectionnez Vérifier + créer, puis Créer (ou Appliquer, lors de la mise à jour d’un test existant).
Lorsque le test de charge démarre, le Test de charge Azure injecte les machines virtuelles du moteur de test dans votre réseau virtuel et votre sous-réseau. Le script de test peut désormais accéder au point de terminaison d’application hébergé en privé dans votre réseau virtuel.
Configurer le réseau virtuel pour les pipelines CI/CD
Pour configurer le test de charge avec vos paramètres de réseau virtuel, mettez à jour le fichier de configuration du test YAML.
Ouvrez un terminal et utilisez Azure CLI pour vous connecter à votre abonnement Azure :
az login az account set --subscription <your-Azure-Subscription-ID>
Récupérez l’ID de sous-réseau et copiez la valeur résultante :
az network vnet subnet show -g <your-resource-group> --vnet-name <your-vnet-name> --name <your-subnet-name> --query id
Ouvrez votre fichier de configuration de test YAML dans votre éditeur favori.
Ajoutez la propriété
subnetId
au fichier de configuration et fournissez l’ID de sous-réseau que vous avez copié précédemment :version: v0.1 testName: SampleTest testPlan: SampleTest.jmx description: 'Load test the website home page' engineInstances: 1 subnetId: <your-subnet-id> publicIPDisabled: False
Si vous le souhaitez, vous pouvez définir la propriété
publicIPDisabled
surTrue
. Pour plus d’informations sur la configuration YAML, consultez la documentation de référence YAML sur la configuration de test.Important
Vérifiez que vous disposez des autorisations suffisantes pour gérer des réseaux virtuels. Vous avez besoin du rôle de Contributeur de réseau.
Enregistrez le fichier de configuration YAML et validez vos modifications dans le référentiel de code source.
Une fois les déclencheurs de flux de travail CI/CD déclenchés, votre test de charge démarre et peut désormais accéder au point de terminaison d’application hébergé en privé dans votre réseau virtuel.
Dépannage
Pour résoudre les problèmes de création et d’exécution de tests de charge sur des points de terminaison privés, consultez Comment résoudre les problèmes de tests de point de terminaison privé.
Étapes suivantes
- En savoir plus sur les scénarios de déploiement du Test de charge Azure dans un réseau virtuel.
- Découvrez comment résoudre les problèmes de tests de point de terminaison privé.