AWS Certified Solutions Architect - Professional / Question #536 of 529

Question #536

A company is migrating a monolithic web application to a microservices architecture using containers. They require separate environments for production and staging, each handling variable loads with known minimum and maximum demands. The solution must use a serverless approach to minimize management overhead while ensuring cost-effectiveness. Which design meets these requirements?

A

Deploy containers as AWS Lambda functions with configured concurrency limits. Use Amazon API Gateway with separate stages for each environment.

B

Use Amazon ECR for container images. Set up two Amazon ECS clusters with Fargate launch type, configured auto-scaling, and separate Application Load Balancers for each environment.

C

Utilize Amazon EKS with Fargate profiles for orchestration. Deploy containers from ECR, configure auto-scaling, and use separate Network Load Balancers for each environment.

D

Deploy using AWS Elastic Beanstalk with separate environments. Configure auto-scaling groups and Application Load Balancers for each environment.

Explanation

Option B meets all requirements:
1. Serverless: ECS with Fargate removes server management overhead.
2. Cost-Effectiveness: Auto-scaling adjusts resources based on demand, avoiding over-provisioning.
3. Separate Environments: Two ECS clusters with dedicated ALBs isolate production and staging.
4. Container Support: ECR stores container images, aligning with the microservices architecture.

Other options fail because:
- A: Lambda is not ideal for container-based microservices requiring variable scaling.
- C: EKS introduces complexity, conflicting with the 'minimal management' requirement.
- D: Elastic Beanstalk may use EC2 (non-serverless) and lacks Fargate's cost efficiency.

Key Points: Use ECS Fargate for serverless containers, ALB for HTTP routing, and auto-scaling for cost optimization.

Answer

The correct answer is: B