Notre outil d’optimisation des coûts AWS pour réduire les coûts du cloud

Posted on

La large gamme de services et d’options de tarification d’AWS vous offre la flexibilité nécessaire pour obtenir les performances et la capacité dont vous avez besoin. Les entreprises ont choisi le cloud computing AWS en raison de l’évolutivité ou de la sécurité. Le cloud computing AWS est également devenu l’une des dernières tendances technologiques suivies par les entreprises. L’un des aspects attrayants d’AWS est son approche de tarification «pay as you go».

Alors qu’AWS offre des avantages significatifs par rapport aux infrastructures traditionnelles sur site, la flexibilité et l’évolutivité d’AWS entraînent souvent des coûts incontrôlables. Les coûts AWS peuvent être flous et compliqués à analyser. Sans utilitaires dédiés pour identifier la source des coûts et comment les gérer, ils peuvent rapidement réduire vos marges bénéficiaires.

Il n’est pas rare de voir des entreprises affirmer qu’elles dépensent trop dans le cloud, qu’un pourcentage à deux chiffres d’argent est gaspillé sur des services inutilisés ou que des millions d’entreprises provisionnent des ressources avec plus de capacité qu’elles n’en ont besoin.

L’incapacité à réduire les coûts d’AWS n’est pas nécessairement la faute des entreprises. La tarification AWS est difficile à analyser. Si un client du cloud pense qu’il ne paie que pour ce qu’il utilise, et non pour ce qui lui est fourni, il est facile de constater que les factures du cloud peuvent dépasser les attentes. Il existe également des services supplémentaires associés aux instances qui augmentent les coûts même lorsque les instances sont résiliées.

Notre équipe de développement a créé une solution d’optimisation des coûts AWS qui peut vous aider à réduire les coûts AWS et à garantir que les dépenses liées au cloud correspondent aux budgets prévus de votre organisation. Découvrez comment cela peut vous aider dans cet article.

Vide

Qu’est-ce que l’optimisation des coûts dans AWS ?

Pour savoir comment démarrer avec l’optimisation des coûts AWS, nous avons créé un outil avancé d’analyse des coûts Amazon. Il vous aide à visualiser, analyser et gérer vos coûts et votre utilisation d’AWS au fil du temps, les habitudes de dépenses dans différentes dimensions et la répartition de vos coûts entre diverses ressources. Une fois que vous avez compris ce qui augmente vos coûts AWS, vous pouvez explorer les mesures d’optimisation des coûts du cloud et réduire les coûts AWS. L’optimisation des coûts AWS nécessite la mise en œuvre de bonnes pratiques de réduction des coûts pour tirer le meilleur parti de l’investissement dans le cloud.

Pourquoi devriez-vous optimiser vos coûts AWS ?

Contrairement aux environnements sur site, qui nécessitent souvent des dépenses d’investissement initiales élevées avec de faibles coûts permanents, les investissements dans le cloud sont des dépenses d’exploitation. Par conséquent, les coûts du cloud peuvent devenir incontrôlables, alors qu’il devient difficile de suivre leur efficacité au fil du temps. La mise à l’échelle automatique du cloud donne aux entreprises la possibilité d’augmenter ou de réduire leurs performances de stockage, de mise en réseau, de calcul et de mémoire dans le cloud. De cette façon, ils peuvent s’adapter à tout moment aux demandes de calcul fluctuantes. Dans le cadre de l’approche d’établissement des coûts d’AWS, les entreprises ne doivent payer que pour les ressources qu’elles utilisent. Mais s’ils ne disposent pas d’un outil d’optimisation des coûts pour surveiller les dépenses et identifier les anomalies de coûts, ils peuvent rapidement faire face à un dépassement de coûts coûteux.

Utilitaire pour calculer les coûts AWS

Vous êtes-vous déjà demandé quel est le prix de vos environnements regroupés logiquement avec un fournisseur de cloud comme AWS, GCP, Azure, etc. ? Avez-vous trouvé un outil qui peut répondre à cette question rapidement et gratuitement ? Dans cet article, nous allons créer un outil qui capture les ressources AWS EC2 et calcule leur prix. De plus, nous montrerons une approche sur la façon de la mettre en œuvre et laisserons de la place pour étendre cette idée. Nous utiliserons la bibliothèque javascript boto3 d’AWS et NodeJS pour exécuter cet utilitaire de ligne de commande.

Hypothèses

