получить EC2 цены программно? - PullRequest
40 голосов
/ 07 сентября 2011

Есть ли способ получить цену AWS программно (стоимость за час для каждого типа экземпляра, стоимость за ГБ / месяц хранения на S3 и т. Д.)?

Кроме того, существуют ли инструменты мониторинга затрат? Например, есть ли инструмент, который может отчитываться об использовании вашего экземпляра EC2 на почасовой основе (по сравнению с ежемесячной платформой, как это делает Amazon)?

Заранее спасибо.

Ответы [ 9 ]

59 голосов
/ 07 сентября 2011

ОБНОВЛЕНИЕ:

Существует API ценообразования AWS: https://aws.amazon.com/blogs/aws/new-aws-price-list-api/

Оригинальный ответ:

ЦенаСписки доступны в виде файлов JSONP (вам нужно удалить вызов функции), которые используются на страницах ценообразования AWS.Каждая таблица (и каждая вкладка для таблицы) имеет отдельный файл JSON.Возможно, это не API, но, безусловно, легко усваивается компьютером.Вот список, который поддерживает страницу с ценами EC2 (по состоянию на 17 декабря 2014 года):

ПРЕДУПРЕЖДЕНИЕ: Конечные точки время от времени меняются, и часто старый URL все еще остается со старыми значениями.Лучше проверить текущий статус, чем полагаться на ссылки, представленные в этой теме.

Итак, вот короткая команда для получения текущего набора или URL-адресов с любой страницы ценообразования AWS.Пример на основе EC2.Запустите его на Linux или Cygwin.На самом деле эта команда использовалась для создания списка выше.

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

Для тех, кто не любит командную строку, вы также можете проверить в сетевой консоли веб-браузера (вы получаете там с F12), фильтр сОбъекты JS:

enter image description here

37 голосов
/ 21 ноября 2013

Просто чтобы вы знали, что они, похоже, изменили адреса JSON. Включает новые типы экземпляров C3

Обновление 01/21/2014 : адреса снова изменены. Обратите внимание, что это файлы JS с функцией обратного вызова, которую следует удалить, чтобы она стала доступной для анализа JSON.

Обновление от 21.09.2014 : адреса изменились еще раз и включают новые типы T2. Чтобы обрабатываться как файлы JSON, следует удалить начальные комментарии и функцию обратного вызова, а ключи заключить в двойные кавычки.

По требованию

Зарезервированный свет

Зарезервированный средний

Зарезервированный тяжелый

Другое

Предыдущая конечная точка: http://aws -assets-pricing-prod.s3.amazonaws.com / priceing / ec2 / linux-od.js

4 голосов
/ 09 ноября 2012

Этот рубиновый драгоценный камень объединяет данные о ценах JSON, предоставленные Amazon, и предоставляет простой интерфейс, который заботится о сопоставлении имен регионов и типов экземпляров с именами, используемыми в API EC2.

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

2 голосов
/ 15 мая 2017

Если вы используете golang, я написал библиотеку, которая может запрашивать данные, используя "https://pricing.us -east-1.amazonaws.com / предложения / v1.0 / AWS / {offer_code} / ток / индекс. {Формат}" формат.

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)
               }
        }
}
2 голосов
/ 31 октября 2016

В дополнение к ответу @ arturhoo , который предоставляет места EC2

Исторические цены можно получить с помощью инструмента 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]'

цена спот между 3:00am и 3:16am понедельник 31 октября 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"
    ]
]
1 голос
/ 11 декабря 2015

AWS запустил новый API прайс-листа для интеграции программирования.

Синтаксис URL:

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

Чтобы получить список вспомогательных услуг:

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

Блог AWS Ссылка: https://aws.amazon.com/blogs/aws/new-aws-price-list-api/

0 голосов
/ 21 мая 2015

Если вы используете Go, я написал пакет для декодирования данных в структуру, основанную на файлах, на которые ссылается ответ @ okrasz

https://github.com/recursionpharma/ec2prices

Не стесняйтесь вносить дополнительные данные о ценах.

0 голосов
/ 31 марта 2015

Поскольку Amazon недавно изменил схему ценообразования для экземпляров EC2 (не более Medium или Light, только Heavy, у которого есть несколько вариантов оплаты - allUpfront ,partULL, noUpfront), а также некоторое время назад отделил экземпляры старого поколения от текущих изменился список недокументированных ссылок API ценообразования, а также структура JSON, предоставляемая этими ссылками. Полный список ссылок на недокументированный API ценообразования EC2 с описаниями, а также модуль Python для удобного доступа и структурированного вывода цен в форматах JSON, CSV или Table можно найти в следующем репозитории:

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

0 голосов
/ 13 августа 2012

Я являюсь автором инструмента с открытым исходным кодом ec2-cost-Calculate, который будет «сообщать об использовании вашего экземпляра EC2 на почасовой основе» - инструмент доступен на awsmissingtools.com. Выход может быть почасовым, ежедневным, ежемесячным. Существуют две версии инструмента, одна написана на Ruby, а другая на bash.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...