Le Blog Amazon Web Services
Heetch met à profit tous les services AWS pour optimiser ses coûts de 45%
Heetch est une plateforme française de mise en relation entre chauffeurs professionnels et passagers (VTC) créée en 2013 qui opère en France, en Belgique, en Algérie, au Maroc et en Angola. Heetch s’est fixée pour mission de rendre la mobilité accessible au plus grand nombre grâce à des prix compétitifs tout en veillant à ce que les chauffeurs puissent vivre correctement de leur travail. La pandémie, avec son lot de restrictions sanitaires, est venue freiner brutalement une longue période de croissance continue en termes d’utilisateurs et de trajets. Heetch s’est alors engagé dans une démarche d’optimisation des coûts d’infrastructure informatique, que nous présente Damir Markovic, Senior DevOps Engineer à Heetch, en charge de ce projet.
Éliminer le gaspillage informatique et utiliser les dernières versions des instances EC2
Notre démarche d’optimisation des coûts informatiques a débuté par la mise en place d’un plan volontariste visant à vérifier que les ressources informatiques étaient utilisées à bon escient.
Pour innover rapidement, nous utilisons de multiples environnements de développement, de tests et de PoC (Proof of Concept). Ce sont autant de ressources informatiques qui ne sont pas toujours supprimées en fin d’utilisation. Afin d’y remédier, dorénavant toute ressource dont le propriétaire n’est pas clairement identifié est tout simplement supprimée. Chaque ressource est identifiée avec son propre « Tag » et permet à l’infrastructure de gagner en visibilité et en traçabilité. Par la même occasion les équipes sont davantage responsabilisées sur leur utilisation des ressources IT. Suite à ce nettoyage des infrastructures, nous nous sommes attaqués aux instances EC2 qui représentent un des postes de dépenses les plus conséquents. Sachant que les nouvelles générations offrent un meilleur ratio performances/coûts, nous avons rapidement et facilement réduit les coûts en migrant complètement sur des instances M5.
Mettre à profit les plans d’économie AWS (Savings Plans)
AWS propose différents plans d’économie (Savings Plans). Selon le contexte, il est possible d’opter pour un « Compute Savings Plan » ou un « Instance Saving Plans ». Pour être efficaces, ces plans d’économie supposent d’avoir une bonne connaissance de l’utilisation du cloud. Nous avons donc commencé par collecter des données pour analyser nos modes d’utilisation du cloud, heure par heure sur plusieurs semaines, à l’aide d’AWS Cost Explorer. Notre choix s’est ensuite porté sur « l’EC2 Instance Savings Plans » qui permet une diminution du prix d’environ 40% par rapport à de la tarification à la demande, en s’engageant sur un an.
Nous avons eu la bonne surprise de nous apercevoir qu’AWS pouvait encore améliorer les conditions en vérifiant si un autre client vendait des instances réservées EC2 sur la marketplace AWS.
Nous avons ainsi pu bénéficier d’une remise plus importante, une diminution de prix d’environ 45% par rapport à de la tarification à la demande soit une réduction supplémentaire de 5%.
Des bases de données mieux dimensionnées
Le coût des bases de données PostgreSQL RDS représentait un autre défi. Heetch exploite des dizaines de bases de données de plusieurs téraoctets. Les résultats de l’analyse de leur activité avec Performance Insights nous a apporté de nombreuses pistes d’amélioration. Nous avons réduit considérablement la taille des instances sans affecter les performances. La mise à niveau avec la dernière version de PostgreSQL nous a amené de nombreuses améliorations, tout particulièrement sur le parallélisme d’exécution. Précédemment nous n’utilisions que des instances à usage général (M4/M5). Dans les faits, les bases de données peuvent très bien fonctionner sur des instances Burstable (T3) plus petites, y compris en production. Nous avions tendance à surdimensionner les ressources pour nous préparer au pire.
Par ailleurs l’autoscaling permet de réduire les coûts de stockage en utilisant sans crainte des disques plus petits. Ils s’adapteront automatiquement avec l’autoscaling en cas de besoin. On ne paye donc que ce qu’on utilise. Comme pour les instances EC2, nous avons appliqué le principe de réservation sur le long terme à RDS (Reserved RDS) pour réaliser d’autres économies.
Ces différentes mesures nous ont permis de réduire les coûts d’infrastructure de plus de 45% en quelques mois seulement. Nous estimons avoir économisé 175 000 $ en 2020 avec les réservations d’instances (EC2 Reserved Instances, RDS Reserved Instances et Redshift Reserved Instances), et environ 500 000 $ en 2020 avec l’ensemble des optimisations.
Nous remplaçons déjà les volumes Amazon EBS GP2 par de nouvelles générations GP3 qui offrent de meilleures performances et un coût inférieur de 20%. Il est également prévu de déplacer une partie des traitements batch vers des instances Spot EC2 ; d’utiliser la classe de stockage Intelligent Tiering pour S3 ; et de tester des instances de nouvelles générations avec des processeurs ARM (Graviton 2).