AWS Budget Cover

Les actions à prendre pour réduire ses dépenses AWS - Partie 1


La variété des services Amazon Web Services (AWS) et leur facilité de mise en œuvre ouvrent des perspectives extraordinaires pour les développeurs du monde entier.

Néanmoins, le déploiement des services sans encadrement mis en place par des Architectes/DevOps expérimentés peut entraîner des dérives au niveau des coûts. On ne compte plus les témoignages de factures élevées 'surprises'!

Tout architecte de solutions AWS doit être capable de mettre en place des actions visant à bien encadrer et optimiser les dépenses et AWS offre tout l'outillage nécessaire pour y parvenir.

Pour commencer, voici trois actions pouvant être menées pour commencer à surveiller, réduire et optimiser ses dépenses. D'autres viendront et feront l'objet de nouveaux articles.

AWS Budget

AWS Budget est un outil Amazon permettant de définir des alertes lors du franchissement de seuils de dépenses. Avec cet outil, vous allez pouvoir définir un montant mensuel que vous ne souhaitez pas dépasser et recevoir des alertes selon des paliers que vous aurez définis (quand 80 % du budget est consommé, par exemple). Chacun organise ses alertes et ses paliers comme il le souhaite, mais voici ce que nous pratiquons chez One Click Flare :

  • à 33 % : nous attendons cette alerte aux alentours du 10 du mois. Si elle arrive avant, nous investiguons ;

  • à 66 % : Idem, mais attendue le 20 du mois ;

  • à 100 % : Idem, mais attendue en toute fin de mois.

Par défaut, chaque alerte envoie un email à l'adresse email utilisée par l'utilisateur root du compte AWS. On peut ajouter d'autres adresses email. Mais il est aussi possible, en plus, que chaque alerte génère un événement dans SNS.

À partir de là, il est facile de :

  • transférer l'alerte via des applications tierces (Slack, Discord, etc...) ;

  • transférer l'alerte via des SMS ;

  • mettre en place des outils permettant de prendre des mesures pour limiter les coûts. Par exemple, une fonction lambda qui arrêterait les instances EC2 du compte. Comme souvent avec AWS, l'imagination est la limite.

Attention: En dehors de l'émission des alertes, aucune autre action n'est prise par AWS Budget pour arrêter les dépenses. Aucune instance EC2 n'est arrêtée, par exemple... Et heureusement !

C'est bien à vous de rapidement trouver la source de 'la fuite' et d'agir en conséquence.

EC2 : Arrêt et démarrage d'instances programmées

Si vous avez mis en place des outils internes déployés sur des instances EC2 (CRM, serveurs d'intégration, etc...) et que vous contrôlez les heures d'utilisation possibles, pensez à automatiser l'arrêt des serveurs la nuit et leur démarrage le matin. Pour ce faire, il y a au moins 2 possibilités :

  • Si votre mode de déploiement est compatible, utilisez Auto Scaling Group et une action de type 'Scheduled'. Vous serez alors en mesure de définir une heure à laquelle passer à 0 instance et une autre pour revenir à votre nombre d'instances habituelles.

  • Créez une fonction Lambda déclenchée par des événements EventBridge Scheduler programmés qui sera chargée d'arrêter et de redémarrer vos instances EC2 aux heures appropriées. N'oubliez pas qu'une instance arrêtée peut être réclamée par AWS, il faut donc vous assurer que vos instances peuvent être opérationnelles après une suppression totale et un redémarrage en toute autonomie.

EC2 : Optimiser le type d'instances

Il est très difficile de dimensionner les ressources consommées par une application avant d'avoir pu la faire tourner. En revanche, après quelques semaines en production, l'architecte doit avoir une idée plus claire du profil de serveur à utiliser : mémoire, CPU, etc... Il est alors important d'exploiter ces informations pour affiner le type d'instance à utiliser.

Pour nous aider dans cette tâche, AWS Cost Explorer Resource Optimization est un outil interne capable d'analyser l'historique de fonctionnement de nos instances pour faire des recommandations sur le type le plus adaptées. L'outil va nous présenter des opportunités d'optimisation en nous indiquant les économies potentielles.

Utilisez AWS Instance Scheduler pour arrêter automatiquement les instances. Utilisez AWS Operations Conductor pour redimensionner automatiquement les instances EC2

====

La suite de nos conseils à suivre dans un prochain article!

Copyright 2024 One Click Flare. All Rights Reserved

Designed By EnvyTheme