Note :

Mesurer l'incidence de la latence d'Oracle Cloud Infrastructure Web Application Firewall sur Oracle Cloud Infrastructure Load Balancer

Présentation

Dans ce tutoriel, nous étudions l'incidence sur la performance d'Oracle Cloud Infrastructure Web Application Firewall (OCI WAF) sur un équilibreur de charge OCI à l'aide de Siege, un outil de test de charge HTTP(s) haute performance.

En exécutant des tests de siège sur l'équilibreur de charge OCI avec et sans OCI WAF activé, nous mesurons les mesures clés de performance telles que la latence, le débit, le taux de transaction et l'accès simultané. L'objectif est de comprendre les frais généraux introduits par OCI WAF et de déterminer ses compromis entre sécurité et performance.

Cette analyse comparative permettra de déterminer si l'activation du service WAF pour OCI a une incidence importante sur les temps de réponse et si les avantages d'une sécurité accrue l'emportent sur le coût de la performance dans un environnement à trafic élevé.

Présentation

Dans ce tutoriel, nous déploierons un équilibreur de charge OCI privé avec un pare-feu d'application Web WAF OCI régional attaché pour analyser son incidence sur la latence. L'architecture se compose de :

Pourquoi ce tutoriel est-il essentiel?

La sécurité et la performance sont deux facteurs cruciaux dans les applications en nuage modernes. Alors qu'OCI WAF contribue à la protection contre les cybermenaces, il peut introduire une latence supplémentaire qui a une incidence sur l'expérience utilisateur. Il est essentiel de comprendre l'incidence du service WAF pour OCI sur la performance d'un équilibreur de charge OCI avec TLS de bout en bout pour les architectes et les ingénieurs, afin d'optimiser la sécurité et la réactivité.

Ce tutoriel fournit une approche pratique pour mesurer la latence induite par le service WAF pour OCI. Pour plus d'informations sur le service WAF pour OCI, voir Service WAF pour OCI.

À quoi sert Oracle Cloud Infrastructure Flexible Network Load Balancer?

Un équilibreur de charge flexible dans OCI est un service entièrement géré qui répartit automatiquement le trafic HTTP, HTTPS et TCP sur plusieurs serveurs dorsaux. Il offre une évolutivité, une haute disponibilité et une gestion du trafic sans intervention manuelle. L'équilibreur de charge de réseau flexible OCI peut être facilement configuré avec la terminaison SSL/TLS, l'intégration OCI WAF et les fonctions de routage avancées pour répondre aux besoins des applications modernes. Pour plus d'informations, voir Équilibreur de charge de réseau flexible d'Oracle Cloud Infrastructure Flexible Network Load Balancer.

Architecture

Cette conception architecturale illustre une machine virtuelle client basée sur l'utilitaire de référence Siege HTTPS, qui se connecte à un équilibreur de charge privé qui attachera un pare-feu d'application Web WAF OCI local/région, avec trois serveurs dorsaux Apache Tomcat différents utilisant HTTPS également. Nous allons tester l'équilibreur de charge avec et sans OCI WAF.

Architecture

Public cible

Ce tutoriel s'adresse aux architectes en nuage, aux ingénieurs DevOps et aux professionnels de la sécurité travaillant avec l'équilibreur de charge OCI et le service WAF pour OCI. Si vous avez besoin d'optimiser la sécurité sans compromettre les performances, vous pouvez utiliser ce tutoriel.

Objectifs

Préalables

