So I’m currently researching hosting options for our infrustructure expansion on www.theartistsweb.co.uk, we already make heavy use of S3 and so I wanted to look into taking advantage of EC2 aswell. I’m not a complete newbie to EC2 and used it to scale a popular facebook application, which worked well.
However more traditional website hosting has a few specific needs that aren’t standard to EC2, anyway read on to see the results of my research so far
Start with the bad news:)
No Persistant Storage
Simply If you shut down an EC2 instance all the data is lost, reboots are okay but it is still possible that an instance can fail (the program is still BETA btw) and you’ll loose your data. I actually consider this an advantage as it forces you to plan for failure and so create a more robust set up and ideally you’d use S3 to provide your persistant storage whilst using EC2 for quickly replacable nodes to serve the data/application.
And in reality cheapo dedicated servers have hardware failures, in my own personal experience with uk2.net I went through 4 dedicated servers in a month as each had faulty ram – I couldn’t believe it was a hard fault in all machines until the 4th one just worked.
No Static IP Address (yet)
This is potentially a big disadvantage in my opinion. At the moment you can’t reserve an IP address, so each time you create a new instance you get a new IP, and as you should generally expect failure at some point this means you have to assume (at least occassional) IP address change. Whilst you could get by with changing IP address by using low TTL and/or a third party dynamic dns service/api the following cases could be show stoppers if not handled properly:
- DNS caching, theoretically DNS caches should obey your TTL, but there may be some links in the chain to your website that don’t (proxies, client applications etc.)
- Reverse IP, PTR (Mail reverse IP lookups) – now this is a big deal for any mailhost in my opinion. Sending mail involves jumping through tighter and tigher hoops now-a-days and reverse dns records and PTR for your mail server are a must.On top of this many large ISP’s (yahoo etc.) associate reputation information with IP addresses so a change in IP address can directly affect your mail deliverability. I’m sure this can largely be dealt with configuration and careful planning, but it’s a non standard setup with potential for problems – poor mail deliverability is poor/lost business. See the aws ec2 forum, plenty of discussion on this problem
- General pain in the arse – static IP address are probably what you (and your customers) have been used to for the last x years, so apart from the 2 key points above there’s bound to be some fixed IP skeletons in the closet that will come out if you are migrating an existing infrastructure.
You can see on the EC2 forum that quite a few people want optional static IP’s and this is apparently going to be a new feature ‘soon’
Lack of Support
You’re really on your own here, Amazon is providing a platform rather than controlled environment dedicated servers, so you can hardly expect Amazon tech support to hold your hand then through your software issues. If you need built in software support stick with a standard supported plan on a regular ISP.
The cost of running an instance is comparable to regular dedicated servers and increases linearly with the number of instances you deploy, so no nasty surprises as your needs grow – see the cost calculator. You could also be using an AMI instance periodically for testing, compute tasks etc., you are billed by the hour not the month. However compared with other offerings, the bandwith is where the expense lies so it really depends on your needs/usage.
Quick Set Up
You can fire up an instance in a few minutes and choose from a wide variety of public images to get started. Once you’ve fully tweaked and set up your instance, you can then make your own AMI to launch more instances from. This is a big time saver over the traditional set up and tuning of a dedicated server, how long would it take you to drop in another server in your pool?
The real beauty is the on demand aspect, with proper planning you can quickly fire up a few extra instances and absorb huge spikes. If your infrastructure is one or 2 servers (and will be for the foreseable future) then there’s no appeal here. However if you need to plan a path for growth then EC2 might still be worth considering (as I still am!).