AWS has a lot of features and automation tools for scaling and deployment like Elastic Beanstalk, EKS etc but these all require the user to conform their applications to their standards/techniques of deployment but most application would be running for years with a lot of people working on it and to conform and revamp the application to a new standard will be a mammoth undertaking for any project.
We had a customer come up with this exact requirement where they had sudden increase in user base and wanted to be able to scale their environment without actually updating their code. They also wanted this to be an automated process.
To serve this requirement a new plan was devised which is basically like a Frankenstein beanstalk environment. Here a base AMI is created which can run the application directly when deployed. This AMI is then given to the Autoscaling group which was configured with the right launch configuration.
We made a user data in launch configuration that took the application data from S3 and deployed it into the custom AMI. That way we had control over the complete deployment process.
This enabled the customer to use the existing application with an auto scaling cloud environment setup.