UPDATE 1: There is now an updated version of this posting. The new version incorporates the August 2009 AWS reserved instance pricing changes.
UPDATE 2: Corrected the bandwidth calculation in the formulas for AWS.
Amazon Web Services just announced a new reserved instances pricing plan. In short, this plan allows you to reserve EC2 instances for a 1 to 3 year period by paying a one-time reservation fee. The hourly rate for reserved instances is considerably lower than for regular spot-market instances. For comparisons sake, a large standard on-demand instance will set you back $0.40 per hour, while the large standard reserved instance is only $0.12 per hour.
With the old pricing scheme, hosting a web service on AWS instead of on a dedicated server was not a very cost-competitive option, at least not for resource-intensive applications. For my web site, Eventseer, I require at least a large standard instance—at $0.40 per hour for 24/7 operation (bandwidth costs not included), this turned out way too expensive compared with offerings from traditional dedicated server providers.
To see if the new pricing scheme fares any better, I have compared the cost of an AWS EC2 reserved large instance with a similar dedicated server from Go Daddy:
|Processor||Core 2 Duo 2.66 GHz||4 EC2 Compute Units (2 virtual cores with 2 EC2 Compute Units each) [1 unit equals a 1.0-1.2 GHz 2007 Opteron or 2007 Xeon processor]|
|Hard Drive(s)||Dual 300GB drives||850GB of instance storage|
|1-year plan, w/o bandwidth||$2,483.46||$2,351.20|
|3-year plan, w/o bandwidth||$6,622.56||$5,153.60|
I’m not sure how the 4 EC2 compute units compete with a dedicated Core 2 Duo 2.66 GHz. This probably also depends on the nature of your application. Note that the AWS solution has twice the amount of memory. From what I can see, you can not get a Go Daddy dedicated server with more than 3.2GB of memory, while AWS offers up to 15GB on the extra large instances.
When disregarding bandwidth costs, AWS suddenly makes a lot of sense. As bandwidth use is highly application-dependent, let’s consider a few different bandwidth use scenarios:
|Go Daddy, 1-year plan||$2,483.46||$2,483.46||$2,483.46||$2,483.46||$2,723.34|
|AWS, 1-year plan||$2,353.24||$2,392.00||$2,555.20||$3,167.20||$3,983.20|
|Go Daddy, 3-year plan||$6,622.56||$6,622.56||$6,622.56||$6,622.56||$7,342.20|
|AWS, 3-year plan||$5,159.72||$5,276.00||$5,765.60||$7,601.60||$10,049.60|
Conclusion: With a 1-year plan, AWS is the cheapest option until you reach about 100GB of external bandwidth per month. With the 3-year plan, the AWS bandwidth cost isn’t a problem until about 250GB per month. (Bandwidth is “free” with Go Daddy dedicated servers up until 500GB per month; after that it’s an extra $19.99 per month until you reach 1,000GB).
Considering that the AWS solution gets you twice the amount of RAM, AWS suddenly seems a very viable option even for web service hosting—as long as you’re not expecting extreme
amounts of traffic. However, once you get popular the outgoing data transfer pricing will take its toll.
Addendum: Some of the background data used in this posting:
- Go Daddy quotes from March 12, 2009
- Formula for Go Daddy 3-year plan cost: 2-year plan quote * 1.5
- Formula for AWS 1-year plan cost: $1,300 + (24 * 365 * 1 * $0.12) + (GB/mth * $0.17 * 12)
- Formula for AWS 3-year plan cost: $2,000 + (24 * 365 * 3 * $0.12) + (GB/mth * $0.17 * 36)
- EC2 pricing information
- Go Daddy dedicated server pricing information