Which solution will meet these requirements with the LEAST operational overhead?
Use an Amazon EC2 instance in an Auto Scaling group to deploy a containerized application. Use an Application Load Balancer to distribute web traffic. Use an Amazon RDS DB instance to store product data and product images.
Use AWS Lambda functions to manage the existing monolithic application. Use Amazon DynamoDB to store product data and product images. Use Amazon Simple Notification Service (Amazon SNS) for event-driven communication between the Lambda functions.
Use Amazon Elastic Kubernetes Service (Amazon EKS) with an Amazon EC2 deployment to deploy a containerized application. Use an Amazon Aurora cluster to store the product data. Use AWS Step Functions to manage workflows. Store the product images in Amazon S3 Glacier Deep Archive.
Use Amazon Elastic Container Service (Amazon ECS) with AWS Fargate to deploy a containerized application. Use Amazon RDS with a Multi-AZ deployment to store the product data. Store the product images in an Amazon S3 bucket.
Explanations:
Using an EC2 instance in an Auto Scaling group introduces more operational overhead for managing instances and load balancers. RDS is suitable for structured data but doesn’t provide modularity or scalability as effectively as containerized solutions.
AWS Lambda offers a serverless approach, which can be beneficial for scaling; however, it may not effectively support maintaining structured database schemas as DynamoDB is a NoSQL database. This can complicate data management and schema evolution. Additionally, managing a monolithic application with Lambda does not fully leverage modularity.
Although EKS provides a robust container orchestration platform and Aurora supports structured data, using AWS Step Functions for workflow management adds complexity. Additionally, S3 Glacier Deep Archive is not suitable for frequently accessed product images due to its retrieval time.
Amazon ECS with Fargate abstracts the infrastructure management, leading to lower operational overhead. RDS with a Multi-AZ deployment ensures data availability and consistency for structured schemas. Storing product images in S3 provides a scalable and easy-to-manage solution for media storage.