我正在研究AWS api以检索有关我的EC2实例的必要信息。
所以,我正在使用AWS Cost Explorer服务。
它具有“GetCostAndUsage”功能,例如,它可以发送以下信息。 (这是官方AWS文档中的一个示例)
{
"TimePeriod": {
"Start":"2017-09-01",
"End": "2017-10-01"
},
"Granularity": "MONTHLY",
"Filter": {
"Dimensions": {
"Key": "SERVICE",
"Values": [
"Amazon Simple Storage Service"
]
}
},
"GroupBy":[
{
"Type":"DIMENSION",
"Key":"SERVICE"
},
{
"Type":"TAG",
"Key":"Environment"
}
],
"Metrics":["BlendedCost", "UnblendedCost", "UsageQuantity"]
}
并检索以下信息。 (这是官方AWS文档中的一个示例)
{
"GroupDefinitions": [
{
"Key": "SERVICE",
"Type": "DIMENSION"
},
{
"Key": "Environment",
"Type": "TAG"
}
],
"ResultsByTime": [
{
"Estimated": false,
"Groups": [
{
"Keys": [
"Amazon Simple Storage Service",
"Environment$Prod"
],
"Metrics": {
"BlendedCost": {
"Amount": "39.1603300457",
"Unit": "USD"
},
"UnblendedCost": {
"Amount": "39.1603300457",
"Unit": "USD"
},
"UsageQuantity": {
"Amount": "173842.5440074444",
"Unit": "N/A"
}
}
},
{
"Keys": [
"Amazon Simple Storage Service",
"Environment$Test"
],
"Metrics": {
"BlendedCost": {
"Amount": "0.1337464807",
"Unit": "USD"
},
"UnblendedCost": {
"Amount": "0.1337464807",
"Unit": "USD"
},
"UsageQuantity": {
"Amount": "15992.0786663399",
"Unit": "N/A"
}
}
}
],
"TimePeriod": {
"End": "2017-10-01",
"Start": "2017-09-01"
},
"Total": {}
}
]
}
我猜测关键'度量标准'中检索到的数据,这是总成本。不是每一个。 那么,我如何获得每个EC2实例的每种使用和成本?
答案 0 :(得分:0)
将确切的成本与每个实例联系起来很困难 - 简单的例子,您有2个相同大小的实例 - 一个保留,一个按需 - 您每月运行1/2然后在本月的第二个半月关闭其中一个。
您将支付整个月的预留实例和每月1/2的按需实例 - 但是哪个实例是保留的并且是按需的?你不能说;保留实例的概念只是一种计费概念,并不与特定实例相关联。
您可能能够估算出您正在寻找的内容 - 但也有局限性。
答案 1 :(得分:0)
您可以使用标签来跟踪资源成本。对于EC2,您可以在Project Explorer中分配诸如Project:myprojcet或Application:myapp之类的标签,然后按标签过滤费用,并使用已放置的标签来跟踪费用。如果某个实例在某个时候被预订计划涵盖,则该标签只会显示未涵盖您的费用的期间的费用。
答案 2 :(得分:0)
知道这个问题很老,但您需要使用 GetCostAndUsageWithResources 调用,而不是 GetCostAndUsage。