Équilibrage de charge sur AWS : découvrez les options qui s’offrent à vous

Introduction

Malgré la grande diversité des usages, des plateformes et des technologies, la plupart des applications ont des besoins communs : elles doivent rester en ligne et être protégées contre les défaillances matérielles, pouvoir évoluer pour répondre à la demande et être sécurisées contre les compromissions et les attaques.

Depuis que les applications ont commencé à migrer des ordinateurs centraux vers les systèmes ouverts, les entreprises utilisent des répartiteurs de charge pour gérer l’évolutivité et la disponibilité des applications. Face à des problèmes complexes et à des menaces de sécurité plus sophistiquées, les répartiteurs de charge se sont enrichis de fonctionnalités de sécurité et d’optimisation.

Au fil du temps, le simple répartiteur de charge a évolué pour devenir un puissant contrôleur de mise à disposition d’applications (ADC). Partout dans le monde, des milliers d’organisations s’appuient sur les ADC pour garantir la sécurité, la rapidité et la disponibilité des applications qui rythment notre quotidien. Des services médicaux d’urgence aux services bancaires, en passant par les jeux vidéo et les rencontres en ligne, les ADC fournissent la technologie qui permet aux applications de fonctionner de manière optimale.

À mesure que les applications migrent des modèles traditionnels sur site vers des services cloud, leurs besoins en matière d’évolutivité, de sécurité et de disponibilité ne diminuent pas. Il n’est donc pas surprenant que toutes les plateformes cloud, publiques comme privées, proposent des services d’équilibrage de charge dans le cadre de leurs offres principales d’infrastructure en tant que service (IaaS).

Le service Elastic Load Balancing (ELB) d’Amazon Web Services (AWS) aide les entreprises à déployer des centaines de milliers d’applications, dont certaines figurent parmi les plus importantes sur Internet. Et tout comme les équilibreurs de charge sur site se sont enrichis de fonctionnalités pour répondre aux besoins des clients, les services d’équilibrage de charge d’AWS continuent d’intégrer de nouvelles fonctionnalités.

Bien qu’ELB puisse constituer un excellent choix pour de nombreuses organisations, d’autres ont besoin de fonctionnalités supplémentaires pour prendre en charge au mieux leurs applications critiques. En outre, certaines entreprises ont déjà déployé des contrôleurs de mise à disposition d’applications (ADC) et des équilibreurs de charge afin de faire évoluer et de gérer leurs applications sur site. Pour ces organisations, l’adoption de la même plateforme sur AWS que dans leur centre de données peut réduire la durée, les coûts et les risques d’une migration vers le cloud. Avant de choisir le service d’équilibrage de charge le mieux adapté à votre organisation, examinons les différentes options disponibles sur AWS.

Équilibrage de charge sur AWS

Amazon Web Services propose la gamme de services la plus étendue parmi les principaux fournisseurs d’IaaS, couvrant un très large éventail de fonctionnalités et d’usages, des services de calcul et de stockage par blocs de base aux bases de données avancées et aux environnements d’apprentissage automatique. L’équilibreur de charge est un composant essentiel de nombreuses architectures de clients AWS. AWS propose deux services distincts de ce type (tous deux sous le nom « Elastic Load Balancing ») destinés aux environnements de cloud privé virtuel (VPC).

Équilibreur de charge d’application

L’Application Load Balancer (ALB) d’Amazon assure l’équilibrage de charge, la surveillance de l’état de santé et le routage des requêtes en fonction des URL dans le cloud AWS. ALB prend en charge l’équilibrage de charge pour les protocoles HTTP et HTTPS à l’aide de certificats SSL clients chargés depuis l’un des services de gestion des certificats AWS, ainsi que l’équilibrage de charge du trafic WebSocket. En outre, ALB permet la mise à l’échelle automatique des ressources serveur Elastic Compute Cloud (EC2) du backend : lorsque le trafic augmente, ALB peut déclencher le déploiement de serveurs supplémentaires, puis les supprimer lorsque la demande diminue.

Le service ALB s’adapte également pour absorber une charge supplémentaire. À mesure que le trafic réseau de l’application augmente, des instances ALB supplémentaires sont créées et enregistrées auprès du DNS, puis le trafic est réparti entre les instances ALB selon une rotation DNS (round-robin). Pour garantir des performances optimales en cas de pics de charge soudains, il est recommandé de préchauffer les instances ALB, car le démarrage de nouvelles instances peut prendre entre une et sept minutes.

