Avantages d'Auto Scaling pour l'architecture des applications - Amazon EC2 Auto Scaling

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Avantages d'Auto Scaling pour l'architecture des applications

L'ajout d'Amazon EC2 Auto Scaling à l'architecture de votre application est un moyen de maximiser les avantages du AWS cloud. Lorsque vous utilisez Amazon EC2 Auto Scaling, vos applications bénéficient des avantages suivants :

  • Meilleure tolérance aux pannes. Amazon EC2 Auto Scaling peut détecter le dysfonctionnement d'une instance, la mettre hors service et lancer une instance pour la remplacer. Vous pouvez également configurer Amazon EC2 Auto Scaling pour utiliser plusieurs zones de disponibilité. Si une zone de disponibilité devient indisponible, Amazon EC2 Auto Scaling peut lancer des instances dans une autre pour compenser.

  • Meilleure disponibilité. Amazon EC2 Auto Scaling permet de garantir que votre application dispose toujours de la capacité nécessaire pour répondre à la demande de trafic actuelle.

  • Meilleure gestion des coûts. Amazon EC2 Auto Scaling peut augmenter et diminuer la capacité de manière dynamique selon les besoins. Parce que vous payez pour les EC2 instances que vous utilisez, vous économisez de l'argent en lançant des instances lorsqu'elles sont nécessaires et en les mettant hors service lorsqu'elles ne le sont pas.

Exemple : couvrir la demande variable

Pour démontrer certains des avantages d'Amazon EC2 Auto Scaling, imaginez une application Web de base exécutée sur AWS. Cette application permet aux employés de chercher des salles de conférence qu'ils peuvent utiliser pour des réunions. Au début et à la fin de la semaine, l'utilisation de cette application est minime. Au milieu de la semaine, davantage d'employés planifient des réunions, la demande sur l'application augment donc considérablement.

Le graphique suivant montre l'utilisation de la capacité de l'application sur une semaine.

Un exemple de la demande de capacité sur une application.

Généralement, il existe deux manières d'anticiper ces changements de capacité. La première option consiste à ajouter suffisamment de serveurs pour que l'application ait toujours assez de capacité pour répondre à la demande. L'inconvénient de cette option, cependant, est que l'application n'a pas besoin d'autant de capacité tous les jours. La capacité supplémentaire reste inutilisée et, en substance, augmente le coût de fonctionnement de l'application.

Un exemple montrant en quoi l'achat de plus de capacité que nécessaire peut augmenter les coûts.

La deuxième option consiste à disposer de suffisamment de capacité pour gérer la demande moyenne sur l'application. Cette option est moins onéreuse car vous n'achetez pas d'équipement que vous utiliserez uniquement à l'occasion. Cependant, vous risquez de créer une mauvaise expérience client si la demande sur l'application dépasse sa capacité.

Un exemple montrant en quoi l'achat de moins de capacité que nécessaire peut créer une mauvaise expérience client.

En ajoutant Amazon EC2 Auto Scaling à cette application, vous disposez d'une troisième option. Vous pouvez ajouter de nouvelles instances à l'application uniquement si nécessaire, et la résilier lorsque vous n'en avez plus besoin. Comme Amazon EC2 Auto Scaling utilise des EC2 instances, vous ne devez payer que pour les instances que vous utilisez, au moment où vous les utilisez. Vous disposez désormais d'une architecture rentable qui fournit la meilleure expérience client possible tout en minimisant les dépenses.

Un exemple montrant comment Amazon EC2 Auto Scaling peut ajuster la capacité selon les besoins.

Exemple : architecture d'application web

Dans un scénario d'application web classique, vous exécutez des copies de l'application simultanément pour couvrir le volume du trafic client. Ces multiples copies de votre application sont hébergées sur des EC2 instances identiques (serveurs cloud), chacune traitant les demandes des clients.

