I have very simple EC2 setup with Eastic Load Balancer and two web servers under it. I need to automatically start additional instance when CPU on one of them reaches 100% or some instance fails.
The first thing I looked was Amazon http://aws.amazon.com/autoscaling/ page. I read this page a few times and staring at it and can't believe. It appears that Amazon advertise "Auto Scaling" as feature while they only provide API and some do-it-yourself tools. You actually have to build the Auto Scaling for them! There's no console or some tool that provide AutoScaling. You have to program or pay programmer to build such tool. They advertise AutoScaling but it does not exist - you have to build it yourself? or I am missing something?
I looked at alternatives:
Rightscale looks like overkill for my simple setup. They operate with whole infrastructure deployments, not single servers. and entry cost is $2500 when my whole monthly budget is under $500.
Scalr. Seems more approachable then Rightscale. But like with Rightscale I couldn't find a way to bring my own server that is already running on EC2. With Scalr and Rightscale it seems the only way to get in is to build server from scratch in their console and then somehow transfer the data?
I also looked at product called Ylastic. This is weirdest product of all. Registration requires some "Eucalyptus" account. And I read every page on Ylastic website, there's no mention what "Eucalyptus" is. How do you obtain it? is it a program you install on your EC2 instance or some third party service?
I am completely baffled by lack of this simple possibility- to start new EC2 instance when one fails or eats 100% CPU. It looks like there only tools there are either for Enterprise users who build whole solution farms. Or bunch of do-it-yourself tools that require a programmer.
Is there a middle ground?
Thanks.
Not that I've found, because scaling is a rather situation-dependent thing.
I'm facing a similar problem myself (and looking at similar products) and we'll likely end up rolling our own. The big problem is that there is no slider-bar on web-scale where at one side of the slider you have a single server running both web and DB, and at the other end of the slider you have multiple availability zones with web-serving clusters on anycasted IP addresses hiding behind memcachd, and significantly sharded and replicated databases. How you plot the slider from one side to the other depends entirely on your application code.
If growth is at all possible for your app, these scaling issues need to be thought about and your auto-scale system built to accommodate.
Autoscaling DOES exists, it just haven't graphic interface and instead have command-line interface. You don't need programmer, you only need someone to spend few hours reading documentation and make a few command line calls.
Take a look at the link below - it have an example of 7 command line calls you need to make it running.
http://docs.amazonwebservices.com/AutoScaling/latest/DeveloperGuide/index.html?US_SetUpASLBApp.html
BTW, your web servers are read-only, right ? They don't have some database to update or so ?
And I'd agree, if it's just a web server, maybe EC2 is an overkill and web hosting provider is the right answer ?
Ylastic actually provides GUI for EC2 autoscaling features.
You can signup for Ylastic here: https://dashboard.ylastic.com/signup?plan=basic.
Following Joe's questions about Scalr (Disclaimer: I work at Scalr), it is not exactly true to say that you need to restart from scratch when you use Scalr for the first time. You can "import" your servers that are already running on EC2 in Scalr. To do so, you need to use the feature called "Create role from non-Scalr server". You can find more information about it on our wiki.
I don't know if RightScale does such a feature or not, but you can definitely do it with Scalr. I hope this helps.
I think Ylastic does a great job for AWS Auto Scaling plus it does a lot more. You can also try EZAutoScaling, it is essentially a GUI for AWS Auto Scaling and that's all it does for a very cheap price.
Another GUI for Amazon's Auto Scaling service is Asgard, a free and open source application from Netflix for cloud management and application deployment in AWS, focusing primarily on Auto Scaling Groups.