Le Blog Amazon Web Services

Comment gérer facilement les stratégies AWS Auto Scaling avec des plans de dimensionnement basés sur des balises

AWS Auto Scaling permet d’augmenter et de reduire le nombre d’instances Amazon EC2 ou les débits d’écriture ou de lecture sur Amazon DynamoDB de manière dynamique en fonction de leurs modèles de d’usage et de trafic. Cependant, un déploiement applicatif typique contient de nombreuses ressources et la gestion des stratégies d’Auto Scaling AWS individuelles pour toutes ces ressources peut constituer un défi organisationnel. Avec les plans de dimensionnement, vous pouvez automatiser la création de stratégies AWS Auto Scaling et les modifier facilement à l’aide de balises/tags. Dans cet article, je vais démontrer comment agréger, configurer et gérer les stratégies AWS Auto Scaling en regroupant les ressources en fonction d’une ou de plusieurs balises et en utilisant des plans de dimensionnement.

Pour utiliser des plans de dimensionnement basés sur des balises/tags, vous devez tagger/baliser vos ressources AWS avant de configurer un plan. Avant de commencer cet exemple, nous allons parcourir les différentes ressources AWS que nous allons gérer par des plans de dimensionnement (groupes Amazon EC2 Auto Scaling et tables Amazon DynamoDB , dans notre cas). Nous avons ensuite marqué nos ressources à l’aide d’une balise d’environnement avec la valeur correspondante correcte de DEV , BETA ou PROD. Nous pouvons utiliser la balise « Environment » pour regrouper et gérer les stratégies de dimensionnement des ressources par environnement et ajuster les pourcentages d’utilisation cibles. Consultez la section Stratégies de marquage AWS pour obtenir des conseils et des stratégies utiles pour le balisage de vos ressources.

Remarque : AWS Auto Scaling est actuellement disponible dans les régions indiquées dans le tableau de régions AWS.

1. Mise en place de plans de dimensionnement basés sur le type d’environnement (infrastructure)

Dans cette section, nous mettons en place un plan de dimensionnement pour toutes nos ressources de développement et un second plan pour nos ressources de production. Ces plans de dimensionnement nous permettent de définir facilement le paramètre d’utilisation cible sur un groupe de ressources associées aux balises que nous sélectionnons.

1.1 Création d’un plan pour les ressources de développement

1. Pour commencer, nous naviguons sur la console AWS Auto Scaling . Nous pouvons choisir “Get Started” car nous n’avons pas de plan de dimensionnement existant. (Si j’avais des plans existants, je choisirais Créer un plan de dimensionnement sur la console AWS Auto Scaling.) Nous choisissons “Rechercher par balise” pour rechercher les ressources par balises qui leur sont appliquées.

Comme indiqué dans la capture d’écran précédente, pour rechercher par balise, nous avons choisi l’environnement comme clé et DEV comme valeur. (Si vous ne voyez aucune option sous Clé , assurez-vous que vous avez déjà passé en revue les ressources que vous souhaitez gérer et les ayez étiquetées correctement, comme nous l’avons mentionné dans l’introduction.) La recherche avec ces paramètres permet de trouver toutes les ressources étiquetées avec DEV.

Éventuellement, nous pourrions ajouter d’autres valeurs, telles que BETA , qui agiraient comme une opération OR (trouvant ainsi tous les environnements étiquetés en tant que DEV OR BETA ). De plus, nous pourrions ajouter une autre ligne à filtrer sur une clé différente, telle que Owner, qui agirait comme une opération AND ( par exemple, « Owner » est Alice AND « Environment » est DEV ou BETA ). Là encore, pour obtenir les meilleurs résultats de marquage, consultez la section Stratégies de marquage AWS.

2. Maintenant que nous avons selectionné la balise DEV pour l’environnement, nous avons choisi Suivant pour configurer les stratégies des ressources trouvées lors de la recherche par balise.

3. Sur la page suivante, nous saisissons Developer Scaling Plan en tant que nom du plan de dimensionnement. Veillez à fournir un nom de plan de mise à l’échelle en fonction des balises que vous utilisez.

4. En faisant défiler la page, nous constatons que le plan de mise à l’échelle a détecté deux tables DynamoDB pour notre environnement de développement. Nous devons maintenant choisir une stratégie qui indique à AWS Auto Scaling comment redimensionner ces ressources de manière dynamique. Comme il s’agit d’un environnement de développement, nous choisissons d’optimiser en fonction du coût (pour prendre en compte une cible d’utilisation des ressources plus élevée). Nous choisissons ensuite “Suivant” pour accéder à la révision et “Créer”.

Remarque : S’il existe des stratégies de redimensionnement, vous pouvez sélectionner “Personnalisé“ et cocher la case Remplacer les stratégies de redimensionnement externes pour qu’elles soient gérées par le plan.

5. La page suivante vous permet d’affiner tout réglage géré par le plan si vous le souhaitez. Nous sautons cette étape et cliquons sur Suivant. Cela peut être utile si certaines ressources sont plus ou moins importantes et que vous pouvez spécifier des utilisations de cible inférieures ou supérieures si nécessaire.

