Comment puis-je surveiller les dépenses quotidiennes sur AWS?

26

Notre infrastructure est sur AWS. Je veux obtenir un rapport quotidien sur le montant dépensé la veille. Quelle est la meilleure façon de procéder?

Sabya
la source

Réponses:

20

Mise à jour

AWS vient d'annoncer la disponibilité générale de la fonctionnalité pour surveiller les frais estimés à l'aide des alertes de facturation via Amazon CloudWatch (elle est apparemment disponible pour les comptes premium AWS depuis fin 2011, voir la réponse de Daniel Lopez à Y a-t-il un moyen de configurer Amazon AWS limite de facturation? ):

Nous estimons régulièrement le total des frais mensuels pour chaque service AWS que vous utilisez. Lorsque vous activez la surveillance de votre compte, nous commençons à stocker les estimations en tant que mesures CloudWatch, où elles resteront disponibles pendant la période habituelle de 14 jours. [...]

Comme indiqué dans le billet de blog d'introduction, vous pouvez commencer par utiliser les alertes de facturation pour vous informer lorsque votre facture AWS sera plus élevée que prévu , consultez Surveiller vos frais estimés à l'aide d'Amazon CloudWatch pour plus de détails sur cette fonctionnalité.

Cela est déjà assez utile pour de nombreux besoins de base, cependant, l'utilisation des API CloudWatch pour récupérer vous-même les métriques stockées (voir GetMetricStatistics ) vous permet en fait de générer des flux de travail et une logique métier arbitraires en fonction de ces données, et bien sûr, vous pouvez générer un rapport quotidien sur combien dépensé la veille comme ça aussi.

Concernant ce dernier, le périmètre de cette offre est également souligné:

