考虑到网页上的价格为:每小时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?
答案 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 ''