6. Nous confirmons le nombre de ressources trouvées par la recherche de balise personnalisée, le nom du plan de dimensionnement et le récapitulatif des modifications. Comme vous pouvez le voir dans l’image suivante, ce plan de mise à l’échelle crée automatiquement quatre nouvelles stratégies de mise à l’échelle, deux pour chaque table (une pour la capacité de lecture et une autre pour la capacité d’écriture). Tout semble correct, nous choisissons donc “ Créer un plan de dimensionnement ”.

1.2 Création d’un plan pour les ressources de production

Maintenant, nous voulons répéter les étapes précédentes pour l’environnement de production:

1. Nous commençons par créer un nouveau plan de mise à l’échelle et à choisir la balise PROD pour l’ environnement , comme illustré dans la capture d’écran suivante.

2. Sur la  page Configurer le plan de dimensionnement, pour  plus de détails sur le plan de dimensionnement , nous saisissons “ Plan de dimensionnement ” de la production pour le nom de notre nouveau plan.

3. Comme il s’agit d’un environnement de production, nous souhaitons avoir plus de ressources que d’usage (surprovision) afin de mieux gérer les pointes de trafic importantes. En conséquence, nous choisissons “ Optimiser pour la disponibilité ” pour utiliser une cible d’utilisation des ressources inférieure.

Cette fois, des tables DynamoDB et un groupe Amazon EC2 Auto Scaling sont trouvés, nous effectuons la configuration sur les deux. Comme nous l’avons mentionné précédemment, les plans de dimensionnement peuvent gérer différents types de ressources avec des stratégies différentes pour chacun.

4. Nous sommes ensuite invité à spécifier des paramètres personnalisés si nous le souhaitons, nous passons cette étape et clique sur “Suivant” .

5. Suite à une revue du plan, nous validons “ Créer un plan de mise à l’échelle “.

A présent, Nous avons mis en place des plans de dimensionnement pour nos environnements de développement et de production. Cela a réduit le temps que nous devons consacrer à consulter chaque ressource individuellement pour gérer les stratégies AWS Auto Scaling.

2. Changer la stratégie de dimensionnement d’un plan

Parfois, les modèles d’usage et le trafic sur une application changent et vous devrez peut-être ajuster les valeurs d’utilisation pour mieux gérer la mise à l’échelle de votre application. Si votre configuration de trafic devient plus cohérente, vous pouvez essayer une cible d’utilisation plus élevée pour réduire vos coûts. Si votre application présente des pics de charge imprévisibles, une cible d’utilisation plus basse serait préférable, de sorte que vous puissiez facilement absorber le trafic et disposer du temps nécessaire pour faire évoluer votre système lors de ce type d’évènement.

Si nous voulons par la suite modifier la stratégie d’un plan de dimensionnement, nous choisissons cette stratégie dans le tableau de bord, puis choisissons “Modifier” . Nous ajustons les valeurs des ressources que nous souhaitons modifier, choisissez “Suivant”, examinez les modifications et choisissez “Enregistrer” les modifications pour les valider.

3. Problèmes potentiels

Par défaut, l’Auto Scaling AWS ne supprime pas la configuration de redimensionnement existante pour vos ressources. Si vous créez un plan de dimensionnement pour une ressource pour laquelle des stratégies sont déjà configurées, le plan est créé avec le statut  ActiveWithProblems. Pour résoudre ce problème, supprimez les stratégies de dimensionnement existantes et mettez à jour le plan de dimensionnement ou, lors de la création du plan, demandez à AWS Auto Scaling de remplacer les stratégies existantes. Vous pouvez le faire à l’ étape “ Configurer le plan de dimensionnement ” en sélectionnant “ Personnalisé ” pour la stratégie de dimensionnement, puis en choisissant “ Remplacer les stratégies de dimensionnement externes ”. Vous pouvez modifier ce paramètre lors de la modification d’un plan de dimensionnement sous les paramètres de redimensionnement dynamique.

4. Résumé

Dans cet article, nous avons illustré comment utiliser les plans AWS Auto Scaling pour gérer et créer efficacement des stratégies AWS Auto Scaling sur un grand nombre de ressources AWS pour différents environnements. Ces plans de redimensionnement créent automatiquement des stratégies et vous permettent de les modifier facilement à l’aide de balises. Vous pouvez étendre cette approche à d’autres ressources AWS telles que Amazon EC2 Spot Fleets et Amazon Aurora Replicas, dont vous pouvez facilement définir les plans en fonction du nombre de balises.

A propos des auteurs

  • Dario Marasco est un ingénieur logiciel pour les services AWS. Il est en charge des fonctions d’administration de DynamoDB et des fonctionnalités d’auto-scaling, mise à l’échelle, de DynamoautDB.
  • Traduit en français par Guillaume Fediere, Solutions Architect dans les équipes AWS France.

Source