0
votes

Reading http://aws.amazon.com/autoscaling/ it looks like Amazon lets you create more EC2 instances into load balancer and AutoScaling Groups based on your CloudWatch metrics.

However, I want a single EC2 instance that become more powerful with more CPU, memory, etc. when the machine processing/memory usage is high. How do I do this?

4

4 Answers

5
votes

Basically, you don't. It is the wrong way to think about scalability and reliability.

A single EC2 instance is a single point of failure. Changing instance types requires a reboot, so your site will be unavailable while that happens. Even if you do take this approach, you would be limited to instances in a single AZ, which again becomes a single point of failure.

Finally, since you want to minimise down time, you would be under or over provisioned for much of the time - so you'd have poor performance for you users, or you'd be paying too much.

I would recommend starting by reading The Well Architected Framework to get a better understanding of why you want to do this.

0
votes

Firstly I am thinking why you want to get rid of Auto scaling? It is one the best thing I would really love with Cloud. Anyway if you want a powerfull single EC2 instance you can select one of the many different EC2 instance types. Please have a look on different EC2 instance types here

0
votes

You can't do that without shutting the instance down to make the necessary changes, and then starting it back up. It also isn't supported by autoscaling.

0
votes

You don't need autoscaling to do this, you can simply setup a cloudwatch alarm on the EC2 instance CPU, when the alarm triggers you can get a Lambda script to run to stop the instance, change the instance size (up/down) and then start the instance. But as other have explained above you will have to have some downtime.

If you want to avoid downtime then you may need to think about deploying at least one other EC2 instance.