Comment optimiser ses coûts avec AWS

En migrant leurs architectures existantes vers le cloud, les organisations peuvent réduire leurs investissements et optimiser leurs coûts grâce aux économies d’échelle AWS. Par itération et en utilisant davantage de services AWS, il est possible de créer des architectures aux coûts encore plus optimisés. Ce billet décrit les grands principes de l’optimisation de coûts avec AWS.

Dimensionnement

AWS propose une large gamme de services et de configurations pour répondre à une multitude de cas d'utilisation. Des services comme Amazon EC2, Amazon RDS, Amazon Redshift, et Amazon ElasticSearch (Amazon ES) vous assurent un large choix de types d’instances. Dans certains cas, il faut choisir l’instance la moins chère et qui correspond à votre workload. Dans d’autres, utiliser moins d’instances plus larges peut vous aider à réduire vos coûts ou à améliorer vos performances. Il faut comparer et sélectionner la meilleure instance, en fonction de la CPU, de la RAM, du réseau, du stockage et des I/O dont vos workloads ont besoin.
De la même façon, vous pouvez réduire vos coûts en choisissant la solution de stockage la plus adaptée à vos priorités. Par exemple, Amazon S3 offre différentes classes de stockage. D'autres services comme Amazon EC2, Amazon RDS, et Amazon ES supportent différents types de volumes (magnétiques, SSD, IOPS SSD) Amazon Elastic Block Store (Amazon EBS) que vous devrez évaluer.

Monitoring en continu et tags

L'optimisation des coûts est un processus itératif. Votre application et son utilisation vont évoluer dans le temps. En outre, AWS publie fréquemment et régulièrement de nouvelles options.
AWS fournit des outils pour vous aider à identifier les opportunités de réduction de coûts et dimensionner correctement vos ressources. Pour rendre les résultats de ces outils faciles à interpréter, vous devez définir et mettre en œuvre une politique de tags de vos ressources AWS. Il est possible d’intégrer ces tags dès la phase de build et de les automatiser via des outils de management AWS comme AWS Elastic Beanstalk et AWS OpsWorks. Vous pouvez également utiliser les règles fournies par AWS Config pour déterminer si des balises spécifiques sont appliquées à vos ressources ou non.

Elasticité

Une autre façon de faire des économies avec AWS consiste à tirer parti de l’élasticité des plateformes. L’auto scaling des instances Amazon EC2 permet de dimensionner automatiquement la plateforme à la hausse ou à la baisse en fonction de la capacité dont vous avez besoin. Vous pouvez aussi éteindre automatiquement les instances quand elles ne sont pas utilisées. Enfin, étudiez quelles instances mettre sur AWS Lambda pour ne pas payer les ressources redondantes ou inutilisées.

Quand c’est possible, remplacez les instances Amazon EC2 par des services AWS qui ne vous obligent pas à gérer les capacités (ELB, Amazon CloudFront, Amazon SQS, Amazon Kinesis Firehose, AWS Lambda, Amazon SES, Amazon CloudSearch) ou dont les capacités sont facilement modifiables (Amazon DynamoDB, Amazon RDS, Amazon ElasticSearch service).

Profitez de la variété de choix qui vous est offerte
Le prix des instances à la demande d’Amazon EC2 vous apporte un maximum de flexibilité, sans engagement à long terme. Il existe 2 autres façons de payer vos instances EC2 et qui peuvent vous aider à réduire vos coûts : les instances réservées et les instances spot.

• Capacité réservée

Il est possible de réserver des instances EC2, pour bénéficier d’une réduction de leur taux horaire par rapport au prix d’une instance à la demande. Cette solution est idéale pour les applications pour lesquelles la consommation de ressources minimum est prévisible. Vous pouvez utiliser des outils comme l’AWS Trusted Advisor ou le reporting d’usage EC2 pour identifier les ressources les plus utilisées et donc les plus pertinentes à réserver. En fonction de vos achats d’instances réservées, les réductions apparaitront sur votre facture mensuelle. Souvenez-vous qu’il n’y a aucune différence technique entre instances à la demande et réservées.

Les options de réservation existent aussi pour d’autres services, comme par exemple Amazon Redshift, Amazon RDS, Amazon DynamoDB, et Amazon CloudFront.

Tips :
Ne vous engagez pas à réserver de instances tant que vous n’avez pas suffisamment évalué votre application en production. Une fois que vous avez réservé vos instances, suivez leur utilisation effective sur votre reporting pour être certain d’optimiser vos couts.

• Instances Spot

Pour une utilisation ponctuelle, vous pouvez enchérir sur des instances Spot, basées sur les capacités de calcul EC2 non utilisées. Comme elles sont souvent proposées avec une réduction de prix, le coût d’exécution de vos applications est considérablement réduit.

Les instances Spot sont idéales pour les workloads ayant une date flexible de début et de fin. Elles sont lancées quand votre enchère dépasse le prix du marché Spot, et elles continueront de tourner jusqu’à ce que vous les arrêtiez, ou jusqu’à ce que le prix du marché Spot dépasse votre enchère. Si le prix du marché Spot est supérieur à votre enchère, votre instance sera automatiquement résiliée et l’heure partielle d’utilisation ne sera pas facturée.

En conséquence, les instances Spot conviennent aux workloads qui tolèrent les interruptions. Mais vous pouvez aussi les utiliser lorsque vous avez besoin d’une disponibilité plus prévisible :

• Stratégie d’enchères :

Tant que votre instance Spot fonctionne, vous êtes facturé au prix du marché Spot (et pas au prix de votre enchère). Votre stratégie pourrait alors consister à proposer un prix bien plus élevé, dans l’espoir d’économiser beaucoup sur le long terme, même si le prix marché augmente occasionnellement.

• Mixer les instances :

Utiliser les instances réservées, sur demande, et Spot pour combiner une capacité minimale prévisible et un accès "opportuniste" à des ressources supplémentaires en fonction du prix du marché Spot. C’est une excellente solution pour améliorer les performances de votre application.

• Spots bloqués pour instances à durée définie :

Il est également possible d’enchérir pour des instances Spot à durée fixe. Ces dernières ont des taux horaires différents mais vous permettent de spécifier une exigence de durée. Si votre offre est acceptée, votre instance continuera à fonctionner jusqu'à ce que vous choisissiez d'y mettre fin, ou jusqu'à ce que la durée spécifiée soit terminée. Elle ne sera pas terminée en cas de changement de prix spot (mais bien sûr, vous devriez toujours la concevoir pour la tolérance aux pannes, car une instance spot peut échouer comme toute autre instance EC2).

Best Practices sur le prix Spot :
Les instances Spot vous permettent d’enchérir en simultané sur plusieurs types d’instance. Comme les prix fluctuent indépendamment pour chaque type d’instance dans une Zone de Disponibilité (AZ), il est possible d’obtenir davantage de capacités de calcul pour le même prix, à condition que votre application soit conçue pour être flexible sur les types d’instance. Testez votre application sur différents types d’instances. Faites des enchères sur toutes les instances qui répondent à vos critères pour optimiser au mieux les coûts.

Source : Architecting for the Cloud, AWS Best Practices