Which solution will meet these requirements with the LEAST operational overhead?
Use Amazon S3 to host the full website in different S3 buckets. Add Amazon CloudFront distributions. Set the S3 buckets as origins for the distributions. Store the order data in Amazon S3.
Deploy the full website on Amazon EC2 instances that run in Auto Scaling groups across multiple Availability Zones. Add an Application Load Balancer (ALB) to distribute the website traffic. Add another ALB for the backend APIs. Store the data in Amazon RDS for MySQL.
Migrate the full application to run in containers. Host the containers on Amazon Elastic Kubernetes Service (Amazon EKS). Use the Kubernetes Cluster Autoscaler to increase and decrease the number of pods to process bursts in traffic. Store the data in Amazon RDS for MySQL.
Use an Amazon S3 bucket to host the website’s static content. Deploy an Amazon CloudFront distribution. Set the S3 bucket as the origin. Use Amazon API Gateway and AWS Lambda functions for the backend APIs. Store the data in Amazon DynamoDB.
Explanations:
While Amazon S3 and CloudFront can efficiently host static content and handle high traffic, using S3 to store order data does not provide the necessary transactional capabilities needed for order processing, leading to potential data integrity issues.
Deploying the website on EC2 instances with Auto Scaling and using RDS for MySQL provides operational control and redundancy. However, this solution requires more operational overhead to manage the EC2 instances, scaling, and load balancers, making it less optimal for low operational overhead.
Migrating to containers on Amazon EKS allows for scalability but introduces additional complexity in managing the Kubernetes environment. While it can handle high traffic, it requires more operational overhead than desired.
This solution effectively combines S3 for static content, CloudFront for content delivery, API Gateway for managed backend services, and DynamoDB for fast and scalable data storage. It has the least operational overhead due to serverless architecture components (Lambda and API Gateway) handling scaling automatically, making it ideal for the requirements stated.