AWS竞价型实例定价出价值

时间:2018-09-22 11:54:34

标签: amazon-ec2

考虑到网页上的价格为:每小时0.0663美元,我曾尝试对c5.xlarge实例进行出价,每小时最高单位为0.03美元,因此这笔费用不到一半。

但是,它在仪表板上显示:

Status

price-too-low: Your Spot request price of 0.03 is lower than the 
minimum required Spot request fulfillment price of 0.097. 

广告价格如何为0.0663,当我要求为0.03时,它告诉我最小值为0.097?

2 个答案:

答案 0 :(得分:0)

https://forums.aws.amazon.com/thread.jspa?threadID=137848

  

“价格过低”的出价状态也会向您显示市场价格   在评估您的出价时。您的出价未兑现   低于现货市场价格。为了您的出价成功   完成,您将不得不出价高于市场价格。如果您竞标   较低,只有在市场跌至下方时,您的出价才会被兑现   您的出价稍后。

因此,c5.xlarge的当前价格似乎是0.097,默认/最小值是0.0663。

答案 1 :(得分:0)

现货价格将根据该地区的可用容量而波动,并且取决于实例类型和可用区域。 https://aws.amazon.com/ec2/spot/pricing/上的价格表示该地区的价格。为了接近您要竞标的实际价格,可以考虑使用API​​查看可用区。

最近,现货定价发生了一些变化,旨在消除价格差异:https://aws.amazon.com/blogs/compute/new-amazon-ec2-spot-pricing/

在ap-south-east-2中,有一次我们有一个m4.large可用区,价格是原来的三倍,而其他区域则保持历史上的正常价格。作为故障排除的一部分,我编写了以下简单的python脚本,可以帮助您了解您所在地区的当前价格:

#!/usr/bin/python
import boto3
from datetime import datetime, timedelta
from dateutil import tz

ec2 = boto3.client('ec2')

from_zone = tz.tzutc()
to_zone = tz.tzlocal()

print "Local Time:", str(datetime.now())
print "UTC Time  :", str(datetime.utcnow())

endTime = datetime.utcnow().replace(tzinfo=from_zone)
startTime = endTime-timedelta(hours=1)

def outputSpotPricing(az):
    response = ec2.describe_spot_price_history(
        AvailabilityZone=az,
        EndTime=endTime,
        InstanceTypes=[
            'm4.large',
            'm4.xlarge',
        ],
        ProductDescriptions=[
            'Linux/UNIX (Amazon VPC)',
        ],
        StartTime=startTime,
        MaxResults=3
    )

    print "\n---------AvailabilityZone", az
    for price in response['SpotPriceHistory']:
        print "Price:", price['SpotPrice']
        print "Time :", str( price['Timestamp'].astimezone(to_zone))

outputSpotPricing('ap-southeast-2a')
outputSpotPricing('ap-southeast-2b')
outputSpotPricing('ap-southeast-2c')
print ''