What should a solutions architect recommend to ensure the application is able to handle the workload and avoid downtime?
Configure an Amazon CloudFront distribution in front of the ALB.
Configure an EC2 Auto Scaling simple scaling policy based on CPU utilization.
Configure an EC2 Auto Scaling scheduled scaling policy based on the monthly schedule.
Configure Amazon ElastiCache to remove some of the workload from the EC2 instances.
Explanations:
Configuring an Amazon CloudFront distribution in front of the ALB does not address the issue of high CPU utilization during the month-end financial calculations. CloudFront is primarily for caching and serving content closer to users, which may improve latency but does not help with backend processing load.
Configuring an EC2 Auto Scaling simple scaling policy based on CPU utilization may help in some scenarios, but it is reactive rather than proactive. If the CPU spikes to 100% at midnight when the batch job runs, there may not be enough time to scale out additional instances to handle the workload before performance degradation occurs.
Configuring an EC2 Auto Scaling scheduled scaling policy based on the monthly schedule allows the Auto Scaling group to proactively add more EC2 instances just before the month-end calculations occur, ensuring there is sufficient capacity to handle the increased load and avoid downtime.
Configuring Amazon ElastiCache can help alleviate some of the load on the EC2 instances by caching frequently accessed data, but it does not directly address the issue of CPU utilization during the batch processing. It could reduce some workload, but without scaling the EC2 instances, it may not be sufficient to prevent disruption.