Supposons que vous ayez deux environnements (pour simplifier) ​​: dev et prod. Chaque environnement se compose de deux services : backend et frontend, où chaque service est juste un ensemble d’instances EC2 statiques et chaque instance EC2 est balisée avec au moins ces balises :

  • Env : dev
  • Service : frontal
  • Nom : service-frontend-01.dev
Vide

Outil d’optimisation des coûts que nous construisons

Donc, à la fin de cet article, nous aurons un outil en ligne de commande afficher-prixqui accepte un seul paramètre – chemin, donc, si nous voulons voir le prix de tous les environnements, nous devons exécuter afficher-prix -p “*”, au cas où nous voudrions vérifier le prix de tous les services – afficher-prix -p “*.*”. La sortie ressemblera à :

$ show-price -p "*"

.dev = 0.0058$ per hour
.prod = 0.0058$ per hour

$ show-price -p "*.*"

.dev.frontend = 0.0406$ per hour
.dev.backend = 0.0406$ per hour
.prod.backend = 0.0058$ per hour
.prod.frontend = 0.0058$ per hour

Mise en œuvre

Configuration

Tout d’abord, nous devons configurer notre environnement local et fournir les informations d’identification AWS. Alors:

# Create a folder with AWS IAM access key and secret key
$ mkdir -p ~/.aws/

# Add credentials file
$ > ~/.aws/credentials

# Paste your IAM access key and secret key into this file
$ cat ~/.aws/credentials
[default]
aws_access_key_id = AKIA***
aws_secret_access_key = gDJh****

# Clone the project and install a show-price utility
$ git clone git@github.com:vpaslav/show-price.git && cd show-price
$ npm install.
Vide

Définition de la structure des données

Comme nous travaillons avec des données hiérarchiques, il serait préférable d’utiliser une arborescence simple. Ainsi, notre infrastructure AWS peut être représentée dans un arbre TreeNode comme dans l’exemple ci-dessous :

* env name
*   |_ service 1
*          |_ instanceId 1: key: name, value: price
*          |_ instanceId 2: key: name, value: price
*   |_ service 2
*          |_ instanceId 3: key: name, value: price
*          |_ instanceId 4: key: name, value: price

Avec cette structure, nous pouvons facilement naviguer dessus et extraire les informations dont nous avons besoin. Plus de détails sur la mise en œuvre de l’arborescence peuvent être trouvés ici.

Traitement de la structure des données

Pour traiter notre arbre, nous avons besoin des principales méthodes suivantes : – TreeNode.summarizePrice méthode qui résume récursivement tous les prix pour tous les nœuds d’un arbre jusqu’à la racine. Code:

static summarizePrice(node) {
 if (node.isLeaf()) return Number(node.value);
 for (const child of node.children) {
   node.value += TreeNode.summarizePrice(child);
 }
 return Number(node.value);
}

TreeNode.displayPrice méthode qui itère sur l’arbre et affiche les nœuds si leur chemin est égal à un modèle défini. Code:

static displayPrice(node, pathRegexp) {
 if (node.path.match(pathRegexp)) {
   console.log(`${node.path} = ${node.value}$ per hour`);
 }
 for (const child of node.children) {
   TreeNode.displayPrice(child, pathRegexp);
 }
}

Stockons les prix pour tous les types d’instances dans un simple fichier csv, que nous pouvons lire et mettre dans une arborescence pour chaque nœud feuille, qui est essentiellement une instance AWS. Et, enfin, extraire des données depuis le cloud AWS et utilisez la classe TreeNode pour structure d’une manière dont nous avons besoin.

Vide

Le résultat final affiche les opportunités d’optimisation des coûts AWS

Après toutes les manipulations, nous aurons un outil sympa, qui pourrait afficher les coûts par environnement, service ou même instance spécifique. Par exemple:

# Display price per envs only
$ show-price -p "*"
.prod = 0.0174$ per hour
.dev = 0.0116$ per hour

# Display price per envs per services
$ show-price -p "*.*"
.prod.front = 0.0174$ per hour
.dev.front = 0.0058$ per hour
.dev.back = 0.0058$ per hour

# Display price for a specific env
$ show-price -p "prod"
.prod = 0.0174$ per hour

# Display price for a specific env and all it's services
$ show-price -p "prod.*"
.prod.front = 0.0174$ per hour

