Which solution will meet these requirements?
Vertically scale the application instance using a larger Amazon EC2 instance size.
Scale the application’s persistence layer horizontally by introducing Oracle RAC on AWS.
Scale the web and application tiers horizontally using Auto Scaling groups and an Application Load Balancer.
Decouple the application and data tiers using Amazon Simple Queue Service (Amazon SQS) with asynchronous AWS Lambda calls.
Explanations:
Vertically scaling the application by using a larger EC2 instance may provide temporary relief but does not address the issue of bottlenecks during traffic spikes. Additionally, vertical scaling has limits and can lead to single points of failure.
Introducing Oracle RAC on AWS for horizontal scaling of the persistence layer may improve database performance but does not resolve issues in the application tier. This solution adds complexity and may not directly address the application’s response time during spikes.
Scaling the web and application tiers horizontally using Auto Scaling groups and an Application Load Balancer effectively distributes traffic across multiple instances, enhancing performance and maintaining response times during spikes in traffic. This solution aligns with best practices for handling variable loads.
Decoupling the application and data tiers using Amazon SQS with asynchronous AWS Lambda calls may improve the system’s resilience and responsiveness, but it fundamentally changes the application’s architecture and may not meet the immediate need for application response time improvements during spikes.