Groupe Auto Scaling pour votre environnement Elastic Beanstalk - AWS Elastic Beanstalk

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.

Groupe Auto Scaling pour votre environnement Elastic Beanstalk

Votre AWS Elastic Beanstalk environnement inclut un groupe Auto Scaling qui gère les instances Amazon EC2 de votre environnement. Dans un environnement à instance unique, le groupe Auto Scaling s'assure qu'il y a toujours une instance en cours d'exécution. Dans un environnement à charge équilibrée, vous configurez le groupe avec une gamme d'instances à exécuter et l'Auto Scaling ajoute ou supprime les instances en fonction de la charge requise par vos besoins.

Le groupe Auto Scaling applique également la configuration de lancement pour les instances de votre environnement. Vous pouvez modifier la configuration de lancement pour modifier le type d'instance, la paire de clés, le stockage Amazon Elastic Block Store (Amazon EBS) et autres paramètres qui ne peuvent être configurés que lorsque vous lancez une instance.

Le groupe Auto Scaling utilise deux CloudWatch alarmes Amazon pour déclencher des opérations de dimensionnement. Les déclencheurs par défaut évoluent quand le trafic réseau sortant moyen de chaque instance est supérieur à 6 Mio ou inférieur à 2 Mio sur une période de cinq minutes. Pour utiliser Auto Scaling de façon efficace, configurez des déclencheurs adaptés à votre application, au type d'instance et aux exigences du service. Vous pouvez mettre à l'échelle en fonction de plusieurs statistiques, y compris la latence, les I/O disque, l'utilisation de l'UC et le nombre de demandes.

Pour optimiser l'utilisation des instances Amazon EC2 de votre environnement à travers les périodes prévisibles de trafic de pointe, configurez votre groupe Auto Scaling pour modifier son nombre d'instances sur un calendrier. Vous pouvez planifier les modifications apportées à la configuration de votre groupe qui se produisent de manière quotidienne ou hebdomadaire, ou planifier des modifications exceptionnelles pour préparer les événements marketing qui génèreront un trafic important sur votre site.

En option, Elastic Beanstalk peut combiner des instances à la demande et des instances Spot pour votre environnement. Vous pouvez configurer Amazon EC2 Auto Scaling pour surveiller et réagir automatiquement aux modifications qui affectent la disponibilité de vos instances Spot en activant Rééquilibrage de capacité.

La scalabilité automatique surveille l'état d’intégrité de chaque instance Amazon EC2 qu'il lance. Si une instance est résiliée de façon inattendue, Auto Scaling détecte cette résiliation et lance une instance de remplacement. Pour configurer le groupe afin d'utiliser le mécanisme de vérification de l'état d'intégrité de l'équilibreur de charge, consultez Paramètre de vérification de l'état Auto Scaling.

Vous pouvez configurer Auto Scaling pour votre environnement à l'aide de la console Elastic Beanstalk, de l'interface de ligne de commande (CLI) EB, ou des options de configuration.

Prise en charge d'une instance Spot

Pour tirer parti des instances Spot Amazon EC2, vous pouvez activer une option Spot pour votre environnement. Le groupe Auto Scaling de votre environnement combine ensuite des options d'achat Amazon EC2 et gère un mélange d'instances à la demande et d'instances Spot.

Cette rubrique décrit les méthodes suivantes pour activer les demandes d'instance Spot pour votre environnement :

Important

La demande d'instances Spot peut varier considérablement d'un instant à l'autre, de même que la disponibilité d'instances Spot peut aussi considérablement fluctuer selon le nombre d'instances Amazon EC2 inutilisées disponibles. Par ailleurs, votre instance Spot est susceptible d'être interrompue.

Pour réduire l'impact de ces interruptions sur votre application, vous pouvez activer l'option Rééquilibrage de capacité offerte avec Amazon EC2 Auto Scaling. Lorsque cette fonction est activée, EC2 tente automatiquement de remplacer les instances Spot d'un groupe Auto Scaling avant qu'elles ne soient interrompues. Pour activer cette fonction, configurez le groupe Auto Scaling dans la console Elastic Beanstalk Vous pouvez également définir la valeur de l'option de configuration EnableCapacityRebalancing Elastic Beanstalk sur truedans l'espace de noms aws:autoscaling:asg.

