Which solution will meet these requirements with the LEAST operational overhead?
Create a dynamic scaling policy for the Auto Scaling group. Configure the policy to scale based on the CPU utilization metric. Set the target value for the metric to 60%.
Create a scheduled scaling policy for the Auto Scaling group. Set the appropriate desired capacity, minimum capacity, and maximum capacity. Set the recurrence to weekly. Set the start time to 30 minutes before the batch jobs run.
Create a predictive scaling policy for the Auto Scaling group. Configure the policy to scale based on forecast. Set the scaling metric to CPU utilization. Set the target value for the metric to 60%. In the policy, set the instances to pre-launch 30 minutes before the jobs run.
Create an Amazon EventBridge event to invoke an AWS Lambda function when the CPU utilization metric value for the Auto Scaling group reaches 60%. Configure the Lambda function to increase the Auto Scaling group’s desired capacity and maximum capacity by 20%.
Explanations:
A dynamic scaling policy adjusts capacity based on metrics like CPU utilization but does not provide the ability to provision capacity in advance for a scheduled batch job. It is better for auto-scaling in response to real-time changes in utilization rather than pre-scheduling the required capacity.
A scheduled scaling policy could scale at a specific time, but it requires manually setting the desired capacity, minimum capacity, and maximum capacity. It does not automate the scaling based on trends or forecasts. This could still be used but would require manual adjustment of parameters.
A predictive scaling policy uses forecasted data to adjust capacity. It can pre-launch instances 30 minutes before the scheduled batch job runs, reducing the need for manual intervention and ensuring the capacity is in place ahead of time. This meets the requirement for automation and minimal operational overhead.
Using Amazon EventBridge with a Lambda function to monitor CPU utilization and manually adjust the scaling would require custom logic and is prone to more complexity and operational overhead. It is not the most efficient or automated solution compared to predictive scaling.