An organization is modernizing its legacy logistics tracking application by migrating its backend logic to AWS Lambda functions fronted by Amazon API Gateway. The Lambda functions must access an Amazon RDS for PostgreSQL database located in a private subnet of a VPC, and must also invoke external carrier APIs over the internet. Additionally, the application must write encrypted daily tracking reports to an S3 bucket in a separate billing-focused AWS account managed by a compliance team.
The system regularly experiences sudden, high-volume bursts of requests. The modernization architecture must meet the following constraints:
- High Availability: Internet-bound outbound traffic from the Lambda functions must remain functional even during an Availability Zone outage.
- Security: The compliance reports in S3 must be encrypted using a key managed by the compliance account, with permission safely granted to the logistics Lambda function.
- Resource Protection: A sudden surge in tracking API requests must not exhaust the execution capacity of other critical serverless workloads running in the same regional AWS account.
- Deployment Safety: Deployments of new Lambda function versions must shift traffic progressively and rollback automatically if execution errors spike.
Which of the following architectural designs satisfies all of these requirements?
- ADeploy the Lambda functions in private subnets across multiple Availability Zones, routing outbound internet traffic via redundant NAT Gateways (one per Availability Zone). Configure Reserved Concurrency on the Lambda functions to protect the shared account concurrency pool. Use AWS CodeDeploy with a Canary configuration and CloudWatch Alarms to handle deployments and rollbacks. Configure the compliance S3 bucket to use the default AWS-managed KMS key (aws/s3) in the compliance account, and grant the Lambda function's IAM role permissions to use this key.
- Deploy the Lambda functions in private subnets across multiple Availability Zones, routing outbound internet traffic via redundant NAT Gateways (one per Availability Zone). Configure Reserved Concurrency on the Lambda functions to protect the shared account concurrency pool. Use AWS CodeDeploy with a Canary configuration and CloudWatch Alarms to handle deployments and rollbacks. Configure the compliance S3 bucket to use a KMS Customer Managed Key in the compliance account, and update its key policy to allow access from the Lambda function's IAM role.Cevap
- CDeploy the Lambda functions in private subnets across multiple Availability Zones, routing outbound internet traffic through a single NAT Gateway located in a single public subnet to simplify the network topology. Configure Reserved Concurrency on the Lambda functions to protect the shared account concurrency pool. Use AWS CodeDeploy with a Canary configuration and CloudWatch Alarms to handle deployments and rollbacks. Configure the compliance S3 bucket to use a KMS Customer Managed Key in the compliance account, and update its key policy to allow access from the Lambda function's IAM role.
- DDeploy the Lambda functions in private subnets across multiple Availability Zones, routing outbound internet traffic via redundant NAT Gateways (one per Availability Zone). Rely on the regional unreserved concurrency pool to allow the Lambda functions to scale dynamically during spikes. Use AWS CodeDeploy with a Canary configuration and CloudWatch Alarms to handle deployments and rollbacks. Configure the compliance S3 bucket to use a KMS Customer Managed Key in the compliance account, and update its key policy to allow access from the Lambda function's IAM role.