I’d like to say that his is not a tutorial; I just want to share my methodology in a non-technical way.
So let’s start.
I used to have all my clients’ websites on a VPS with Hostgator; it worked pretty well and the price (for my case) was quite right. So said, in the past year I’ve had several unwanted downtimes with HG, sometimes for more than two or three hours; the most annoying thing was that their assistance in those cases was clunky and unresponsive. Keep in mind that I don’t want to denigrate Hostgator, in my opinion they are one of the best mid-level hosting company, but their attitude with me was not…. let’s say “good enough”.
Therefore, after searching a bit around, I made a thought decision: moving all my clients’ websites in the cloud with Amazon AWS.
My only real requirement was to be able to use Plesk Panel, first because it was part of my clients’ requests, and second because I really hate cPanel, I just cannot use it. So with this in mind, there are not very many options. Let’s now say that Paralles doesn’t offer a good way to purchase and install Plesk Panel for an Amazon EC2 instance, they only have a couple of preconfigured EC2 AMI in the AWS Marketplace; you can’t just install it on an EC2 like you do for a regular server. You can buy the BYOL AMI or another one with the license added to the hourly price. The byol was cheaper, so I bought my own license of Parallels Plesk Panel 11.5. My needs was quite basic in terms of hardware and power, but the beauty of an AWS solution is that I can scale it up to a supercomputer in just a few clicks!
For my solution, I use a Small EC2 instance with 55GB of EBS volume, but now that the new memory optimized instances are out (R3) maybe in the future I can move to those.
I then switched to a reserved instance, for which, with a small upfront, you can pay something like a third of the regular price that, for an always-on server, is really something.
Recently Amazon lowered down again their prices and now EBS volumes cost less than before, so I’ve added another volume as a websites’ internal backup.
My EC2 instance is inside a VPC with three elastic ip, which I use also as NS server.
I’m not using Amazon Route 53 because most of my websites are managed by CloudFlare but I’m considering to try it for a couple of projects.
Most of my websites are built with WordPress, so they need a MySQL database; for the moment, I’m using the MySQL server that comes with Plesk Panel, but in the future, I’m considering switching to an Amazon RDS database, as long as I have enough websites to justify the switch.
Pros of this solution? For the management of my server, I’m completely on my own and independent. I’m able to resize, based on my needs, my EBS volume and back it up with just a click. In addition, when the server needs more power, I can easily scale up my instance.
Cons of this solution? For the management of my server, I’m completely on my own and independent; yes, this is at the same time a pro and con because I can only blame myself if something goes wrong and there’s no one I can cry or yell to.-
I chose this solution because I like to be independent and I like to learn from my work every day, and managing a Linux server and 20+ websites with a hosting panel is the kind of challenge I like.
It was a big decision indeed, but I’m extremely happy because Amazon Web Services are competitive, reliable and most important, flexible.