A company is designing a -year cost-optimization strategy for a web application deployed on AWS. The application consists of the following components:
- A containerized API hosted on Amazon ECS with AWS Fargate that requires a steady-state baseline of and of RAM. During peak hours, the API dynamically scales up to and of RAM.
- A batch processing job that runs once daily for . The job is fault-tolerant, can be interrupted without loss of progress, and requires a minimum of .
- An Amazon DynamoDB table that stores user sessions. The table experiences highly unpredictable, spiky traffic patterns with long periods of inactive idle time.
Which combination of compute purchasing models and database capacity settings will provide the most cost-effective architecture?
- APurchase a -year EC2 Instance Savings Plan to cover the baseline Fargate capacity. Use Fargate Spot for the scaling tasks. Run the daily batch processing job on Amazon EC2 On-Demand Instances, and configure the DynamoDB table to use Provisioned capacity mode with high static write capacity.
- BPurchase a -year Compute Savings Plan to cover both the baseline Fargate capacity and the DynamoDB read/write capacity. Use Fargate Spot for the scaling tasks. Run the daily batch processing job on Amazon EC2 Spot Instances, and configure the DynamoDB table to use Provisioned capacity mode with Auto Scaling.
- Purchase a -year Compute Savings Plan to cover the baseline Fargate capacity. Use Fargate Spot for the scaling tasks. Run the daily batch processing job on Amazon EC2 Spot Instances, and configure the DynamoDB table to use On-Demand capacity mode.Cevap
- DPurchase a -year Compute Savings Plan to cover the baseline Fargate capacity. Use On-Demand Fargate tasks for the scaling tasks. Re-architect the daily batch processing job to run on AWS Lambda, and configure the DynamoDB table to use On-Demand capacity mode.