# Display price for all specific services within all envs
$ show-price -p "*.front"
.prod.front = 0.0174$ per hour
.dev.front = 0.0058$ per hour


# Display price for a specific instance in a specific env and service
$ show-price -p "prod.front.i-009105b93c431c998"
.prod.front.i-009105b93c431c998 = 0.005800$ per hour

# Display price of all instances for an env
$ show-price -p "prod.*.*"
.prod.front.i-009105b93c431c998 = 0.005800$ per hour
.prod.front.i-01adbf97655f57126 = 0.005800$ per hour
.prod.front.i-0c6137d97bd8318d8 = 0.005800$ per hour

Principales raisons du gaspillage des dépenses liées au cloud

Ressources hors production AWS

Les ressources hors production, telles que l’environnement de développement, la mise en scène, les tests et l’assurance qualité, ne sont nécessaires que pendant une semaine de travail, ce qui signifie 40 heures. Cependant, les frais AWS à la demande sont basés sur la durée d’utilisation des ressources. Ainsi, les dépenses en ressources hors production sont gaspillées la nuit et aussi le week-end (environ 65% de la semaine).

Ressources AWS surdimensionnées

Les ressources surdimensionnées sont souvent une deuxième raison de l’augmentation des coûts AWS. AWS propose une gamme de tailles pour chaque option d’instance, et de nombreuses entreprises conservent par défaut la plus grande taille disponible. Cependant, ils ne savent pas de quelle capacité ils auront besoin à l’avenir. Une étude de ParkMyCloud a révélé que l’utilisation moyenne des ressources AWS provisionnées n’était que de 2 %, ce qui indique un surprovisionnement de routine. Si une entreprise réduit une instance d’une taille, elle réduit les coûts AWS de 50 %. La réduction de deux tailles leur permet d’économiser 75 % sur les dépenses liées au cloud AWS. Le moyen le plus simple de réduire les coûts AWS rapidement et de manière significative consiste à réduire les dépenses en ressources inutiles.

Vide

En utilisant notre solution, vous obtenez un processus d’optimisation des coûts qui consiste simplement à réduire les coûts du cloud grâce à une série de techniques d’optimisation telles que :

  • Identifier les ressources mal gérées
  • Éliminer les déchets
  • Capacité de réservation pour des remises plus élevées
  • Et des services informatiques de taille appropriée pour la mise à l’échelle.

Surveillez et mesurez vos dépenses cloud

Les conseils ci-dessous sont quelques pratiques que vous pouvez intégrer à votre stratégie d’optimisation des coûts pour réduire vos dépenses AWS.

  • Découvrez quels services AWS vous coûtent le plus cher et pourquoi.
  • Vous pouvez aligner les coûts du cloud AWS sur les métriques commerciales qui vous intéressent.
  • Donnez à l’ingénierie les moyens de mieux générer des rapports sur les coûts AWS à financer.
  • Identifiez les opportunités d’optimisation des coûts dont vous n’êtes peut-être pas au courant, telles que les choix architecturaux que vous pouvez faire pour améliorer la rentabilité.
  • Identifiez et suivez les instances inutilisées afin de pouvoir les supprimer manuellement ou automatiquement pour éliminer le gaspillage.
  • Bénéficiez d’opportunités d’optimisation des coûts, telles que des recommandations de taille d’instance.
  • Détectez, suivez, étiquetez et supprimez le stockage persistant non alloué tel que les volumes Amazon EBS lorsque vous supprimez une instance associée.
  • Identifiez les instances réservées (RI) AWS qui expirent bientôt et évitez d’avoir des instances RI expirées qui entraînent des ressources plus coûteuses.
  • Introduisez la responsabilité des coûts en montrant à vos équipes l’impact de chaque projet sur le résultat global de l’entreprise, sa compétitivité et sa capacité à financer la croissance future.
  • Adaptez votre approvisionnement à vos besoins.
  • Automatisez la gestion et l’optimisation des coûts du cloud. Testez les outils AWS natifs avant d’utiliser des outils tiers plus avancés.
  • Planifiez des heures d’activation et de désactivation, sauf si les charges de travail doivent s’exécuter en permanence.
  • Cochez la case Supprimer à la résiliation lorsque vous créez ou lancez une instance EC2 pour la première fois. Lorsque vous résiliez l’instance attachée, les volumes EBS non attachés sont automatiquement supprimés.
  • Décidez quelles charges de travail vous souhaitez utiliser les instances réservées et lesquelles vous souhaitez utiliser la tarification à la demande.
  • Conservez votre dernier instantané pendant quelques semaines, puis supprimez-le pendant que vous créez des instantanés encore plus récents que vous pouvez utiliser pour récupérer vos données en cas de sinistre.
  • Évitez de réattribuer une adresse IP Elastic plus de 100 fois par mois. Cela vous garantit que vous éviterez d’avoir à payer pour cela. Si vous ne pouvez pas, utilisez un outil d’optimisation pour trouver et libérer les adresses IP non allouées après avoir supprimé les instances auxquelles elles sont liées.
  • Passez à la dernière génération d’instances AWS pour améliorer les performances à moindre coût.
  • Utilisez des outils d’optimisation pour trouver et supprimer les équilibreurs de charge élastiques inutilisés
  • Optimisez vos coûts cloud dans le cadre de votre culture DevOps.