Pour plus d'informations, consultez Capacity Rebalancing dans le guide de l'utilisateur Amazon EC2 Auto Scaling et Spot Instance Interruptions dans le guide de l'utilisateur Amazon EC2.

Elastic Beanstalk propose plusieurs options de configuration pour la prise en charge de la fonction Spot. Ces options sont abordées dans les sections suivantes qui expliquent la configuration de votre groupe Auto Scaling.

Deux de ces options, dans l'espace de noms aws:ec2:instances, méritent une attention toute particulière :

  • SpotFleetOnDemandBase

  • SpotFleetOnDemandAboveBasePercentage

Ces deux options sont en corrélation avec l'option MinSize de l'espace de nom aws:autoscaling:asgaws:autoscaling:asg :

  • Seule MinSize détermine la capacité initiale de votre environnement, c'est-à-dire le nombre d'instances que vous souhaitez exécuter au minimum.

  • SpotFleetOnDemandBase n'affecte pas la capacité initiale. Si Spot est activé, cette option ne détermine que le nombre d'instances à la demande allouées avant la prise en compte des instances Spot.

  • Imaginez quand SpotFleetOnDemandBase est inférieur à MinSize. Vous aurez toujours exactement MinSize instances comme capacité initiale. Au moins SpotFleetOnDemandBase d'entre elles doivent être des instances à la demande.

  • Imaginez que SpotFleetOnDemandBase est supérieur à MinSize. À mesure de la mise à l'échelle de votre environnement, vous êtes assuré d'obtenir au minimum une quantité d'instances supplémentaires égale à la différence entre les deux valeurs. Autrement dit, vous êtes assuré d'obtenir au moins (SpotFleetOnDemandBase - MinSize) instances supplémentaires qui sont à la demande avant de satisfaire à l'exigence SpotFleetOnDemandBase.

Dans les environnements de production, les instances Spot sont particulièrement utiles dans le cadre d'un environnement scalable et à charge équilibrée. Nous ne recommandons pas d'utiliser Spot dans un environnement à instance unique. Si les instances Spot ne sont pas disponibles, vous risquez de perdre toute la capacité (une instance unique) de votre environnement. Vous pouvez toujours souhaiter utiliser une instance Spot dans un environnement à instance unique pour le développement ou le test. Dans ce cas, assurez-vous de définir l SpotFleetOnDemandBase et SpotFleetOnDemandAboveBasePercentage à zéro. Tout autre paramétrage donne lieu à une instance à la demande.

Remarques
  • Certains AWS comptes plus anciens peuvent fournir à Elastic Beanstalk des types d'instances par défaut qui ne prennent pas en charge les instances Spot (par exemple, t1.micro). Si vous activez les demandes d'instances Spot et que l'erreur None of the instance types you specified supports Spot (Aucun des types d'instance spécifiés ne prend en charge les instances Spot) s'affiche, assurez-vous de configurer des types d'instance qui prennent en charge les instances Spot. Pour choisir des types d'instance Spot, utilisez Spot Instance Advisor.

  • L'activation des requêtes d'instance Spot nécessite l'utilisation de modèles de lancement Amazon EC2. Lorsque vous configurez cette fonction au cours de la création ou des mises à jour de l'environnement, Elastic Beanstalk tente de configurer votre environnement de sorte qu'il utilise des modèles de lancement Amazon EC2 (si l'environnement ne les utilise pas déjà). Dans ce cas, si votre politique d'utilisateur ne dispose pas des autorisations nécessaires, la création ou les mises à jour de l'environnement peuvent échouer. Par conséquent, nous vous recommandons d'utiliser notre politique d'utilisateur gérée ou d'ajouter les autorisations requises à vos politiques personnalisées. Pour plus d'informations sur les autorisations requises, consultez Création d'une stratégie utilisateur personnalisée.

Les exemples suivants illustrent différents scénarios de définition des différentes options de mise à l'échelle. Tous les exemples supposent qu'un environnement à charge équilibrée avec les demandes d'instances Spot activées a été défini.

