Single-Instance Fault Tolerance with Auto Scaling

SAA-C03 By islever Editorial Last updated

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

A company is migrating a data center from its on-premises location to AWS. The company has several legacy applications that are hosted on individual virtual servers. Changes to the application designs cannot be made. Each individual virtual server currently runs as its own EC2 instance. A solutions architect needs to ensure that the applications are reliable and fault tolerant after migration to AWS. The applications will run on Amazon EC2 instances. Which solution will meet these requirements?
  1. 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. Correct Answer
  2. Use AWS Backup to create an hourly backup of the EC2 instance that hosts each application. Store the backup in Amazon S3 in a separate Availability Zone. Configure a disaster recovery process to restore the EC2 instance for each application from its most recent backup.
  3. Create an Amazon Machine Image (AMI) of each application instance. Launch two new EC2 instances from the AMI. Place each EC2 instance in a separate Availability Zone. Configure a Network Load Balancer that has the EC2 instances as targets.
  4. Use AWS Mitigation Hub Refactor Spaces to migrate each application off the EC2 instance. Break down functionality from each application into individual components. Host each application on Amazon Elastic Container Service (Amazon ECS) with an AWS Fargate launch type.

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?

Legacy apps often lack session synchronization or database locks needed for concurrent access, so running two instances causes state conflicts.

Does an ASG with min=1 max=1 really provide fault tolerance?

Yes, it ensures that if the single instance fails, AWS automatically launches a new one from the AMI, maintaining service continuity.

More SAA-C03 FAQ →

Community Votes

A
52%
C
48%

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

  1. Vasiliy 👍 12 Answered A
    Autoscaling 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
  2. sandordini 👍 11 Answered C
    NOT 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..
  3. emakid 👍 4
    answer 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.
  4. muhammadahmer36 👍 3 Answered A
    A. 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.
  5. Nm55569 👍 3 Answered A
    It'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
  1. LeonSauveterre 👍 2 Answered C
    A - 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."
  2. JA2018 👍 2 Answered C
    I 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.
  3. EdricHoang 👍 2 Answered C
    Fault tolerance is not High Availability Answer A is HA design, not Fault tolerance
  4. daveya 👍 2
    What if application is statefull and there's no backup?
  5. Lin878 👍 2 Answered A
    A makes sense. C is possible but manual intervention.
  6. Scheldon 👍 1 Answered A
    Answer 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
  7. zits88 👍 1 Answered C
    I 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.
  8. Dantecito 👍 1 Answered C
    C 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
  9. dfgdsfgfdgreg 👍 1 Answered C
    A has a single point of failure = not fault tolerant
  10. 24b2e9e 👍 2
    A makes sense
  11. xerxusxu 👍 1 Answered A
    这个题,真反人类

Reader comments & corrections

No reader corrections yet — spotted an error or have a note? Share it below.

Log in to comment, report an error, or add a note about this question.

Submitted for moderation before publishing. Keep it helpful and respectful.

Practice All SAA-C03 Questions

Access 120 questions with complete answers and detailed explanations.

View Full SAA-C03 Practice Test →

← Back to SAA-C03 Study Guide