Il est important de noter qu'il s'agit d'estimations et non de prévisions . L'estimation se rapproche du coût de votre utilisation d'AWS à ce jour dans le cycle de facturation en cours et augmentera à mesure que vous continuez à consommer des ressources . [...] Il ne prend pas en compte les tendances ou les changements potentiels dans votre modèle d'utilisation AWS. [c'est moi qui souligne]

C'est-à-dire que la granularité des métriques rapportées n'a pas encore été analysée (je vois des points de données toutes les 4 à 8 heures, mais pas nécessairement des valeurs mises à jour à chaque fois, comme on pourrait s'y attendre en fait), donc dériver un rapport quotidien suffisamment précis pourrait nécessiter quelques post-traitement statistique.


Réponse initiale

Malheureusement, cela est moins simple qu'on ne le pense, d'autant plus que les données souhaitées peuvent être inspectées manuellement via votre compte. On peut s'attendre à deux options de surveillance:

  • notifications par e-mail / RSS / etc.
  • Accès API aux données

Ni AWS ni aucun autre fournisseur IaaS / PaaS / SaaS que je connaisse n'offre actuellement un accès API à leurs données comptables (peut-être en raison des implications financières / juridiques potentielles), ce qui rend toute forme d'intégration tierce (qui serait facile à faire de nos jours) encombrant au mieux, dans la mesure où vous devez recourir au grattage Web pour récupérer les données en premier lieu.

Heureusement, une nouvelle offre de Cloudability [lien supprimé après l'arrêt du niveau gratuit] est récemment entrée en scène pour le faire pour vous de manière agnostique professionnelle et fournisseur, nous l'utilisons déjà avec grand succès pour AWS en particulier - vous allez actuellement recevoir un rapport quotidien (ou moins fréquent) de vos dépenses mensuelles seulement , c'est-à-dire pas encore ventilé par rapport à vos dépenses quotidiennes. L'ajout de l'augmentation quotidienne serait bien sûr trivial, alors j'espère et je m'attends à ce qu'ils rendent plus d'informations comme celle-ci disponibles au fil du temps.

Leur approche de la tarification [lien supprimé après l'arrêt du niveau gratuit] est également rafraîchissante (bien qu'évidente) et simplement liée à vos propres dépenses dans le cloud, devrait donc être rentabilisée dès que vous réalisez le potentiel d'économie respectif (ils ne facturent pas rien du tout si vous dépensez moins de 2,5 k $ / mois).
Mise à jour 20121016 : Malheureusement, Cloudability a changé son modèle de tarification pour un plus commun, qui comprend toujours un niveau gratuit (et à un prix raisonnable en général), mais supprime l'accès aux fonctionnalités avancées, que j'ai considéré comme une approche rafraîchissante, juste et intelligente pour les utilisateurs avec de petits budgets, qui pourraient encore être des multiplicateurs ailleurs ou se moderniser une fois qu'ils y seront développés.

Mise à jour 20150115: Malheureusement, Cloudability a choisi la voie de nombreux fournisseurs de SaaS freemium et a finalement complètement abandonné le niveau gratuit: à partir du 1er février, nous ne proposerons plus l'édition Cloudability Free que vous utilisez aujourd'hui .

Mise à jour 20120427

L'ancienne mise en garde (conservée pour référence ci-dessous) exigeant vos informations d'identification AWS principales ne s'applique plus - AWS a récemment introduit de nouvelles fonctionnalités IAM: gestion des mots de passe et accès aux pages de rapports d'activité et d'utilisation du compte :

Cette nouvelle fonctionnalité vous permet de créer des utilisateurs IAM séparés et distincts à des fins commerciales et techniques. Vous pouvez accorder à vos utilisateurs professionnels l'accès aux pages Rapports d'activité et / ou de rapports d'utilisation du site Web AWS pour leur permettre d'accéder aux données de facturation et d'utilisation sans leur donner accès à d'autres ressources AWS telles que des instances EC2 ou des fichiers dans S3

La cloudabilité a désormais intégré cela également, vous n'avez donc plus besoin de leur remettre vos informations d'identification AWS principales ou de dépenser l'effort supplémentaire pour établir la facturation consolidée juste pour avoir un aperçu de vos dépenses dans le cloud, consultez Comment configurer Amazon IAM (Identity Account Management ) pour plus de détails.

Ancienne mise en garde

Il y a cependant une mise en garde dont il faut être conscient:

Pour accéder à vos données, vous devrez leur remettre vos identifiants AWS principaux, car sinon ils ne peuvent pas gratter votre compte, évidemment. Pour AWS en particulier, vous pouvez toujours éviter cela en facilitant la facturation consolidée , où vous consolidez le paiement pour plusieurs comptes Amazon AWS [...] en désignant un seul compte payant , qui à son tour n'a pas accès à vos ressources informatiques et données.

Steffen Opel
la source
Je viens de m'inscrire dans Cloudability mais dans leur courrier, je n'ai pas pu trouver combien avons-nous dépensé hier (ou au cours des dernières 24 heures). Ils donnent juste une estimation mensuelle et combien est dépensé jusqu'à présent.
Sabya
2
@sabya - vous avez raison bien sûr, je n'ai réalisé que le rapport quotidien et j'ai raté cette exigence supplémentaire, désolé (j'ai mis à jour la réponse pour refléter cela)! Évidemment, il sera trivial pour vous de faire les calculs vous-même après le 2ème jour, bien que les avoir directement dans l'e-mail soit une amélioration évidente et beaucoup plus pratique bien sûr.
Steffen Opel
12

En utilisant les outils awscli , vous pouvez obtenir votre total mensuel:

$ aws --region us-east-1 cloudwatch get-metric-statistics \
    --namespace "AWS/Billing" \
    --metric-name "EstimatedCharges" \
    --dimension "Name=Currency,Value=USD" \
    --start-time $(date +"%Y-%m-%dT%H:%M:00" --date="-12 hours") \
    --end-time $(date +"%Y-%m-%dT%H:%M:00") \
    --statistic Maximum \
    --period 60 \
    --output text | sort -r -k 3 | head -n 1 | cut -f 2

2494.47

Les totaux de deux jours différents peuvent être soustraits pour obtenir le delta quotidien. Ou, une estimation peut être obtenue en une seule fois en augmentant la fenêtre de temps ( end-time- start-time) à 24h et en soustrayant le premier point de données du dernier.

Remarques:

  • suppose que vous avez activé la surveillance de vos frais estimés
  • suppose que vous avez GNU date(pour d'autres date, par exemple, sur OSX, date -v-12Hpeut fonctionner)
  • votre devise peut varier
  • Amazon met à jour la métrique CloudWatch toutes les 4 heures environ, donc l'interrogation d'une fenêtre temporelle inférieure à 4 heures peut ne renvoyer aucun point de données. J'ai utilisé une fenêtre de 12 heures pour plus de sécurité.
  • Je voulais inclure un lien vers le blog sur lequel ma réponse était basée, mais apparemment, j'ai besoin de 10 points de réputation pour publier plus de 2 liens. :)
mpavlov
la source
1
Il est important de noter que la seule région qui fonctionne pour l'espace de noms 'AWS / Billing' est us-east-1. J'ai arraché une grande partie de mes cheveux en me demandant pourquoi mon compte avec accès à la facturation obtenait des résultats vides via la CLI.
Corey Cole
Juste une note, que l'awscli utilise botocore et ces attributs semblent être accessibles via boto3.readthedocs.io/en/latest/reference/services/…
monkut
Existe-t-il maintenant un moyen de faire en sorte que cela fonctionne pour d'autres régions?
nh2
4

Si vous avez vraiment besoin d'un rapport sur les coûts au jour le jour, vous devrez utiliser l' outil " Rapport d'utilisation " dans votre compte AWS. Vous pouvez demander un rapport pour chaque service que vous utilisez, quelle que soit la période que vous souhaitez, en granularité d'heure en mois. Ensuite, il télécharge un CSV.

Vous devrez effectuer un post-traitement sur ce CSV (car ce n'est pas dans le coût, mais dans l'utilisation, etc.), mais il vous fournira les données dont vous avez besoin pour avoir un coût au jour le jour.

Jon
la source
+1 Oui, je comprends. Je cherchais juste une méthode plus simple.
Sabya
2

Peut-être que ce module Python sur Github peut vous aider à démarrer: pyec2costs (pour les instances réservées ou à la demande).

Henk
la source
2

Il y a un nouvel outil open source de Netflix appelé Ice: https://github.com/Netflix/ice qui permet de visualiser les détails de facturation récupérés via les rapports AWS générés dans vos compartiments S3.

ngeek
la source
1

Jetez un oeil à Xervmon. Ils fournissent des dépenses et une utilisation quotidiennes en plus d'analyses sur l'historique. Ils sont un fournisseur de services à venir avec des intégrations détaillées avec Amazon AWS prévues dans les 3 prochains mois.

Quelques captures d'écran de mon compte actuel sont comme ci-dessous. http://cloudmaya.net/~develop/demo/Slide1.jpg http://cloudmaya.net/~develop/demo/Slide2.jpg

Beaucoup de professionnels ont construit et c'est assez soigné.

Sid4it
la source
1

Voici un script simple qui montre comment analyser et analyser votre fichier CSV de facturation AWS détaillé:

Cela devrait être assez facile pour que vous puissiez créer votre propre analyse!

oDDsKooL
la source
1

Utilisation de la commande CLI de CostExplorer AWS Il est possible de récupérer les métriques de coût et d'utilisation pour le compte

Par exemple: si vous avez besoin de récupérer le coût du début du mois jusqu'à aujourd'hui, vous pouvez utiliser la commande ci-dessous.

aws ce get-cost-and-usage --time-period Start=$(date -u -d "$TODAY" '+%Y-%m-01'),End=$(date -u +"%Y-%m-%d" --date="+1 day") --granularity MONTHLY --metrics UnblendedCost --output text | sort -r -k 3 | head -n 1 | cut -f 2

Sortie: 615.6129260967

Si vous devez obtenir le coût QUOTIDIEN, utilisez GRANULARITY as DAILY comme indiqué ci-dessous:

aws ce get-cost-and-usage --time-period Start=$(date -u -d "$TODAY" '+%Y-%m-01'),End=$(date -u +"%Y-%m-%d" --date="+1 day") --granularity DAILY --metrics UnblendedCost
Roopa
la source
0

J'ai vu des entreprises créer leurs propres outils internes pour cela - en gros, elles suppriment la page de facturation AWS et sur leur propre tableau de bord, affichent le coût actuel, et dans un exemple, elles le divisent par les jours du mois qui se sont écoulés et multipliez cela pour obtenir le coût total estimé du mois.

AWS ne propose pas encore d'API de facturation (je suis sûr qu'ils le feront à l'avenir), mais il existe quelques services externes qui peuvent vous aider. L'un est CloudVertical (divulgation: je travaille ici), où vous pouvez obtenir votre coût quotidien, mensuel et horaire, ventilé par service et pour plusieurs comptes.

Le vrai Saint-Graal pour un service comme AWS n'est pas seulement de suivre les dépenses quotidiennes, mais de montrer des informations sur l'efficacité (coût + utilisation = efficacité) et également de mettre en évidence les opportunités d'économies (par exemple: temps d'utilisation des instances réservées ou ponctuelles)

Ed Byrne
la source
Ed Byme a raison. Il existe un certain nombre de fournisseurs. La cloudabilité en est une, tout comme CloudVertical. Cependant, ce sont toutes des solutions très lourdes et coûteuses avec de nombreuses fonctionnalités que vous n'utiliserez probablement jamais. Au lieu de cela, considérez BillGist.com (divulgation: je travaille ici) qui est super bon marché et les e-mails que vous signalez directement dans votre boîte de réception.
0

Il existe un outil pour afficher votre utilisation de facturation AWS où vous pouvez découper et découper votre utilisation sur différentes ressources AWS en aussi peu que 30 minutes. J'ai publié une réponse plus approfondie sur /programming//a/37585673/1526342

droidlabour
la source
0

Vous pouvez désormais le faire avec l'API Cost Explorer. Vous pouvez accéder très facilement via awscli / boto3 par exemple mais le fait est que c'est beaucoup plus facile qu'avant.

cherrysoft
la source