An enterprise manages a multi-account AWS environment under an organization in AWS Organizations with consolidated billing enabled. The environment comprises the following workloads:
* Account A (Web Portal): Runs a critical web application on Amazon EC2 `m6i.large` instances (, memory) behind an Application Load Balancer. CloudWatch metrics indicate that average CPU utilization is consistently below , and peak memory utilization never exceeds .
* Account B (Video Processing): Runs dynamic video transcoding jobs on AWS Fargate (configured with task allocations equivalent to `c6g.large`) and triggers AWS Lambda functions for metadata extraction. This workload is highly variable and spikey.
* Account C (Analytics): Runs an Amazon RDS for PostgreSQL database instance (`db.r6g.xlarge`, , memory) with an average CPU utilization of , and freeable memory consistently around . It also runs several Amazon EC2 `r6g.xlarge` instances for ad-hoc business intelligence reporting, which are active only on weekdays from 9:00 AM to 5:00 PM.
Currently, both Account A and Account B route all outbound traffic to public Amazon S3 and DynamoDB endpoints through a single NAT Gateway deployed in a single Availability Zone (AZ) within their respective VPCs to minimize hourly fees.
The company wants to optimize costs across all accounts while maintaining high availability (HA) for all workloads and minimizing operational overhead. Which of the following solutions represents the most cost-effective and architecturally sound optimization strategy?
- ARight-size the EC2 instances in Account A to `m6i.medium` and the RDS database in Account C to `db.r6g.large`. Deploy Gateway VPC Endpoints for Amazon S3 and DynamoDB, and configure a NAT Gateway in each utilized Availability Zone. Purchase an EC2 Instance Savings Plan at the organization's management account level covering the `m6i` and `r6g` instance families across all accounts, and keep Account C's EC2 instances running 24/7 to fully utilize the committed capacity.
- BRetain the EC2 instances in Account A as `m6i.large` and the RDS database in Account C as `db.r6g.xlarge` to prevent performance risks. Keep the single NAT Gateway in each VPC in Account A and Account B to minimize hourly charges, while routing Amazon S3 and DynamoDB traffic through Gateway VPC Endpoints. Implement AWS Instance Scheduler to shut down Account C's EC2 instances outside of business hours, and purchase a Compute Savings Plan at the management account level to cover all active workloads.
- Right-size the EC2 instances in Account A to `m6i.medium` and the RDS database in Account C to `db.r6g.large`. Deploy Gateway VPC Endpoints for Amazon S3 and DynamoDB in the VPCs of Account A and Account B, and configure a NAT Gateway in each utilized Availability Zone. Implement AWS Instance Scheduler to shut down Account C's EC2 instances outside of business hours. Purchase a Compute Savings Plan at the organization's management account level to cover the right-sized 24/7 EC2 instances, Fargate tasks, and Lambda functions.Answer
- DRight-size the EC2 instances in Account A to `m6i.medium` and the RDS database in Account C to `db.r6g.large`. Consolidate the VPCs of Account A and Account B into a single shared VPC, sharing subnets using AWS Resource Access Manager (RAM) without enabling resource sharing within AWS Organizations. Deploy a single NAT Gateway in the shared VPC to minimize costs, configure Gateway VPC Endpoints for S3 and DynamoDB, and purchase a Compute Savings Plan at the management account level.