web-dev-qa-db-fra.com

obtenir la tarification ec2 par programme?

Existe-t-il un moyen d'obtenir la tarification AWS par programme (coût par heure de chaque type d'instance, coût par Go/mois de stockage sur S3, etc.)?

De plus, existe-t-il des outils de suivi des coûts? Par exemple, existe-t-il un outil permettant de rapporter votre utilisation de l'instance EC2 sur une base horaire (par rapport à une base mensuelle, comme le fait Amazon)?

Merci d'avance.

39
morfys

METTRE À JOUR:

Il existe désormais une API de tarification AWS: https://aws.Amazon.com/blogs/aws/new-aws-price-list-api/

Réponse originale:

Les listes de prix sont disponibles sous forme de fichiers JSONP (vous devez supprimer l'appel de fonction) utilisés par les pages de tarification AWS. Chaque table (et chaque onglet de table) a un fichier JSON séparé. Ce n'est pas une API peut-être, mais certainement digérable par ordinateur. Voici une liste qui prend en charge la page de tarification EC2 (à compter du 17 décembre 2014):

AVERTISSEMENT: Les points de terminaison changent de temps en temps et, souvent, l'ancienne URL est toujours présente avec les anciennes valeurs. Il est préférable de vérifier l'état actuel du système plutôt que de compter sur les liens fournis dans ce fil. 

Donc, voici une commande courte pour obtenir un ensemble actuel ou des URL à partir de n'importe quelle page de tarification AWS. Exemple basé sur EC2. Exécutez-le sur Linux ou Cygwin. En réalité, cette commande a été utilisée pour créer la liste ci-dessus.

curl http://aws.Amazon.com/ec2/pricing/ 2>/dev/null | grep 'model:' | sed -e "s/.*'\(.*\)'.*/http:\\1/"

Pour ceux qui n'aiment pas la ligne de commande, vous pouvez également vérifier dans une console réseau de navigateur Web (vous y arrivez avec F12), filtrer avec des objets JS:

enter image description here

58
okrasz

Juste pour vous faire savoir qu'ils semblent avoir changé les adresses JSON. Il inclut les nouveaux types d'instances C3

Mise à jour 21/01/2014: les adresses ont à nouveau changé. Veuillez noter que ce sont des fichiers JS avec une fonction de rappel qui doit être supprimée pour devenir un JSON analysable.

Mise à jour 21/09/2014: les adresses ont été modifiées à nouveau et incluent les nouveaux types d'instants T2. Pour être traités comme des fichiers JSON, les commentaires initiaux et la fonction de rappel doivent être supprimés et les clés doivent être entourées de guillemets.

À la demande

Lumière réservée

Médium réservé

Réservé Lourd

Autre

Critère précédent: http://aws-assets-pricing-prod.s3.amazonaws.com/pricing/ec2/linux-od.js

37
arturhoo

Ce joyau Ruby encapsule les données de tarification JSON fournies par Amazon et fournit une interface simple, qui permet de mapper les noms de région et de type d'instance sur ceux utilisés dans l'API EC2.

https://github.com/sonian/Amazon-pricing

4
Matt Zimmerman

En plus de la réponse de @ arturhoo qui fournit les spots EC2

Vous pouvez obtenir les prix historiques avec l'outil CLI

aws ec2 describe-spot-price-history \
    --instance-types m1.xlarge \
    --product-description "Linux/UNIX (Amazon VPC)" \
    --start-time 2016-10-31T03:00:00 \
    --end-time 2016-10-31T03:16:00 \
    --query 'SpotPriceHistory[*].[Timestamp,SpotPrice]'

qui prend le prix spot entre 3:00am et 3:16am lundi 31 octobre 2016 (UTC) 

[
    [
        "2016-10-31T03:06:12.000Z", 
        "0.041500"
    ], 
    [
        "2016-10-31T03:00:26.000Z", 
        "0.041600"
    ], 
    [
        "2016-10-31T02:59:14.000Z", 
        "0.041500"
    ], 
    [
        "2016-10-31T02:00:18.000Z", 
        "0.040600"
    ], 
    [
        "2016-10-30T23:55:06.000Z", 
        "0.043200"
    ]
]
2

Si vous utilisez golang, j’ai écrit une bibliothèque capable d’interroger les données à l’aide du fichier " https://pricing.us-east-1.amazonaws.com/offers/v1.0/aws/ { code_offre}/current/index. {format} " format.

https://github.com/Chronojam/aws-pricing-api

import (
        "github.com/chronojam/aws-pricing-api/types/schema"
)

func main() {
        ec2 := &schema.AmazonEC2{}

        // Populate this object with new pricing data
        err := ec2.Refresh()
        if err != nil {
                panic(err)
        }

        // Get the price of all c4.Large instances,
        // running linux, on shared tenancy
        c4Large := []*schema.AmazonEC2_Product{}
        for _, p := range ec2.Products {
               if p.Attributes.InstanceType == "c4.large" &&
                       p.Attributes.OperatingSystem == "Linux" &&
                       p.Attributes.Tenancy == "Shared" {
                       c4Large = append(c4Large, p)
               }
        }
}
1
Chronojam

AWS a lancé la nouvelle API de liste de prix pour l'intégration de la programmation.

Syntaxe de l'URL:

https://pricing.us-east-1.amazonaws.com/offers/v1.0/aws/{offer_codeBuch/current/index.{format}

Pour obtenir la liste des services d'assistance:

https://pricing.us-east-1.amazonaws.com/offers/v1.0/aws/index.json

AWS blog Referance: https://aws.Amazon.com/blogs/aws/new-aws-price-list-ap - /

1
Mohan

Si vous utilisez Go, j'ai écrit un package pour décoder les données dans une structure, basé sur les fichiers liés à - Réponse de @ okrasz

https://github.com/recursionpharma/ec2prices

N'hésitez pas à contribuer avec plus de données sur les prix.

0
atp

Étant donné qu'Amazon a récemment modifié le schéma de tarification des instances EC2 (il n'y a plus de moyen ni de léger, mais uniquement de Heavy qui dispose de plusieurs options de paiement - allUpfront, partialUpfront, noUpfront) et de séparer les instances de l'ancienne génération des Les liens d’API de tarification non documentés ont également changé la structure du JSON provisionné par ces liens. La liste complète des liens de l'API non documentée de tarification EC2 avec les descriptions, ainsi que le module Python pour un accès pratique et une sortie structurée de la tarification aux formats JSON, CSV ou Table se trouvent dans le référentiel suivant:

https://github.com/ilia-semenov/awspricingfull

0
isemenov

Je suis l'auteur d'un outil open-source appelé ec2-cost -calcul qui va "rapporter votre utilisation de l'instance EC2 sur une base horaire" - cet outil est disponible à l'adresse awsmissingtools.com. La sortie peut être horaire, quotidienne, mensuelle. Il existe deux versions de l'outil, l'une écrite en Ruby et l'autre écrite en bash.

0
Colin Johnson