Exemple 1 : Capacité initiale avec instances à la demande et instances Spot
Paramètres d'option
Option Namespace Valeur

MinSize

aws:autoscaling:asg

10

MaxSize

aws:autoscaling:asg

24

SpotFleetOnDemandBase

aws:ec2:instances

4

SpotFleetOnDemandAboveBasePercentage

aws:ec2:instances

50

Dans cet exemple, l'environnement commence avec dix instances, dont sept instances à la demande (quatre de base et 50 % des six autres au-delà) et trois instances Spot. L'environnement peut accepter jusqu'à 24 instances. Au fur et à mesure du dimensionnement, la proportion d'instances à la demande de la partie du parc au-delà des quatre instances à la demande de base est maintenue à 50 %, jusqu'à un maximum de 24 instances au total, dont 14 sont des instances à la demande (quatre de base et 50 % des 20 autres au-delà de la base) et 10 sont des instances Spot.

Exemple 2 : Capacité initiale avec uniquement des instances à la demande
Paramètres d'option
Option Namespace Valeur

MinSize

aws:autoscaling:asg

4

MaxSize

aws:autoscaling:asg

24

SpotFleetOnDemandBase

aws:ec2:instances

4

SpotFleetOnDemandAboveBasePercentage

aws:ec2:instances

50

Dans cet exemple, l'environnement commence avec quatre instances à la demande. L'environnement peut accepter jusqu'à 24 instances. Au fur et à mesure du dimensionnement, la proportion d'instances à la demande de la partie du parc au-delà des quatre instances à la demande de base est maintenue à 50 %, jusqu'à un maximum de 24 instances au total, dont 14 sont des instances à la demande (quatre de base et 50 % des 20 autres au-delà de la base) et 10 sont des instances Spot.

Exemple 3 :Instances à la demande de base supplémentaires au-delà de la capacité initiale
Paramètres d'option
Option Namespace Valeur

MinSize

aws:autoscaling:asg

3

MaxSize

aws:autoscaling:asg

24

SpotFleetOnDemandBase

aws:ec2:instances

4

SpotFleetOnDemandAboveBasePercentage

aws:ec2:instances

50

Dans cet exemple, l'environnement commence avec trois instances à la demande. L'environnement peut accepter jusqu'à 24 instances. La première instance supplémentaire au-delà des trois instances initiales est une instance à la demande, pour compléter les quatre instances à la demande de base. Au fur et à mesure du dimensionnement, la proportion d'instances à la demande de la partie du parc au-delà des quatre instances à la demande de base est maintenue à 50 %, jusqu'à un maximum de 24 instances au total, dont 14 sont des instances à la demande (quatre de base et 50 % des 20 autres au-delà de la base) et 10 sont des instances Spot.

Configuration du groupe Auto Scaling à l'aide de la console Elastic Beanstalk

Vous pouvez configurer le fonctionnement d'Auto Scaling en modifiant Capacity (Capacité) sur la page Configuration de l'environnement dans la console Elastic Beanstalk.

