
Answer-first summary for fast verification
Answer: Leverage horizontal scaling for the web and application tiers by using Auto Scaling groups and Application Load Balancer
Overall explanation Correct option: Leverage horizontal scaling for the web and application tiers by using Auto Scaling groups and Application Load Balancer - A horizontally scalable system is one that can increase capacity by adding more computers to the system. This is in contrast to a vertically scalable system, which is constrained to running its processes on only one computer; in such systems, the only way to increase performance is to add more resources into one computer in the form of faster (or more) CPUs, memory or storage. Horizontally scalable systems are oftentimes able to outperform vertically scalable systems by enabling parallel execution of workloads and distributing those across many different computers. Elastic Load Balancing is used to automatically distribute your incoming application traffic across all the EC2 instances that you are running. You can use Elastic Load Balancing to manage incoming requests by optimally routing traffic so that no one instance is overwhelmed. To use Elastic Load Balancing with your Auto Scaling group, you attach the load balancer to your Auto Scaling group to register the group with the load balancer. Your load balancer acts as a single point of contact for all incoming web traffic to your Auto Scaling group. When you use Elastic Load Balancing with your Auto Scaling group, it's not necessary to register individual EC2 instances with the load balancer. Instances that are launched by your Auto Scaling group are automatically registered with the load balancer. Likewise, instances that are terminated by your Auto Scaling group are automatically deregistered from the load balancer. This option will require fewer design changes, it's mostly configuration changes and the ability for the web/application tier to be able to communicate across instances. Hence, this is the right solution for the current use case. Incorrect options: Leverage SQS with asynchronous AWS Lambda calls to decouple the application and data tiers - This is incorrect as it uses asynchronous AWS Lambda calls and the application uses synchronous transactions. The question says there should be no change in the application architecture. Leverage horizontal scaling for the application's persistence layer by adding Oracle RAC on AWS - The issue is not with the persistence layer at all. This option has only been used as a distractor. You can deploy scalable Oracle Real Application Clusters (RAC) on Amazon EC2 using Amazon Machine Images (AMI) on AWS Marketplace. Oracle RAC is a shared-everything database cluster technology from Oracle that allows a single database (a set of data files) to be concurrently accessed and served by one or many database server instances. Leverage vertical scaling for the application instance by provisioning a larger Amazon EC2 instance size - Vertical scaling is just a band-aid solution and will not work long term.
Ultimate access to all questions.
No comments yet.
Author: LeetQuiz Editorial Team
A company's e-commerce platform experiences performance degradation during periods of high traffic. The application utilizes a three-tier architecture consisting of a web tier, application tier, and database tier, and operates using synchronous transactions. The development team has pinpointed bottlenecks within the application tier and is seeking a sustainable solution to enhance the application's performance.
As an AWS Certified Developer Associate, which of the following solutions would you recommend to achieve the necessary application response times while managing traffic spikes?
A
Leverage horizontal scaling for the application's persistence layer by adding Oracle RAC on AWS
B
Leverage vertical scaling for the application instance by provisioning a larger Amazon EC2 instance size
C
Leverage horizontal scaling for the web and application tiers by using Auto Scaling groups and Application Load Balancer
D
Leverage SQS with asynchronous AWS Lambda calls to decouple the application and data tiers