timmay seems to have the architecture in hand for a HA deployment.


I've been doing the AWS thing full time for almost 5 years, so am a little biassed when asked which is the best cloud IaaS provide. (I'll just say Gartner backs up my views on this).


The standard AWS architecture for a Highly available web facing application, starts by using a AWS managed RDS database running in multi AZ mode. This gives you managed backups with 5 minute point in time recovery, and patching and maintenance taken care of for you with no downtime. Front end web servers will be stateless (store state in the DB, or cache server), distributed over multiple data centres in the region, and with no public IP address. The web servers should be fronted by a Elastic load balancer with a SSL cert loaded if SSL offload is required.


The use of autoscaling and pre-baked machine images will ensure your web servers remain fresh, with failed servers terminated and replaced.

Throw all of this through the AWS Cloudfront CDN to offload content from the web servers, and you have a fault tolerant, fast, and easily managed deployment.

Even easier if your application is written in java, .NET, ruby, python, PHP, as you can use the AWS Elastic Beanstalk service, and have all of the infrastructure managed for you. Just upload your application, and go.

It sounds like a lot of take in, but there is a huge difference between doing something commercially inside agreed SLA's, and a development environment running on a single server.