ALB peut être déployé via la console web, l’interface de ligne de commande (CLI), l’API, des modèles CloudFormation (CFT) et de nombreux outils d’automatisation tels qu’Ansible.

Équilibreur de charge réseau

Le dernier-né de la gamme de services d’équilibrage de charge élastique d’AWS est le Network Load Balancer (NLB). Comme l’équilibreur de charge « classique », il fonctionne au niveau de la couche 4 et propose un équilibrage de charge basé sur les connexions ainsi que des contrôles d’intégrité au niveau du réseau et des applications. Le NLB est conçu pour gérer efficacement les pics de trafic et les volumes élevés de connexions. En outre, il permet d’utiliser comme cibles aussi bien des adresses IP privées conformes à la RFC 1918 que des instances EC2. Les options de mise à l’échelle automatique, d’auto-adaptation et de déploiement sont similaires à celles de l’ALB.

Équilibreur de charge classique

AWS propose également toujours son Elastic Load Balancer « classique », qui prend en charge l’équilibrage de charge de base de couche 4 pour le trafic TCP, mais pas l’équilibrage ni le routage du trafic de couche 7. Les options de mise à l’échelle automatique, d’auto-adaptation et de déploiement sont similaires à celles d’ALB.

ADC virtuel F5 BIG-IP

La plateforme ADC F5® BIG-IP® se situe à l’autre extrémité du spectre de l’équilibrage de charge par rapport à l’équilibreur de charge classique et léger d’AWS. Grâce à un ensemble de fonctionnalités répondant à un très large éventail d’enjeux liés à la sécurité, à l’optimisation des applications et à la disponibilité, BIG-IP peut résoudre des problèmes et gérer un trafic applicatif auxquels des solutions plus simples ne peuvent tout simplement pas faire face.

BIG-IP offre une gestion complète du trafic applicatif, qui comprend l’inspection, le contrôle et la manipulation de l’ensemble du trafic. Cela s’applique aussi bien aux requêtes qu’aux réponses de la couche applicative, ce qui permet de prévenir les pertes de données et de modifier le contenu des réponses du serveur. Cette fonctionnalité s’est révélée être un outil de résolution des problèmes rapide, fiable et précieux pour des milliers d’organisations. En outre, l’inspection et la manipulation programmatiques complètes du trafic applicatif offrent aux développeurs une couche architecturale supplémentaire permettant d’améliorer le comportement des applications à un point de contrôle stratégique critique.

BIG-IP vs. ELB : différences en matière de gestion

Toutes ces capacités programmables de résolution des problèmes s’accompagnent de certaines contraintes qu’il convient de prendre en compte. Tout d’abord, BIG-IP fonctionne à un niveau d’infrastructure différent de celui de l’équilibreur de charge classique d’AWS et de l’ALB. BIG-IP est déployé sous forme d’instance EC2 au sein de votre VPC, ce qui présente à la fois des avantages et des inconvénients. Son intégration au VPC permet à l’ADC de gérer efficacement le trafic entre tous les composants d’une zone de disponibilité et vous offre un contrôle étendu sur les communications entre les composants du VPC.

Dans le même temps, cela crée des instances EC2 supplémentaires à administrer et à maintenir. La haute disponibilité de ce qui deviendra un composant critique pour l’activité — bien que facile à configurer — relève désormais de votre responsabilité. La gestion de la plateforme sous-jacente, notamment les mises à jour logicielles et l’administration générale, n’est pas assurée par AWS, mais par le client. Quant aux nouvelles fonctionnalités, elles sont fournies par le biais de nouvelles versions publiées sur AWS Marketplace, contrairement aux mises à niveau de service qui s’effectuent de manière pratiquement transparente.

Enfin, BIG-IP peut être mis à l’échelle à la demande et ajuster automatiquement le nombre d’instances de serveurs d’applications, mais, par rapport à l’utilisation d’un service AWS principal, une plus grande part des efforts de configuration incombera presque inévitablement au client.

Quel équilibreur de charge me convient le mieux ?

Le choix de la solution adaptée à votre organisation dépend essentiellement des besoins de vos applications et de votre plateforme. Certaines applications et certains cas d’usage sont parfaitement adaptés à AWS ELB, tandis que d’autres nécessitent les fonctionnalités avancées de BIG-IP.

Équilibrage de charge élastique AWS