Amazon EC2 Auto Scaling gère le lancement et la résiliation de ces EC2 instances en votre nom. Vous définissez un ensemble de critères (tels qu'une CloudWatch alarme Amazon) qui déterminent le moment où le groupe Auto Scaling lance ou arrête les EC2 instances. L'ajout de groupes Auto Scaling à l'architecture de réseau peut aider à rendre l'application plus hautement disponible et tolérante aux pannes.

Architecture de base à trois niveaux avec un groupe Auto Scaling.

Vous pouvez créer autant de groupes Auto Scaling que nécessaire. Par exemple, vous pouvez créer un groupe Auto Scaling pour chaque niveau.

Pour répartir le trafic entre les instances des groupes Auto Scaling, vous pouvez introduire un équilibreur de charge dans l'architecture. Pour de plus amples informations, veuillez consulter Elastic Load Balancing.

Exemple : répartir les instances dans les zones de disponibilité

Les zones de disponibilité sont des emplacements isolés dans une Région AWS donnée. Chaque Région possède plusieurs zones de disponibilité conçues pour fournir une haute disponibilité pour la Région. Les zones de disponibilité sont indépendantes. Par conséquent, vous augmentez la disponibilité des applications lorsque vous concevez votre application de manière à utiliser plusieurs zones. Pour de plus amples informations, veuillez consulter La résilience dans Amazon EC2 Auto Scaling.

Une zone de disponibilité est identifiée par le Région AWS code suivi d'une lettre d'identification (par exemple,us-east-1a). Si vous créez vos sous-réseaux VPC et plutôt que d'utiliser les sous-réseaux par défautVPC, vous pouvez définir un ou plusieurs sous-réseaux dans chaque zone de disponibilité. Chaque sous-réseau doit résider entièrement dans une zone de disponibilité et ne peut pas s'étendre sur plusieurs zones. Pour plus d'informations, consultez le mode de VPC fonctionnement d'Amazon dans le guide de VPC l'utilisateur Amazon.

Lorsque vous créez un groupe Auto Scaling, vous devez choisir les sous-réseaux VPC et dans lesquels vous allez déployer le groupe Auto Scaling. Amazon EC2 Auto Scaling crée vos instances dans les sous-réseaux que vous avez choisis. Chaque instance est ainsi associée à une zone de disponibilité spécifique choisie par Amazon EC2 Auto Scaling. Lorsque les instances sont lancées, Amazon EC2 Auto Scaling essaie de les répartir uniformément entre les zones pour garantir une disponibilité et une fiabilité élevées.

L'image suivante illustre l'architecture multi-niveaux déployée dans trois zones de disponibilité.

Groupe Auto Scaling typique couvrant trois zones de disponibilité.

Distribution des instances

Amazon EC2 Auto Scaling essaie automatiquement de maintenir un nombre équivalent d'instances dans chaque zone de disponibilité activée. Pour ce faire, Amazon EC2 Auto Scaling tente de lancer de nouvelles instances dans la zone de disponibilité avec le moins d'instances possible. Si plusieurs sous-réseaux sont choisis pour la zone de disponibilité, Amazon EC2 Auto Scaling sélectionne un sous-réseau dans la zone de disponibilité de manière aléatoire. Toutefois, si la tentative échoue, Amazon EC2 Auto Scaling tente de lancer les instances dans une autre zone de disponibilité jusqu'à ce qu'elle aboutisse.

Si une zone de disponibilité devient non saine ou indisponible, la distribution des instances peut être inégalement distribuée entre les zones de disponibilité. Lorsque la zone de disponibilité se rétablit, Amazon EC2 Auto Scaling rééquilibre automatiquement le groupe Auto Scaling. Pour ce faire, il lance des instances dans les zones de disponibilité activées avec le moins d'instances et en résiliant des instances ailleurs.

Activités de rééquilibrage

Les activités de rééquilibrage se divisent en deux catégories : le rééquilibrage des zones de disponibilité et le rééquilibrage des capacités.

Rééquilibrage des zones de disponibilité

Après certaines actions, un déséquilibrage du groupe Auto Scaling peut avoir lieu entre les zones de disponibilité. Amazon EC2 Auto Scaling compense en rééquilibrant les zones de disponibilité. Les actions suivantes peuvent entraîner une activité de rééquilibrage :

  • Vous changez les zones de disponibilité associées au groupe Auto Scaling.

  • Vous résiliez ou détachez explicitement des instances ou placez des instances de secours, et cela entraîne le déséquilibrage du groupe.

  • Une zone de disponibilité qui auparavant ne disposait pas de suffisamment de capacité récupère et dispose désormais de capacité supplémentaire.

  • Une zone de disponibilité qui avait précédemment un prix d'instance Spot supérieur à votre prix maximum a désormais un prix d'instance Spot inférieur à votre prix maximum.

Lors du rééquilibrage, Amazon EC2 Auto Scaling lance de nouvelles instances avant de mettre fin aux précédentes. Ainsi, le rééquilibrage ne compromet pas les performances ou la disponibilité de votre application.

Dans la mesure où Amazon EC2 Auto Scaling tente de lancer de nouvelles instances avant de mettre fin aux précédentes, le fait d'atteindre ou de se rapprocher de la capacité maximale spécifiée peut entraver ou complètement arrêter les activités de rééquilibrage.

Pour contourner ce problème, le système peut temporairement dépasser la capacité maximale spécifiée d'un groupe pendant une activité de rééquilibrage. Par défaut, il peut le faire avec une marge de 10 % ou une instance, selon la valeur la plus élevée. La marge est étendue uniquement si le groupe atteint la capacité maximale ou s'en approche et nécessite un rééquilibrage, L'extension dure uniquement le temps de rééquilibrer le groupe (généralement pendant quelques minutes).

Vous pouvez également établir des seuils pour un groupe Auto Scaling en utilisant une politique de maintenance des instances. Le groupe ne peut ainsi augmenter ou diminuer la capacité que dans cette plage de seuils. Ainsi, vous pouvez contrôler la rapidité avec laquelle votre groupe se rééquilibre. Pour de plus amples informations, veuillez consulter Politiques de maintenance des instances.

Rééquilibrage de la capacité

Vous pouvez activer le rééquilibrage des capacités pour vos groupes Auto Scaling lorsque vous utilisez des instances Spot Cela permet à Amazon EC2 Auto Scaling de tenter de lancer une instance Spot chaque fois qu'Amazon EC2 signale qu'une instance Spot présente un risque élevé d'interruption. Dès qu'une nouvelle instance est lancée, une ancienne instance est résiliée. Pour de plus amples informations, veuillez consulter Utiliser le rééquilibrage de la capacité pour gérer les interruptions Spot Amazon EC2.