Migrating an Interactive Website to AWS: Best Practices for Performance and Availability

Optimal Architecture for Migrating an Interactive Website to AWS

Prev Question Next Question

Question

A company has hired you to assist with the migration of an interactive website that allows registered users to rate local restaurants.

Updates to the ratings are displayed on the home page, and ratings are updated in real-time.

Although the website is not very popular today, the company anticipates that it will grow over the next few weeks.

They also want to ensure that the website remains highly available.

The current architecture consists of a single Windows server 2016 web server and a MySQL database on Linux.

Both reside inside on an on-premises hypervisor.

What would be the most efficient and optimal way to point the application to AWS, ensuring high performance and availability?

Answers

Explanations

Click on the arrows to vote for the correct answer

A. B. C. D.

Answer - C.

The main consideration in the question is that the architecture should be highly available with high performance.

Option A is incorrect because (a) EC2 servers can communicate with S3 for the web files, and (b) Auto Scaling of webservers and the setup of Multi-AZ RDS instance, as well as the Route 53 alias record with ELB provides high availability.

However, this option does not mention the use of VM Import/Export that would provide an "optimal" solution to the given requirement.

Option B is incorrect because this is an interactive website and S3 is suitable for static websites.

Option C is CORRECT because Route 53 is used to create an Alias record to point to an ELB DNS.

Using a VM Import/Export would be the most "optimal" solution as given in the requirement.

Option D is incorrect because, in Route 53, you should create an Alias record pointing to the ELB rather than the EC2 IP addresses.

When the EC2 instance in the Auto Scaling group is recreated, the IP will be changed, and the A record will not work in Route 53.

For more information, please refer to the below URL-

http://docs.aws.amazon.com/AmazonS3/latest/dev/WebsiteHosting.html

Option A is the best solution among the given choices to point the application to AWS, ensuring high performance and availability. Here's why:

  1. Configure Auto Scaling to launch one Windows Server 2016 instance each in us-west-1a and us-west-1b: Auto Scaling will ensure that the web server instances are launched in multiple Availability Zones (AZs) to provide high availability and fault tolerance. If one AZ goes down, the other will continue to serve the requests.

  2. Copy the web files from an on-premises web server to each Amazon EC2 web server, using Amazon S3 as the repository: Copying the web files to Amazon S3 will enable easy access to the files for both instances, and will also provide an additional level of durability and availability.

  3. Launch a Multi-AZ MySQL Amazon RDS Instance in us-west-1a and us-west-1b: By launching a Multi-AZ RDS instance, the database will be highly available, and Amazon RDS will automatically handle synchronous data replication between the primary and standby instances.

  4. Import the data into Amazon RDS from the latest MySQL backup: Importing the data into Amazon RDS from the latest MySQL backup will ensure that the most up-to-date data is available in the RDS instance.

  5. Create an elastic load balancer (ELB) to front your web servers: The ELB will distribute incoming traffic across multiple web server instances, improving performance and availability.

  6. Use Amazon Route53 and create an alias (Type: A-IP4 Address) record pointing to the ELB: Route53 will provide the ability to route traffic based on latency or geography, and the A record will provide a DNS mapping for the ELB.

Option B is not a feasible solution because running a website directly out of Amazon S3 is not possible, and S3 is not optimized for hosting dynamic content like a web application.

Option C is a valid solution, but it involves unnecessary steps such as creating an EC2 AMI and using VM Import/Export, which are not needed for this scenario. This would also add additional complexity to the solution.

Option D is not recommended because it does not include an ELB, which is essential for distributing traffic across multiple web server instances, improving performance and availability. Additionally, it does not use a Route 53 Alias record for the ELB, which is required for high availability and fault tolerance.