Which combination of actions should a solutions architect take to achieve high availability for the website?
(Choose two.)
Provision an internet gateway in each Availability Zone in use.
Migrate the database to an Amazon RDS for MySQL Multi-AZ DB instance.
Migrate the database to Amazon DynamoDB, and enable DynamoDB auto scaling.
Use AWS DataSync to synchronize the database data across multiple EC2 instances.
Create an Application Load Balancer to distribute traffic to an Auto Scaling group of EC2 instances that are distributed across two Availability Zones.
Explanations:
An internet gateway is a necessary component for internet access for resources in a VPC but does not provide high availability or reliability on its own. It does not address the concern of instance reliability or architecture redundancy.
Migrating the database to an Amazon RDS for MySQL Multi-AZ DB instance enhances reliability and availability. Multi-AZ deployments automatically replicate the database to a standby instance in another Availability Zone, providing failover support without any code modifications required.
Migrating to Amazon DynamoDB and enabling auto scaling may improve scalability but does not align with the requirement of not modifying the application code. The existing Python application is likely dependent on a MySQL database, making this option unviable.
AWS DataSync is used for data transfer between on-premises storage and AWS, but it does not inherently provide high availability or redundancy for the application architecture. It does not address database reliability and does not distribute the application across multiple instances.
Creating an Application Load Balancer (ALB) to distribute traffic across an Auto Scaling group of EC2 instances across multiple Availability Zones ensures that if one instance or Availability Zone goes down, the other instances can still serve traffic, thus enhancing the application’s reliability and availability without needing code changes.