L’optimisation des coûts AWS est un processus continu

L’application des meilleures pratiques à l’optimisation des coûts AWS et l’utilisation des outils d’optimisation des dépenses dans le cloud est un processus éternel. L’optimisation des coûts doit être un processus qui examine non seulement comment vous pouvez réduire vos dépenses AWS, mais également comment vous pouvez aligner ces dépenses sur les résultats commerciaux qui vous intéressent et comment vous pouvez optimiser votre environnement pour atteindre vos objectifs commerciaux.

Une bonne approche de l’optimisation des coûts AWS commence par obtenir une image détaillée de vos coûts actuels, identifier les opportunités d’optimisation des coûts, puis apporter des modifications. Utiliser notre utilitaire, analyser les résultats et mettre en œuvre des modifications sur votre cloud n’est pas une tâche facile.

Alors que l’optimisation des coûts s’est traditionnellement concentrée sur la réduction du gaspillage et les plans d’achat (tels que les instances réservées), de nombreuses organisations avant-gardistes se concentrent désormais de plus en plus sur l’activation technique et l’optimisation de l’architecture.

Vide

Les entreprises ont réalisé que l’optimisation des coûts ne consiste pas seulement à réduire les coûts AWS, mais également à fournir aux équipes techniques les informations sur les coûts dont elles ont besoin pour prendre des décisions de développement axées sur les coûts qui conduisent à la rentabilité. De plus, l’ingénierie doit être en mesure de rapporter correctement les dépenses liées au cloud aux services financiers et de voir comment ces dépenses s’alignent sur les mesures commerciales qui les intéressent. Les ingénieurs sont en mesure de voir l’impact sur les coûts de leur travail et comment les changements de code affectent leurs dépenses AWS.

Votre cloud AWS doit être surveillé à tout moment pour savoir quand les actifs sont sous-utilisés ou pas du tout utilisés. L’utilitaire vous aidera également à voir quand il existe des opportunités de réduire les coûts en résiliant, en supprimant ou en libérant des actifs zombies. Il est également important de surveiller les instances réservées pour s’assurer qu’elles sont utilisées à 100 %. Bien sûr, il n’est pas possible de surveiller manuellement un environnement cloud 24h/24, 7j/7 et 365j/an, c’est pourquoi de nombreuses organisations tirent parti de l’automatisation basée sur des politiques.

Recrutez des experts du cloud pour gérer et réduire les coûts AWS

Si vous craignez des dépenses excessives, notre solution peut automatiser les alertes d’anomalies de coûts qui informent les ingénieurs des fluctuations de coûts afin que les équipes puissent résoudre tout problème de code afin d’éviter les dépassements de coûts.

De nombreuses organisations finissent par manquer de ressources, compromettre les performances ou la sécurité, ou sous-utiliser l’infrastructure AWS. Travailler avec des experts du cloud AWS est le meilleur moyen de créer une stratégie efficace d’optimisation des coûts AWS. Bien qu’une entreprise puisse continuer à analyser ses coûts et à mettre en œuvre des améliorations, de nouveaux problèmes peuvent survenir.

Notre équipe technique peut vous aider à éviter ces pièges et à réduire vos coûts de cloud AWS. Grâce à une surveillance continue, vous pouvez être sûr de ne manquer aucune opportunité d’optimisation des coûts du cloud.

Vous avez des questions concernant votre projet ?

Obtenez une solution personnalisée maintenant! Nous aimerions avoir de vos nouvelles.

Contactez nos experts en informatique

Leave a Reply

Your email address will not be published.