ALB est conçu pour les applications nécessitant un équilibrage de charge simple, assorti de quelques règles élémentaires de mappage des URI vers les destinations. ALB répond aux besoins essentiels de répartition du trafic et de mise à l’échelle de nombreuses applications natives AWS. Lorsque les développeurs ou les fournisseurs d’applications sont en mesure de corriger rapidement les problèmes de sécurité ou de fonctionnalité — ou lorsque le risque global de compromission de la sécurité est plus faible — ALB constitue un choix évident.

Pour les applications similaires utilisant d’autres protocoles TCP et nécessitant des services d’équilibrage de charge robustes mais simples, l’équilibreur de charge classique sera souvent suffisant.

Répartition de charge BIG-IP

Dans d’autres cas d’usage, une organisation peut préférer tirer parti de la puissance d’un contrôleur de mise à disposition d’applications (ADC) complet sur AWS. L’utilisation de BIG-IP sur AWS offre notamment les avantages suivants :

  • Sécurité renforcée
  • Meilleur contrôle du trafic
  • Optimisation du trafic
  • Véritable programmabilité de la couche applicative

L’architecture de la plateforme BIG-IP vous offre une visibilité complète sur le trafic applicatif ainsi qu’un contrôle total de celui-ci. Grâce à son large éventail de fonctionnalités, une instance BIG-IP dans votre environnement AWS met à votre disposition de puissants outils pour résoudre les problèmes de performances, de sécurité ou de disponibilité des applications. BIG-IP peut acheminer chaque requête de la couche applicative vers n’importe quelle ressource routable, qu’il s’agisse d’une instance EC2 locale, d’une instance de serveur dans un autre cloud, d’un service accessible via une API ou d’un appareil sur site.

Par exemple, ALB peut acheminer le trafic vers les ressources back-end en fonction de l’URL demandée. Toutefois, si vous devez l’acheminer selon des critères plus complexes, tels que le type d’appareil, la vitesse de connexion ou la localisation du client, BIG-IP est mieux adapté à cette tâche.

Cette capacité avancée de résolution des problèmes devient particulièrement pertinente lorsque des applications d’entreprise sont migrées vers le cloud ou lorsque les développeurs ne sont pas immédiatement disponibles pour corriger les vulnérabilités ou les problèmes de comportement des applications. Lorsque votre application doit être protégée de toute urgence, présente des dysfonctionnements avec un nouveau type de client (voire à la suite d’un changement de système d’exploitation client) ou plante lors de certaines requêtes, BIG-IP offre souvent une solution rapide, simple et fiable.

Un autre facteur important est la nécessité d’assurer une cohérence entre le centre de données et le cloud. Des milliers d’organisations s’appuient sur des dispositifs BIG-IP pour fournir des applications critiques dans leurs centres de données. AWS BIG-IP Virtual Edition offre sur AWS les mêmes services de couche applicative qu’un dispositif BIG-IP physique dans un centre de données. Grâce à BIG-IP VE, les organisations peuvent migrer leurs applications plus rapidement, à moindre coût et avec davantage de confiance, tandis que le personnel peut concentrer ses efforts de reconversion sur d’autres domaines, tout en préservant les connaissances de l’organisation et les investissements réalisés dans BIG-IP.

Options de déploiement

En tant que service natif, AWS ELB se déploie aussi simplement qu’en cochant une case. Pour mettre en service une instance BIG-IP VE sur AWS, il faut la déployer depuis Amazon Marketplace en optant soit pour une facturation à l’usage, soit pour un modèle BYOL (« apportez votre propre licence »). Le déploiement de l’image BIG-IP peut être géré manuellement ou à l’aide d’options d’automatisation telles que les modèles AWS CFT. F5 propose plusieurs modèles entièrement pris en charge, ainsi que quelques modèles « expérimentaux ». Ceux-ci sont disponibles dans le dépôt GitHub de F5, qui contient également un SDK Python et d’autres outils. D’autres outils de déploiement, playbooks et documents pris en charge par la communauté sont disponibles dans le dépôt F5 DevCentral.

Conclusion

AWS ELB et F5 BIG-IP offrent tous deux une valeur ajoutée indéniable aux entreprises qui déploient des applications sur AWS. Savoir quand et où vous pourriez avoir besoin de davantage de contrôle, de sécurité ou de programmabilité peut vous aider à choisir la solution adaptée pour prendre en charge vos applications — et votre activité — dans le cloud.

PUBLIÉ LE 3 NOVEMBRE 2017