Forget everything I wrote about “High Availability on a Shoestring”…well, the need to switch to mysql instead of postgres for replication still applies, but don’t bother using MMM.
Anyway, I spent (wasted?) weeks trying to get something set up with no single point of failure without spending a crapload of money. I shied away from Amazon’s AWS options because I thought they would be too expensive, but then I started looking into it a bit more. I decided to give it a try and move part of my system to AWS servers. I put it on two identical micro servers behind an “elastic” load balancer. It was way too easy.
I waited a while just to make sure everything was ok, then decided to try to move everything. It takes a little getting used to, but it’s shockingly easy. Unfortunately the cheapo micro instances can’t handle much (as someone wrote in a forum, they have the computing power of a smartphone) so you have to at least spring for a small instance in most cases, although I’m still using two micro instances.
Here’s what I’m using so far:
- EC2 instances for backend servers
- Elastic Load Balancers to balance HTTP traffic
- RDS mysql database servers with built-in replication
- S3 Website Endpoints to host the static blog for the site
I’m still a little wary of the bill as there are certain things they charge for that are hard to estimate like the number of I/O requests to an EBS volume, but my system is way more robust than it could have been with my VPS servers. I wish I used AWS from the beginning.