Pour configurer le groupe Auto Scaling dans la console Elastic Beanstalk
  1. Ouvrez la console Elastic Beanstalk, puis dans la liste des régions, sélectionnez votre. Région AWS

  2. Dans le panneau de navigation, choisissez Environments (Environnements), puis choisissez le nom de votre environnement dans la liste.

    Note

    Si vous avez plusieurs environnements, utilisez la barre de recherche pour filtrer la liste des environnements.

  3. Dans le panneau de navigation, choisissez Configuration.

  4. Dans la catégorie de configuration Capacity (Capacité), choisissez Edit (Modifier).

  5. Dans la section Auto Scaling group (Groupe Auto Scaling), configurez les paramètres suivants.

    • Environment type (Type d'environnement) – Sélectionnez Load balanced (Charge équilibrée).

    • Min instances (Nombre minimal d'instances) – Nombre minimal d'instances EC2 que le groupe doit contenir à tout moment. Le groupe démarre avec le nombre minimal et ajoute les instances quand la condition de déclenchement d'une augmentation est remplie.

    • Max instances (Nombre maximal d'instances) – Nombre maximal d'instances EC2 que le groupe doit contenir à tout moment.

      Note

      Si vous utilisez des mises à jour propagées, assurez-vous que le nombre maximal d'instances est supérieur au paramètre Instances minimums en service pour les mises à jour propagées.

    • Composition de la flotte — La valeur par défaut est Instances à la demande. Pour activer les demandes d'instance Spot, sélectionnez Combined purchase options and instance types (Options d'achat et types d'instance combinés).

      Les options suivantes sont activées si vous choisissez d'activer les demandes d'instance Spot :

      • Prix spot maximum : pour obtenir des recommandations concernant les options de prix maximum pour les instances Spot, consultez l'historique des tarifs des instances Spot dans le guide de l'utilisateur Amazon EC2.

      • On-Demande base (À la demande de base) – Nombre minimal d'instances à la demande que votre groupe Auto Scaling alloue avant de considérer les instances Spot à mesure que votre environnement grandit.

      • On-Demand above base (À la demande au-dessus de la base) – Pourcentage d'instances à la demande dans le cadre de la capacité supplémentaire que votre groupe Auto Scaling alloue au-delà des instances à la demande de base.

        Note

        Les options On-Demand base (Base à la demande) et On-Demand above base (Base supérieure à la demande) sont en corrélation avec les options Instances Min et Max répertoriées plus tôt. Pour de plus amples informations sur ces options, consultez Prise en charge d'une instance Spot.

      • Enable Capacity Rebalancing (Activer le rééquilibrage de charge) — Cette option n'est pertinente que lorsque votre groupe Auto Scaling comprend au moins une instance Spot. Lorsque cette fonction est activée, EC2 tente automatiquement de remplacer les instances Spot du groupe Auto Scaling avant qu'elles ne soient interrompues, réduisant ainsi les interruptions d'instances Spot pour vos applications. Pour plus d'informations, consultez Rééquilibrage de la capacité dans le Guide de l'utilisateur Amazon EC2 Auto Scaling.

    • Instance type (Type d'instance) – Type d'instance Amazon EC2 lancée pour exécuter votre application. Pour plus de détails, consultez Types d’instances.

    • AMI ID (ID d'AMI) – Image machine utilisée par Elastic Beanstalk pour lancer des instances Amazon EC2 dans votre environnement. Pour plus de détails, consultez ID d’AMI.

    • Availability Zones (Zones de disponibilité) – Choisissez le nombre de zones de disponibilité entre lesquelles répartir les instances de votre environnement. Par défaut, le groupe Auto Scaling lance les instances de manière uniforme sur l'ensemble des zones utilisables. Pour concentrer vos instances en moins de zones, choisissez le nombre de zones à utiliser. Pour les environnements de production, utilisez au moins deux zones afin de vous assurer que votre application est disponible en cas de panne de l'une des zones de disponibilité.

    • Placement (facultatif) – Choisissez les zones de disponibilité à utiliser. Utilisez ce paramètre si vos instances ont besoin de se connecter aux ressources de zones spécifiques ou si vous avez acheté des instances réservées, qui sont spécifiques à une zone. Si vous lancez votre environnement dans un VPC personnalisé, vous ne pouvez pas configurer cette option. Dans un VPC personnalisé, vous choisissez les zones de disponibilité des sous-réseaux que vous affectez à votre environnement.

    • Scaling cooldown (Stabilisation de la mise à l'échelle) – Délai d'attente (en secondes) avant que les instances se lancent ou se terminent après la mise à l'échelle, avant de continuer à analyser les déclencheurs. Pour plus d'informations, consultez Stabilisation de la mise à l'échelle.

    Fenêtre de configuration d'Auto Scaling pour Elastic Beanstalk
  6. Pour enregistrer les modifications, cliquez sur Appliquer en bas de la page.

Configuration du groupe Auto Scaling à l'aide de l'interface de ligne de commande (CLI) EB

Lorsque vous créez un environnement à l'aide de la commande eb create, vous pouvez spécifier quelques options liées au groupe Auto Scaling de votre environnement. Voici quelques-unes des options qui vous aident à contrôler la capacité de votre environnement.

--single

Crée l'environnement avec une instance Amazon EC2 et sans équilibreur de charge. Si vous n'utilisez pas cette option, un équilibreur de charge est ajouté à l'environnement qui a été créé.

--enable-spot

Active les demandes d'instances Spot pour votre environnement.

Les options suivantes de la commande eb create ne peuvent être utilisées qu'avec --enable-spot.

--instance-types

Liste les types d'instances Amazon EC2 que vous souhaitez que votre environnement utilise.

--spot-max-price

Prix maximum par heure d'unité, en dollars américains, que vous êtes prêt à payer pour une instance Spot. Pour obtenir des recommandations concernant les options de prix maximum pour les instances Spot, consultez l'historique des tarifs des instances Spot dans le guide de l'utilisateur Amazon EC2.

--on-demand-base-capacity

Nombre minimal d'instances à la demande que votre groupe Auto Scaling alloue avant de considérer les instances Spot à mesure que votre environnement grandit.

--on-demand-above-base-capacity

Pourcentage d'instances à la demande dans le cadre de la capacité supplémentaire allouée par votre groupe Auto Scaling supérieur au nombre d'instances qui est spécifié par l'option --on-demand-base-capacity.

L'exemple suivant crée un environnement et configure le groupe Auto Scaling de manière à activer les demandes d'instances Spot pour le nouvel environnement. Pour cet exemple, trois types d'instances possibles peuvent être utilisés.

$ eb create --enable-spot --instance-types "t2.micro,t3.micro,t3.small"
Important

Il existe une autre option nommée de la même manière qui s'appelle --instance-type (pas de « s »), que l'interface de ligne de commande (CLI) EB reconnaît uniquement lors du traitement des instances à la demande. N'utilisez pas --instance-type (pas de « s ») avec l'option --enable-spot. Si vous le faites, l'interface de ligne de commande (CLI) EB l'ignore. Utilisez plutôt --instance-types (avec « s ») avec l'option --enable-spot.

Options de configuration

Elastic Beanstalk fournit des options de configuration pour les paramètres Auto Scaling dans deux espaces de noms : aws:autoscaling:asg et aws:ec2:instances.

Espace de noms aws:autoscaling:asg

L'espace de noms aws:autoscaling:asg fournit des options pour le dimensionnement et la disponibilité d'ensemble.

L'exemple de fichier de configuration suivant configure le groupe Auto Scaling de manière à ce qu'il utilise de deux à quatre instances, des zones de disponibilité spécifiques et un temps de stabilisation de 12 minutes (720 secondes). Rééquilibrage de capacité pour les instances Spot est activé. Cette dernière option n'entre en vigueur que si EnableSpot a la valeur true dans l'espace de noms aws:ec2:instances, comme illustré dans l'exemple de fichier de configuration qui suit.

option_settings: aws:autoscaling:asg: Availability Zones: Any Cooldown: '720' Custom Availability Zones: 'us-west-2a,us-west-2b' MaxSize: '4' MinSize: '2' EnableCapacityRebalancing: true

Espace de noms aws:ec2:instances

L'espace de noms aws:ec2:instances fournit des options liées aux instances de votre environnement, y compris la gestion d'instances Spot. Il complète aws:autoscaling:launchconfiguration et aws:autoscaling:asg.

Lorsque vous mettez à jour la configuration de votre environnement et supprimez un ou plusieurs types d'instance de l'option InstanceTypes, Elastic Beanstalk résilie toutes les instances Amazon EC2 exécutées sur les types d'instance supprimés. Le groupe Auto Scaling de votre environnement lance ensuite de nouvelles instances, si nécessaire pour compléter la capacité souhaitée, en utilisant les types d'instance spécifiés actuels.

L'exemple de fichier de configuration suivant configure le groupe Auto Scaling pour activer les demandes d'instances Spot pour votre environnement. Trois types d'instances possibles peuvent être utilisés. Au moins une instance à la demande est utilisée pour la capacité de base, et 33 % soutenus des instances à la demande sont utilisés pour toute capacité supplémentaire.

option_settings: aws:ec2:instances: EnableSpot: true InstanceTypes: 't2.micro,t3.micro,t3.small' SpotFleetOnDemandBase: '1' SpotFleetOnDemandAboveBasePercentage: '33'

Pour choisir des types d'instance Spot, utilisez Spot Instance Advisor.