Спотовые цены будут колебаться в зависимости от доступной емкости в регионе и в зависимости от типа экземпляра и зоны доступности.Цена на https://aws.amazon.com/ec2/spot/pricing/ является указанием цены региона.Чтобы приблизиться к фактической цене, которую вы предлагаете сделать ставку, вы можете использовать API для просмотра зон доступности.
В последнее время произошли изменения в спотовых ценах, целью которых является выравнивание ценовых изменений: https://aws.amazon.com/blogs/compute/new-amazon-ec2-spot-pricing/
В одном случае на юго-востоке-2 у нас была одна зона доступности для m4.большой, который утроился в цене, в то время как другие зоны остались по исторически нормальным ценам.В рамках устранения неполадок я написал следующий простой скрипт на 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 ''