Unexpected Similarities in EC2 Spot Price History Between Regions

If you have been following my blog for a while, you may recall a post from earlier this year where I looked at some basic statistical properties of time series behind Amazon EC2 spot price history.

Because EC2 regions are completely separate and independent, you’d think spot price history for each region will have nothing in common. Surprise! Read on and you may change your mind.

Before I begin however, please note that prices throughout this post are once again provided in points ($1 per hour = 1,000 points).

Instead of focusing on time series aspect of spot price history, this time I decided to focus solely on prices as numbers. My hypothesis was that a set of spot prices for each product (represented by region/description/platform tuple) could be divided into 2 subsets: base subset and outlier subset. Base subset is where price would fluctuate most of the time, and outlier subset is where a price would jump in response to an extraordinary event (for example, a big user of AWS infrastructure suddenly needs a lot of capacity).

I obtained the data via API on November 29, 2010 at 4:26pm UTC

  • you can download the resulting dataset as JSON from https://gist.github.com/724757. Arrays with 2 items ([x,y]) represent ranges, arrays with 1 item ([x]) represent a single price.

I started looking and noticed something out of ordinary in a place where I didn’t expect to see it (see the table below).

Turns out base subsets are identical or nearly identical for all instance_type/product_description pairs across all EC2 regions except us-east. Additionally, in these regions, pricing algorithm seems to be intentionally hitting as many prices within the base subset as possible (in many cases, base subset is contiguous, without any holes - thus covering every single possible price between min and max of the base subset).

InstanceRegionBase Subset Outliers Subset
c1.medium Linux/UNIX ap-southeast-1 76-84
eu-west-1 76-84
us-west-1 76-84
c1.medium SUSE/Linux ap-southeast-1 88-98
eu-west-1 88-98
us-west-1 88-98
c1.medium Windows ap-southeast-1 159-175
eu-west-1 159-175
us-west-1 159-175
c1.xlarge Linux/UNIX ap-southeast-1 304-336 1000
eu-west-1 304-336
us-west-1 304-336
c1.xlarge SUSE/Linux ap-southeast-1 317-350
eu-west-1 316-350
us-west-1 316-350
c1.xlarge Windows ap-southeast-1 634-700 800
eu-west-1 634-700
us-west-1 634-700 750 800
m1.large Linux/UNIX ap-southeast-1 152-168
eu-west-1 152-168
us-west-1 152-168
m1.large SUSE/Linux ap-southeast-1 164-182
eu-west-1 164-182
us-west-1 164-182
m1.large Windows ap-southeast-1 254-280 480
eu-west-1 254-280
us-west-1 254-280
m1.small Linux/UNIX ap-southeast-1 38-42 95 100
eu-west-1 38-42
us-west-1 38-42
m1.small SUSE/Linux ap-southeast-1 50-56
eu-west-1 50-56
us-west-1 50-56
m1.small Windows ap-southeast-1 64-70
eu-west-1 64-70
us-west-1 64-70
m1.xlarge Linux/UNIX ap-southeast-1 304-336
eu-west-1 304-336
us-west-1 304-336
m1.xlarge SUSE/Linux ap-southeast-1 316-350
eu-west-1 316-350
us-west-1 316-350
m1.xlarge Windows ap-southeast-1 506-560
eu-west-1 506-560
us-west-1 506-560
m2.2xlarge Linux/UNIX ap-southeast-1 532-588
eu-west-1 532-588
us-west-1 532-588
m2.2xlarge SUSE/Linux ap-southeast-1 468-517
eu-west-1 468-517
us-west-1 468-517
m2.2xlarge Windows ap-southeast-1 696-770
eu-west-1 696-770
us-west-1 697-769
m2.4xlarge Linux/UNIX ap-southeast-1 1064-1112 1114 1116 1118-1176
eu-west-1 1064-1176
us-west-1 1065-1102 1104-1127 1129-1153 1155-1176
m2.4xlarge SUSE/Linux ap-southeast-1 924-946 948-965 967-977 980-987 989-1000 1002 1004 1006 1008 1010 1012 1014 1016 1018 1020
eu-west-1 924-1000 1002 1004 1006 1008 1010 1012 1014 1016 1018 1020 1022
us-west-1 925-982 985-1000 1002 1004 1006 1008 1010 1012 1014 1016 1018 1020
m2.4xlarge Windows ap-southeast-1 1394-1430 1432-1435 1437-1442 1444-1446 1449 1451 1456-1464 1466 1468-1471 1473-1487 1489-1496 1498-1540
eu-west-1 1394-1540
us-west-1 1394-1444 1446-1447 1449-1491 1493-1495 1497-1535 1537-1540
m2.xlarge Linux/UNIX ap-southeast-1 228-252
eu-west-1 228-252
us-west-1 228-252
m2.xlarge SUSE/Linux ap-southeast-1 240-266
eu-west-1 240-266
us-west-1 240-266
m2.xlarge Windows ap-southeast-1 304-336
eu-west-1 304-336
us-west-1 304-336
t1.micro Linux/UNIX ap-southeast-1 9-12 20 40
eu-west-1 9-11 15 40
us-west-1 10 20-21 40
t1.micro SUSE/Linux ap-southeast-1 15-17
eu-west-1 15-17
us-west-1 15-17 20
t1.micro Windows ap-southeast-1 15-18 21 25-26 35
eu-west-1 15-18 20-21 25 1000
us-west-1 15-17 25

Read other posts on my blog tagged amazon-ec2-spot.

Categories: cloud-computing |