Amazon Web Services (AWS) first launched their EC2 service in 2006. The success of AWS and cloud computing in general proves that there are uses for leasing a virtual server for an hour at a time.
Recently, some AWS competitors have moved from per-hour to per-minute billing. This move by AWS seems like an attempt to leapfrog past their competitors by offering billing that’s even more granular. In this post, I’ll look into some of the details of this billing change.
What Gets Per-Second Billing
The new billing model does not apply to all AWS services. As of 2 OCtober, it applies to:
- Some EC2 Linux instances, specifically those launched in On-Demand, Reserved, or Spot form
- Elastic Block Storage (EBS) volumes
- Amazon Elastic MapReduce (EMR) instances
- AWS Batch instances
- Elastic GPUs
- Provisioned IOPS for io1 EBS volumes
There are a few limitations to the new per-second billing that are worth noting.
- No per-second billing for Microsoft Windows instances.
- Per-second billing is only available for Linux distributions that don’t incur a separate per-hour charge from Amazon.
- Dedicated Per Region Fees, EBS Snapshots, and all products in the AWS Marketplace are still billed on an hourly basis.
- Despite the billing being per-second, there is a 1-minute (60 seconds) minimum charge per instance.
- Despite the billing being per-second, AWS still shows list prices and Spot Market prices on a per-hour basis.
- Despite the billing being per-second, the bills themselves will be shown in hours, in decimal form, down to three significant digits, as show in the sample bill fragment from the AWS blog below. Since we don’t use Base10 units of measurement for time, I think the decimal hours are likely to cause more, rather than less, confusion. They will certainly make double-checking your bill for accuracy more complicated. (For example, look at the number they show: 316.771 hours. There is no intuitive conversion that lets you know how many seconds are in .771 hours without your having to pull out the calculator. (I’ll save you the time — I just pulled out my calculator. It’s 2,775.6 seconds, which — in per-second increments — is not a number you should ever be able to get on your bill…) )
- On the surface, this looks like a stunt so that AWS can claim to offer more granular billing than their competitor who bill on a per-hour or per-minute basis.
- Given all of the limitations, the new billing model will be unlikely to apply to the majority of instances people might be running on AWS.
- Despite the limitations, there are some use cases where the new billing model will provide customer benefits. For example, imagine you were developing an application that ran on one of the qualified Linux distributions that runs on a qualified instance type, and wanted to run a quick test that will last only 10 minutes. Under Amazon’s old model, you’d pay for an entire hour for use of the instances you spin up for the test, even if you shut them down immediately after your test was complete. Under the new model, that test run will cost you less.
- While per-second billing is, in fact, more granular than anything AWS has offered so far, customers will still be paying for all of the resources that instance reserves, even if their workload runs at a low utilization. Compare this to Virtustream’s use of the MicroVM-hour as a unit of billing, where customers only pay for the resources they actually use. In a granularity contest, AWS per-second billing is still a distant second place.
Those are my thoughts. What are yours? How would you prefer to be billed for your cloud computing? Let me know in the Comments.