Tâche 1 : Déployer le composant de réseau (VCN, sous-réseaux, équilibreur de charge OCI et pare-feu d'application Web (WAF) OCI)

  1. Déployez un réseau en nuage virtuel (VCN) avec au moins trois sous-réseaux (siège, équilibreur de charge et WebTier) dans votre location, à l'aide d'un bloc CIDR IPv4 CIDR de votre choix ou en suivant l'architecture recommandée. Pour plus d'informations, voir :

  2. Déployez un équilibreur de charge de réseau flexible OCI avec WAF dans le sous-réseau de l'équilibreur de charge OCI. Pour plus d'informations, voir :

Pour ce test, nous avons chargé la politique WAF OCI avec au moins 300 règles de protection recommandées comme suit :

Règles de protection WAF

Tâche 2 : Déployer les machines virtuelles dans les sous-réseaux à des fins de test

Nous devons déployer l'image Oracle Linux 9 pour installer l'outil de référence HTTP appelé Siege ainsi que Apache Tomcat en tant que serveurs dorsaux plus tard.

Reportez-vous à cette documentation pour créer une machine virtuelle : Déploiement de l'instance OCI

Vous devrez déployer une machine virtuelle pour le siège dans le sous-réseau client.

Tâche 3 : Installer Siege sur Oracle Linux

  1. Activer les ensembles supplémentaires pour le référentiel Enterprise Linux (EPEL) dans Oracle Linux. Pour plus d'informations, voir Comment activer le référentiel EPEL sur Oracle Linux 8/9.

  2. Exécutez la commande suivante en tant que racine pour installer Siege.

    yum install siege
    

    installation de Siege

  3. Exécutez la commande suivante pour vérifier la version Siege.

    siege -v
    

    Vous devriez voir la version Siege actuelle ainsi que d'autres commandes d'aide.

Tâche 4 : Installer Apache Tomcat sur Oracle Linux

À ce stade, nous disposons d'un équilibreur de charge de réseau flexible OCI sans serveurs dorsaux configurés. Maintenant, nous allons installer la version Linux d'Apache Tomcat sur Oracle Linux 8 ou 9.

  1. Déployez deux ou trois machines virtuelles linux dans le sous-réseau privé Web. Pour plus d'informations, voir Déploiement de l'instance OCI.

  2. Installez le serveur Web Apache dans ces machines virtuelles. Pour plus d'informations, voir Installer le serveur Web Apache et Installation de Tomcat sur Oracle Linux dans Oracle Cloud.

  3. Une fois que les serveurs Web Apache sont en cours d'exécution, assurez-vous que le sous-réseau de l'équilibreur de charge OCI peut atteindre le sous-réseau privé Web, ce qui autorise le trafic HTTPS vers le sous-réseau privé Web (port 443) à partir du sous-réseau de l'équilibreur de charge OCI. Maintenant, pour ajouter les serveurs dorsaux, consultez l'étape 8 de la tâche 3 : Configurer l'équilibreur de charge OCI.

  4. Allez à la console OCI, naviguez jusqu'à Réseau, Équilibreurs de charge, Équilibreur de charge, Détails de l'équilibreur de charge, Jeux dorsaux, Détails du jeu dorsal et cliquez sur Serveurs dorsaux. Vous devriez voir deux serveurs dorsaux.

    Serveurs Bacnend

    Maintenant, testez la performance de l'équilibreur de charge OCI avec et sans le service WAF pour OCI.

Tâche 5 : Analyse de référence du siège – Performance de l'équilibreur de charge OCI avec et sans OCI WAF

Maintenant que l'équilibreur de charge OCI et le service WAF pour OCI sont configurés avec les serveurs dorsaux, nous devons effectuer quelques étapes initiales pour permettre à Siege de travailler sur des connexions HTTPS.

Nous avons utilisé un certificat d'autorité de certification de laboratoire pour signer les certificats de serveur installés sur l'équilibreur de charge OCI et les serveurs dorsaux. Toutefois, nous n'avons besoin de nous concentrer que sur le certificat du serveur de l'équilibreur de charge OCI, car celui-ci mettra fin à la connexion TLS et établira une deuxième connexion TLS aux serveurs dorsaux. Cette deuxième connexion est transparente pour Siege (le client).

Par exemple, votre fichier de certificat AC est appelé my-ca.crt :

  1. Chargez my-ca.cert sur votre machine Linux et exécutez la commande sudo cp my-ca.crt /etc/pki/ca-trust/source/anchors/. L'autorité de certification sera copiée dans le magasin d'autorité de certification approuvé.

  2. Exécutez la commande suivante pour mettre à jour le magasin d'autorités de certification approuvé.

    sudo update-ca-trust extract
    

    ou si vous utilisez Oracle Linux 9,

    sudo update-ca-trust
    
  3. Exécutez la commande suivante pour vérifier l'installation.

    openssl verify /etc/pki/ca-trust/source/anchors/my-ca.crt
    

    et répertorier tous les certificats approuvés.

    trust list | grep "my-ca"
    
  4. Désormais, lorsque Siege se connecte à l'équilibreur de charge OCI au moyen du protocole HTTPS, il peut vérifier le certificat reçu. Nous utilisons www.fwtest.com comme nom commun (CN) et nom de remplacement de sujet (SAN).

    Comme nous n'utilisons pas de DNS privé, il suffit d'ajouter l'entrée suivante à votre fichier Linux /etc/hosts :

    Adresse IP privée LB www.fwtest.com

    Par exemple :

    127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4\
    ::1         localhost localhost.localdomain localhost6 localhost6.localdomain6\
    192.168.4.99 linux9-siege-intravcntest-v2.siegesubnet.vcn1inter.oraclevcn.com linux9-siege-intravcntest-v2\
    192.168.6.237  www.fwtest.com  <--- Add this entry
    
  5. Pour obtenir l'adresse IP privée de votre équilibreur de charge, naviguez jusqu'à Réseau, Équilibreurs de charge, Équilibreur de charge et cliquez sur Détails de l'équilibreur de charge.

    installation de Siege

  6. Si vous voulez tester la connexion TLS, y compris le certificat du serveur de l'équilibreur de charge OCI que vous avez installé précédemment, exécutez la commande suivante :

    openssl s_client -connect www.fwtest.com:443 -tls1_2
    

    Vous obtiendrez quelque chose comme :

    Vérification de connexion LB

  7. Faites un premier test avec Siege, 250 clients HTTPS simultanés utilisant des tailles d'en-tête HTTP aléatoires.

    siege -c 250  -t1m --header="User-Agent: $(head -c 500 </dev/urandom | base64)"  https://www.fwtest.com/request.php
    
    Lifting the server siege...\
    Transactions:              237238    hits\
    Availability:                 100.00 %\
    Elapsed time:                  60.79 secs\
    Data transferred:             192.67 MB\
    **Response time:                 27.81 ms**\
    **Transaction rate:            3902.58 trans/sec**\
    **Throughput:                     3.17 MB/sec**\
    Concurrency:                  108.51\
    **Successful transactions:   237421**\
    Failed transactions:            0\
    Longest transaction:          440.00 ms\
    Shortest transaction:           0.00 ms\
    

    Maintenant, exécutez la même commande sans OCI WAF.

    Lifting the server siege...
    Transactions:              238843    hits\
    Availability:                 100.00 %\
    Elapsed time:                  60.54 secs\
    Data transferred:             193.98 MB\
    **Response time:                 17.97 ms**\
    **Transaction rate:            3945.21 trans/sec**\
    **Throughput:                     3.20 MB/sec**\
    Concurrency:                   70.88\
    **Successful transactions:   239018**\
    Failed transactions:            0\
    Longest transaction:          540.00 ms\
    Shortest transaction:           0.00 ms\
    

Incidence sur la performance d'OCI WAF (référence de siège)

Comparaison des mesures clés :

Mesure Avec OCI WAF Sans OCI WAF Incidence
Transactions 237,238 238,843 -1,605 (-0.67%)
Disponibilité (%) 100 100 Aucune modification
Temps écoulé (s) 60.79 60.54 +0.25s
Données transférées (Mo) 192.67 193.98 -1.31 MO (-0.68%)
Temps de réponse (ms) 27.81 17.97 +9.84 ms (+54.8%)
Taux de transaction (trans/s) 3,902.58 3,945.21 -42,63 trans/sec (-1,08 %)
Débit (Mo/s) 3.17 3.2 -0.03 Mo par seconde (-0.94%)
Concurrence 108.51 70.88 +37,63 (53,1 % de plus avec OCI WAF)

Observations et points à retenir :

Conclusion

Note: The test results obtained using Siege depend highly on various factors, including network conditions, hardware/software configurations, and software settings specific to your environment. As such, these results may differ significantly from those in other environments. Do not use these results to make any definitive conclusions about the expected performance of your network or equipment. They should be considered as indicative rather than absolute measures of performance.

Remerciements

Autres ressources d'apprentissage

Explorez d'autres laboratoires sur le site docs.oracle.com/learn ou accédez à plus de contenu d'apprentissage gratuit sur le canal Oracle Learning YouTube. De plus, visitez education.oracle.com/learning-explorer pour devenir un explorateur Oracle Learning.

Pour obtenir la documentation sur le produit, visitez Oracle Help Center.