Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Amazon EC2 autoscaling down with graceful shutdown?

We're looking at using EC2 autoscaling to deal with spikes in load. In our case we want to scale up instances based on an SQS queue size and then down scale with the queue size gets back under control. Each SQS message defines a potentially long running job (sometimes up to 20 minutes each for message) that must complete before the instance can be terminated.

Our software handles the shutdown process gracefully, so issuing sudo service ourapp stop will wait for the app to complete before returning.

My question; when autoscaling starts scaling down it issues a terminate (which apparently is like hitting the power button), will it wait for for our app to completely exit before the instance is 'powered off'?

https://forums.aws.amazon.com/message.jspa?messageID=180674 <- that and other things I've found seem to suggest that it doesn't

like image 932
danw Avatar asked Jun 26 '12 13:06

danw


People also ask

What happens if an auto scaled instance is terminated?

If you detach instances from your Auto Scaling group, you put instances on standby, or you explicitly terminate instances and decrement the desired capacity, which prevents replacement instances from launching, the group can become unbalanced.

Why did Auto Scaling terminate my instance?

Amazon EC2 Auto Scaling terminates Spot instances when either of the following occurs: Capacity is no longer available. Spot price exceeds the maximum price that you specified for the instances.

What happens if EC2 instance goes down?

An EC2 instance becomes unreachable if a status check fails. A system status check failure indicates a problem with the AWS systems that your instance runs on. When a problem with an underlying host impacts your production, you can stop and start your instance to migrate from the current underlying host.


1 Answers

On most newer AMI's, the machines are given the equivalent to a 'halt' (or 'shutdown -h now' command so that the services are gracefully shut down. As long as your program plays nicely with the startup/shutdown scripts, you should be fine -- but, if your program takes more than 20 seconds to terminate, you may experience that amazon will kill the instance completely.

Amazon's documentation with regards to their autoscaling doesn't specify the termination process, but, AWS's documentation for ec2 in general does contain about what happens during the termination process -- that the machines is given a 'shutdown' command, and the default shutdown time on most systems is 30 seconds.

like image 102
Ian Wilson Avatar answered Sep 21 '22 18:09

Ian Wilson