Single-Instance Fault Tolerance with Auto Scaling
Short answer
A Create an Auto Scaling group with min/max of one and an ALB to ensure automatic replacement of the single instance upon failure.
Question
Key Takeaways
The core concept is distinguishing between high availability (multiple active nodes) and fault tolerance (automatic recovery), where a single-instance application requires an Auto Scaling group to ensure it always runs exactly one healthy instance.
This question tests the design of fault-tolerant architectures for legacy applications that cannot be modified to run on multiple instances simultaneously.
Common mistake: Many learners select Option C, assuming that placing two instances in separate Availability Zones provides fault tolerance; however, this fails because the legacy application likely cannot handle concurrent connections from two servers, leading to conflicts or data corruption.
Expert Analysis
Why the Answer Is Correct
Option A is the correct solution because it addresses the specific constraint that the application is legacy and cannot be changed to support multi-instance concurrency. By configuring an Auto Scaling Group (ASG) with a minimum and maximum of one instance, AWS ensures that there is always exactly one running instance. If that instance fails or becomes unhealthy, the ASG automatically terminates it and launches a new one from the AMI, thereby providing fault tolerance without violating the application's architectural limitations. The Application Load Balancer directs traffic to this single healthy instance.
Why the Other Options Are Wrong
Option C creates two instances in separate Availability Zones, which is a standard HA pattern. However, since the application is legacy and hosted on individual virtual servers, it likely lacks session synchronization or database locking mechanisms required for concurrent access. Running two instances simultaneously could cause state conflicts, making this option invalid despite its robust infrastructure. Option B relies on hourly backups, which results in significant data loss (RPO of 1 hour) and does not provide immediate fault tolerance. Option D involves refactoring the application into containers, which directly violates the requirement that "Changes to the application designs cannot be made."
Community Comment Notes
As Vasiliy noted, the ASG with max=1 ensures the instance is always running and replaces it if it fails. Several users like sandordini pointed out that ASG max=1 is a clever way to enforce single-instance execution while gaining auto-recovery. Others, like LeonSauveterre, correctly identified that Option C provides no redundancy for a single-stateful app if both are launched. The community split highlights the importance of reading the "cannot change design" constraint carefully.
Official Reference
https://docs.aws.amazon.com/AutoScaling/ec2/userguide/auto-scaling-groups.html
This link opens the official vendor documentation in a new tab.
Exam Strategy
Always check for constraints regarding application compatibility before selecting standard high-availability patterns. If an app cannot run concurrently, look for solutions that maintain a single active instance but provide automatic replacement upon failure.
Frequently Asked Questions
Why can't we use two EC2 instances in different AZs?
Does an ASG with min=1 max=1 really provide fault tolerance?
Community Votes
52% of anonymous learners picked answer A. Votes are pick records left by other test-takers — they are not the verified answer.
Discussion 16 contributions
Compiled from public community threads and reader submissions, lightly edited for clarity. Handles and vote tallies are shown as recorded, and comments reflect the views of individual contributors.
From public community threads 16
-
Vasiliy 👍 12 Answered AAutoscaling with max=1 is what is needed to keep only one instance at a time - it will still fail, but it will spawn exactly one instance in case of failure (we are not allowed to change the design of the app) Having single instances in different AZ will not help - if one of the AZs is down, the app will still be affected
-
sandordini 👍 11 Answered CNOT A: Autoscaling with Maximum of 1 EC2 :D NOT B: Hourly backup... RPO 1hr C: AMI, Multi-AZ -> Fault tolerant NOT D: ECS with Fargate, but it needs to run on EC2..
-
emakid 👍 4answer is A. Auto Scaling Group: Explanation: Minimum and Maximum of one instance: Ensures that the instance is always running. If the instance fails, Auto Scaling will automatically replace it with a new one, maintaining high availability. Amazon Machine Image (AMI): Captures the current state of the application instance, ensuring that new instances launched by Auto Scaling will have the same configuration. Application Load Balancer (ALB): Load Balancer: Distributes traffic to the instances in the Auto Scaling group, ensuring fault tolerance. Even though there is only one instance, the ALB can help manage incoming traffic and be ready for future scaling if needed. For C: While this provides high availability, it does not address fault tolerance as effectively as the Auto Scaling group approach. Without Auto Scaling, if an instance fails, manual intervention is required to launch new instances.
-
muhammadahmer36 👍 3 Answered AA. Create an Auto Scaling group that has a minimum of one and a maximum of one. Create an Amazon Machine Image (AMI) of each application instance. Use the AMI to create EC2 instances in the Auto Scaling group Configure an Application Load Balancer in front of the Auto Scaling group.
-
Nm55569 👍 3 Answered AIt's either A or B but A is a better option. The application design cannot be changed so we don't know if it can run across 2 servers.
Show 11 more comments
-
LeonSauveterre 👍 2 Answered CA - Creating an AMI of each application instance ensures that the migrated applications are deployed consistently with their existing configurations, yes, but an Auto Scaling group with a minimum and maximum of one provides no redundancy. If the single instance fails, the application becomes unavailable. B - Backup-based disaster recovery does not provide real-time fault tolerance. It introduces downtime during recovery and does not meet the reliability requirement. C - Launching two EC2 instances in separate Availability Zones (AZs) provides high availability. If one AZ experiences an outage, the application remains accessible on the instance in the other AZ. D - "Changes to the application designs cannot be made."
-
JA2018 👍 2 Answered CI will choose Option C for the following reasons: #1 AMI creation: Creating an AMI of each application instance allows for easy replication. #2 Multiple Availability Zones: Launching instances in different Availability Zones provides redundancy in case of regional outages. #3 Network Load Balancer: A Network Load Balancer distributes traffic across the instances, providing high availability by automatically routing requests to a healthy instance if one fails.
-
EdricHoang 👍 2 Answered CFault tolerance is not High Availability Answer A is HA design, not Fault tolerance
-
daveya 👍 2What if application is statefull and there's no backup?
-
Lin878 👍 2 Answered AA makes sense. C is possible but manual intervention.
-
Scheldon 👍 1 Answered AAnswer A It is possible to set Min and Max to 1 which will automatically bring up server when it will crash. Taking into consideration that we cannot change application design and load-balancing between regions would probably need that (no information if applications are statefull or stateless) i would go for solution in answer A https://docs.aws.amazon.com/autoscaling/ec2/userguide/asg-capacity-limits.html
-
zits88 👍 1 Answered CI don't see how people can choose A here when it is talking about reliability and the answer only has a maximum of 1. There's nothing about cost effectiveness so there is no reason this one is better. Definitely C.
-
Dantecito 👍 1 Answered CC is the answerd. A. Changes in application designs are not the same as changes in infrastructure, also is not fault tolerant and an ALB just for one instance? whats the point of that
-
dfgdsfgfdgreg 👍 1 Answered CA has a single point of failure = not fault tolerant
-
24b2e9e 👍 2A makes sense
-
xerxusxu 👍 1 Answered A这个题,真反人类
Reader comments & corrections
No reader corrections yet — spotted an error or have a note? Share it below.
Related Analysis
Practice All SAA-C03 Questions
Access 120 questions with complete answers and detailed explanations.
View Full SAA-C03 Practice Test →