Présentation
Auto Scaling vous permet d’augmenter ou de diminuer automatiquement votre capacité Amazon EC2 selon les conditions que vous définissez. Grâce à Auto Scaling, vous pouvez vous assurer que le nombre d’instances Amazon EC2 que vous utilisez augmente de façon continue durant les pics de demandes pour maintenir la performance, et diminue automatiquement durant la baisse des demandes pour minimiser les coûts. Auto Scaling convient particulièrement aux applications qui connaissent des variations horaires, journalières, ou hebdomadaires dans leur utilisation.
Mais Auto Scaling représente plus qu’un moyen d’ajouter et de soustraire des serveurs. Il s’agit également d’un mécanisme permettant de gérer les défaillances similaires à la façon dont l’équilibrage de charge gère les serveurs qui ne répondent pas. Le présent atelier démontrera la configuration d’Auto Scaling pour lancer, surveiller et mettre à jour automatiquement l’équilibreur de charge associé à vos instances Elastic Compute Cloud (EC2).
Il y a deux choses importantes à retenir sur Auto Scaling. Tout d’abord, Auto Scaling est un moyen de définir la « température du cloud ». Vous utilisez des règles pour « régler le thermostat », et sous le capot, Auto Scaling contrôle la chaleur en ajoutant et en soustrayant des ressources Amazon EC2 selon les besoins afin de maintenir la « température » (capacité).
Une stratégie Auto Scaling comprend :
Une configuration de lancement qui définit les serveurs créés en réponse à une demande accrue.
Un groupe Auto Scaling qui définit quand utiliser une configuration de lancement pour créer de nouvelles instances de serveur et dans quel contexte de zone de disponibilité et d’équilibrage de charge elles doivent être créées.
Deuxièmement, Auto Scaling suppose un ensemble de serveurs homogènes. Auto Scaling ne sait pas que le serveur A est une instance 64 bits extra-large et plus capable qu’une instance Small 32 bits. En fait, il s’agit d’un principe fondamental du cloud computing : mettre à l’échelle horizontalement en utilisant une flotte de ressources fongibles ; les ressources individuelles sont secondaires à la flotte elle-même.
Sujets abordés
À la fin de cet atelier, vous serez en mesure d’effectuer les opérations suivantes :
- Créer une nouvelle configuration de lancement à l’aide d’outils de ligne de commande
- Créer un nouveau groupe Auto Scaling à l’aide des outils de ligne de commande
- Configurer les notifications Auto Scaling qui sont déclenchées lorsque les ressources d’instance deviennent trop élevées ou trop basses
- Créer des stratégies pour augmenter ou réduire le nombre d’instances en cours d’exécution en réponse à des changements dans l’utilisation des ressources
Prérequis de l’atelier
Pour réussir cet atelier, vous devez maîtriser l’administration des serveurs Basic Linux et être à l’aise avec les outils de ligne de commande Linux. À ce stade, vous devez également maîtriser les bases de la création de nouvelles instances de serveur Amazon EC2 et de la configuration d’Elastic Load Balancing.
Autres services AWS
Les services AWS, autres que ceux nécessaires pour l’atelier, sont désactivés par une stratégie IAM pendant votre temps d’accès à l’atelier. De plus, les capacités des services utilisés pour cet atelier sont limitées selon les besoins de l’atelier. Elles peuvent même être limitées davantage de façon intentionnelle par la conception de l’atelier. Des erreurs surviendront en cas d’action ou d’accès autres que ceux nécessaires dans ce guide de l’atelier.
Composants clés d’Auto Scaling
Lorsque vous lancez un serveur manuellement, vous fournissez des paramètres tels qu’Amazon Machine Image (AMI), le type d’instance et le groupe de sécurité à lancer. Auto scaling appelle cela une configuration de lancement. Il s’agit simplement d’un ensemble de paramètres décrivant le type d’instances à lancer.
Les groupes Auto Scaling indiquent au système ce qu’il faut faire d’une instance après son lancement. C’est à ce niveau que vous spécifiez les zones de disponibilité dans lesquelles vos instances doivent être lancées, les équilibreurs de charge dont elles recevront le trafic et, surtout, le nombre minimal et maximal d’instances à exécuter à un moment précis.
Vous avez besoin de règles qui indiquent au système quand ajouter ou soustraire des instances. Ces stratégies sont connues sous le nom de stratégies de mise à l’échelle, et comportent des règles telles que « mise à l’échelle de la flotte de 10 % » et « montée en puissance par une instance ».
Le temps est important
Il y a des coûts liés à l’utilisation d’Auto Scaling. Deux facteurs importants affectent directement le coût d’AWS et la manière dont votre application est mise à l’échelle : le coût et le temps.
Les instances Amazon EC2 Linux sont facturées par seconde
Cela signifie que vous pouvez faire monter en puissance les serveurs lorsqu’il y a beaucoup d’activité, puis les mettre à l’échelle pour réduire les coûts lorsqu’une capacité réduite est requise.
La mise à l’échelle prend du temps
Tenez compte du graphique suivant : Dans la plupart des cas, un temps considérable passe entre le moment où le besoin d’un événement de mise à l’échelle se produit et le moment où l’événement de mise à l’échelle se produit.
- Dans cet exemple, la règle indique que vous devez être dans un état particulier pendant au moins deux minutes.
- CloudWatch est le système de collecte de données sous-jacent qui surveille les statistiques telles que l’utilisation du CPU. Il s’agit d’un protocole d’interrogation, et en général, il faut 60 secondes pour agréger de nouvelles données.
- Auto Scaling est également un système d’interrogation, et cela prend encore 60 secondes.
- Ensuite, il y a un temps de démarrage pour votre serveur. Le lancement d’un serveur volumineux et complexe peut prendre plusieurs minutes.
- Enfin, l’équilibreur de charge doit interroger le serveur pendant quelques cycles avant qu’il ne soit admis que le serveur est sain et accepte les demandes.