Small businesses face a number of dilemmas when setting up their web infrastructures. A primary concern is how to make sure their website is always available for their users without jumping the gun and committing to a pricey, over-the-top solution — the newest and largest servers around, for example — which they might not even need.
We thought this would be a good opportunity to suggest our “recipe” for a highly available web architecture and to compare different options. Please feel free to contribute to this thread by proposing your own solutions to “high-availability on a budget.” :)
Here are some guiding principles:
- The solution must provide high availability and failover at all levels – application tier and the database tier
- There must be low maintenance overhead
- A cost estimate per month should be provided
Now, to my recipe:
I thought the best way to approach it is would be from the most common web stack: LAMP. Besides being widely used for web applications and relying on open source, other advantages of using the LAMP stack include its ease of development and management, as well as the maturity of the platform. All of these are factors that affect cost, so taking them into account can save you a lot of money in the long run.
The next logical step is figuring out the easiest and cheapest way to deploy a highly available LAMP-based application.
- Two small, standard and on-demand Amazon EC2 Instances, to be used for the Apache PHP
- Elastic Load Balancing service
- A small-sized highly available Xeround Cloud Database instance, MySQL compatible
$18/month for load balancing
$0.085/ hour for EC2 instance — for two servers, the cost is about $122
Xeround’s cloud database is free while in beta – you can give it a try, and enjoy the elasticity and MySQL high availability that Xeround provides. Total estimated cost, excluding traffic, is around $140/month.
What do you think? Feel free to share your thoughts here and propose other competitive deployments.