New instances in an Auto Scaling group fail their health checks within a minute and are replaced, over and over. The application never listens. Raising the maximum was proposed. What should be fixed?
Select an answer to reveal the explanation.
Short Explanation
The group is doing what a health check is for: throwing out instances that never serve. Launching more of them by raising the maximum feeds the loop. You fix the launch template so a new instance actually comes up healthy.
Full Explanation
A crash loop of replacements means the launch template, user data, or AMI never produces a healthy process. Raising the maximum only allows more unhealthy launches. Removing the health check keeps broken instances in service. Transfer Acceleration does not start a process. Fix the image or the user data, and keep the health check. Caveat: a grace period that is shorter than a legitimate boot looks like this loop too; if a fixed instance needs two minutes to listen, set the grace period after the template is fixed, not instead of fixing it. Operational check: one instance launched from the corrected template should pass the health check and stay InService. Look at one failed instance's console or the application log before you touch the maximum. The usual causes are a bad user-data command, the wrong port, or an AMI that does not contain the process. Fix that and launch one instance by hand. A higher maximum during the loop spends money on instances the group will terminate. Restore the health check if someone removed it while debugging.