Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/amazon-web-services/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Amazon ec2 以编程方式获取ec2定价?_Amazon Ec2_Amazon Web Services - Fatal编程技术网

Amazon ec2 以编程方式获取ec2定价?

Amazon ec2 以编程方式获取ec2定价?,amazon-ec2,amazon-web-services,Amazon Ec2,Amazon Web Services,有没有一种方法可以通过编程获得AWS定价(每种实例类型的每小时成本、S3上每GB/月的存储成本等等) 此外,是否有成本监控工具?例如,是否有一个工具可以每小时报告您的EC2实例使用情况(而不是每月,Amazon就是这样做的) 提前感谢。更新: 现在有AWS定价API: 原始答案: 价目表以JSONP文件的形式提供(您需要去掉函数调用),AWS定价页面使用这些文件。每个表(以及表的每个选项卡)都有单独的JSON文件。它可能不是一个API,但肯定是计算机可以消化的。以下是支持EC2定价页面的列表(

有没有一种方法可以通过编程获得AWS定价(每种实例类型的每小时成本、S3上每GB/月的存储成本等等)

此外,是否有成本监控工具?例如,是否有一个工具可以每小时报告您的EC2实例使用情况(而不是每月,Amazon就是这样做的)


提前感谢。

更新:

现在有AWS定价API:

原始答案:

价目表以JSONP文件的形式提供(您需要去掉函数调用),AWS定价页面使用这些文件。每个表(以及表的每个选项卡)都有单独的JSON文件。它可能不是一个API,但肯定是计算机可以消化的。以下是支持EC2定价页面的列表(截至2014年12月17日):

  • 按需Linux:
  • 按需RedHat:
  • 按需SUSE:
  • 按需窗口:
  • 按需SQL标准:
  • 按需SQL Web:
  • 保留Linux:
  • 保留红帽:
  • 保留SUSE:
  • 保留窗口:
  • 保留SQL标准:
  • 保留SQL站点:
  • 保留点实例:
  • 数据传输:
  • EBS优化:
  • EBS:
  • 弹性IP:
  • CloudWatch:
  • 厄尔巴托:
  • 电子病历:
警告:端点会不时更改,通常旧URL仍然存在,并带有旧值。最好检查当前状态,而不是依赖此线程中提供的链接

因此,这里有一个简短的命令,可以从任何AWS定价页面获取当前集合或URL。基于EC2的示例。在Linux或Cygwin上运行它。实际上,这个命令用于创建上面的列表

curl http://aws.amazon.com/ec2/pricing/ 2>/dev/null | grep 'model:' | sed -e "s/.*'\(.*\)'.*/http:\\1/"
对于那些不喜欢命令行的人,您还可以在web浏览器网络控制台中进行检查(您可以使用F12实现),使用JS对象进行过滤:


我是一个名为ec2 cost calculate的开源工具的作者,该工具将“每小时报告您的ec2实例使用情况”——该工具可在awsmissingtools.com上获得。输出可以是每小时、每天、每月。该工具有两个版本,一个是用Ruby编写的,另一个是用bash编写的。

这个Ruby gem包装了Amazon提供的JSON定价数据,并提供了一个简单的接口,负责将区域和实例类型名称映射到EC2 API中使用的名称


只是想让您知道,他们似乎已经更改了JSON地址。它包括新的C3实例类型

更新2014年1月21日:地址再次更改。请注意,这些是带有回调函数的JS文件,应该将其删除,使其成为可解析的JSON

更新09/21/2014:地址再次更改,包括新的T2 Instance类型。要将其视为JSON文件,应删除初始注释和回调函数,并将键用双引号括起来

随需应变

  • Linux:
  • 窗口:
  • 莱尔:
  • 系统性红斑狼疮:
  • Windows w/SQL标准:
  • Windows w/SQL Web:
保留灯光

  • Linux:
  • 窗口:
  • 莱尔:
  • 系统性红斑狼疮:
  • Windows w/SQL标准:
  • Windows w/SQL Web:
保留介质

  • Linux:
  • 窗口:
  • 莱尔:
  • 系统性红斑狼疮:
  • Windows w/SQL标准:
  • Windows w/SQL Web:
保留重的

  • Linux:
  • 窗口:
  • 莱尔:
  • 系统性红斑狼疮:
  • Windows w/SQL标准:
  • Windows w/SQL Web:
其他

  • 现场实例:
  • 数据传输:
  • EBS优化实例附加费:
  • EBS:
  • 弹性IP:
  • CloudWatch:
  • 厄尔巴托:

上一个端点:

由于亚马逊最近更改了EC2实例的定价方案(不再是中型或轻型,只有重型,具有多种支付选项-allUpfront、partialUpfront、noUpfront),并且不久前将老一代实例与当前实例分开,未记录的定价API链接列表已更改,这些链接提供的JSON结构也已更改。 以下存储库中提供了EC2定价未记录API的完整列表if链接和说明,以及便于访问的Python模块和JSON、CSV或表格格式定价的结构化输出:


如果您使用的是Go,我编写了一个包,根据中链接到的文件将数据解码为结构


请随时提供更多定价数据。

AWS推出了用于编程集成的新价目表API

URL语法:

要获取支持服务列表,请执行以下操作:

AWS博客参考:

除此之外,还提供EC2站点

您可以使用

取2016年10月31日星期一(UTC)凌晨3:00至凌晨3:16之间的现货价格


如果您使用的是golang,我编写了一个库,可以使用 “{offer_code}/current/index.{format}” 格式

使用aws cli(在下面的示例中,我还介绍了如何使用jq执行相同的操作)

要获取服务代码列表,请执行以下操作: 要获取服务代码列表(使用jq): 它将返回如下值:

亚马逊2
亚马逊3
亚马逊路线53
[……]



要获取给定服务代码的属性列表,请执行以下操作: 要获取给定服务代码的属性列表(使用jq): 它将返回如下值:

实例库
位置
记忆
vcpu
体积类型
[……]



要在您拥有服务代码和属性后获取定价信息,请执行以下操作: (这将需要一段时间,因为它是e
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]'
[
    [
        "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"
    ]
]
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)
               }
        }
}
aws pricing describe-services --region us-east-1
aws pricing describe-services --region us-east-1 | jq -r '.Services[] | .ServiceCode'
aws pricing describe-services --service-code AmazonEC2 --region us-east-1
aws pricing describe-services --service-code AmazonEC2 --region us-east-1 | jq -r '.Services[] | .AttributeNames[]'
aws pricing get-products --service-code AmazonEC2 --region us-east-1
aws pricing get-products --service-code AmazonEC2 --filters "Type=TERM_MATCH,Field=instanceType,Value=m5.xlarge" "Type=TERM_MATCH,Field=location,Value=US East (N. Virginia)" --region us-east-1
aws pricing get-products --service-code AmazonEC2 --filters "Type=TERM_MATCH,Field=instanceType,Value=m5.xlarge" "Type=TERM_MATCH,Field=location,Value=US East (N. Virginia)" --region us-east-1 | jq -rc '.PriceList[]' | jq -r '[ .product.attributes.servicecode, .product.attributes.location, .product.attributes.instancesku?, .product.attributes.instanceType, .product.attributes.usagetype, .product.attributes.operatingSystem, .product.attributes.memory, .product.attributes.physicalProcessor, .product.attributes.processorArchitecture, .product.attributes.vcpu, .product.attributes.currentGeneration, .terms.OnDemand[].priceDimensions[].unit, .terms.OnDemand[].priceDimensions[].pricePerUnit.USD, .terms.OnDemand[].priceDimensions[].description] | @csv'
"AmazonEC2","US East (N. Virginia)","EWZRARGKPMTYQJFP","m5.xlarge","UnusedDed:m5.xlarge","Linux","16 GiB","Intel Xeon Platinum 8175 (Skylake)","64-bit","4","Yes","Hrs","0.6840000000","$0.684 per Dedicated Unused Reservation Linux with SQL Std m5.xlarge Instance Hour"```
[...]
curl -L 'ec2.shop?filter=.large'
Instance Type    Memory             vCPUs  Storage               Network             Price       Monthly     Spot Price
m6g.large        8 GiB            2 vCPUs  EBS only              Up to 10 Gigabit    0.0770      56.210      0.0357
t3.large         8 GiB            2 vCPUs  EBS only              Up to 5 Gigabit     0.0832      60.736      0.0250
m5a.large        8 GiB            2 vCPUs  EBS only              Up to 10 Gigabit    0.0860      62.780      0.0345
i3en.large       16 GiB           2 vCPUs  1 x 1250 NVMe SSD     Up to 25 Gigabit    0.2260      164.980     0.0678
r4.large         15.25 GiB        2 vCPUs  EBS only              Up to 10 Gigabit    0.1330      97.090      0.0343
r5.large         16 GiB           2 vCPUs  EBS only              Up to 10 Gigabit    0.1260      91.980      0.0356
r5a.large        16 GiB           2 vCPUs  EBS only              10 Gigabit          0.1130      82.490      0.0356
r5dn.large       16 GiB           2 vCPUs  1 x 75 NVMe SSD       Up to 25 Gigabit    0.1670      121.910     0.0356
t3a.large        8 GiB            2 vCPUs  EBS only              Up to 5 Gigabit     0.0752      54.896      0.0226
m4.large         8 GiB            2 vCPUs  EBS only              Moderate            0.1000      73.000      0.0362
i3.large         15.25 GiB        2 vCPUs  1 x 475 NVMe SSD      Up to 10 Gigabit    0.1560      113.880     0.0468
m5dn.large       8 GiB            2 vCPUs  1 x 75 NVMe SSD       Up to 25 Gigabit    0.1360      99.280      0.0340
m5d.large        8 GiB            2 vCPUs  1 x 75 NVMe SSD       Up to 10 Gigabit    0.1130      82.490      0.0340
t2.large         8 GiB            2 vCPUs  EBS only              Low to Moderate     0.0928      67.744      0.0278
z1d.large        16 GiB           2 vCPUs  1 x 75 NVMe SSD       Up to 10 Gigabit    0.1860      135.780     0.0558
c5.large         4 GiB            2 vCPUs  EBS only              Up to 10 Gigabit    0.0850      62.050      0.0324
m5ad.large       8 GiB            2 vCPUs  1 x 75 NVMe SSD       Up to 10 Gigabit    0.1030      75.190      0.0345
r6g.large        16 GiB           2 vCPUs  EBS only              Up to 10 Gigabit    0.1008      73.584      0.0374
r5d.large        16 GiB           2 vCPUs  1 x 75 NVMe SSD       10 Gigabit          0.1440      105.120     0.0356
r5n.large        16 GiB           2 vCPUs  EBS only              Up to 25 Gigabit    0.1490      108.770     0.0356
r5ad.large       16 GiB           2 vCPUs  1 x 75 NVMe SSD       10 Gigabit          0.1310      95.630      0.0356
c6g.large        4 GiB            2 vCPUs  EBS only              Up to 10 Gigabit    0.0680      49.640      0.0340
m5n.large        8 GiB            2 vCPUs  EBS only              Up to 25 Gigabit    0.1190      86.870      0.0340
c4.large         3.75 GiB         2 vCPUs  EBS only              Moderate            0.1000      73.000      0.0308
c5a.large        4 GiB            2 vCPUs  EBS only              Up to 10 Gigabit    0.0770      56.210      0.0324
c5d.large        4 GiB            2 vCPUs  1 x 50 NVMe SSD       Up to 10 Gigabit    0.0960      70.080      0.0324
m5.large         8 GiB            2 vCPUs  EBS only              Up to 10 Gigabit    0.0960      70.080      0.0341
c5n.large        5.25 GiB         2 vCPUs  EBS only              Up to 25 Gigabit    0.1080      78.840      0.0326
a1.large         4 GiB            2 vCPUs  EBS only              Up to 10 Gigabit    0.0510      37.230      0.0227
c3.large         3.75 GiB         2 vCPUs  2 x 16 SSD            Moderate            0.1050      76.650      0.0294
r3.large         15.25 GiB        2 vCPUs  1 x 32 SSD            Moderate            0.1660      121.180     0.0323
m1.large         7.5 GiB          2 vCPUs  2 x 420 SSD           Moderate            0.1750      127.750     0.0175
m3.large         7.5 GiB          2 vCPUs  1 x 32 SSD            Moderate            0.1330      97.090      0.0308
curl -sL 'ec2.shop?filter=m4' -H 'accept: json' | jq .
{
  "Prices": [
    {
      "InstanceType": "m4.16xlarge",
      "Memory": "256 GiB",
      "VCPUS": 64,
      "Storage": "EBS only",
      "Network": "20 Gigabit",
      "Cost": 3.2,
      "MonthlyPrice": 2336,
      "SpotPrice": "0.9479"
    },
    {
      "InstanceType": "m4.large",
      "Memory": "8 GiB",
      "VCPUS": 2,
      "Storage": "EBS only",
      "Network": "Moderate",
      "Cost": 0.1,
      "MonthlyPrice": 73,
      "SpotPrice": "0.0362"
    },
    {
      "InstanceType": "m4.2xlarge",
      "Memory": "32 GiB",
      "VCPUS": 8,
      "Storage": "EBS only",
      "Network": "High",
      "Cost": 0.4,
      "MonthlyPrice": 292,
      "SpotPrice": "0.1504"
    },
    {
      "InstanceType": "m4.4xlarge",
      "Memory": "64 GiB",
      "VCPUS": 16,
      "Storage": "EBS only",
      "Network": "High",
      "Cost": 0.8,
      "MonthlyPrice": 584,
      "SpotPrice": "0.3168"
    },
    {
      "InstanceType": "m4.xlarge",
      "Memory": "16 GiB",
      "VCPUS": 4,
      "Storage": "EBS only",
      "Network": "High",
      "Cost": 0.2,
      "MonthlyPrice": 146,
      "SpotPrice": "0.0661"
    },
    {
      "InstanceType": "m4.10xlarge",
      "Memory": "160 GiB",
      "VCPUS": 40,
      "Storage": "EBS only",
      "Network": "10 Gigabit",
      "Cost": 2,
      "MonthlyPrice": 1460,
      "SpotPrice": "0.7050"
    }
  ]
}