A hotel reservation platform is modernizing its booking confirmation service by migrating to a serverless architecture on AWS. The system must process booking events sent via an Amazon API Gateway HTTP API, parse the JSON payload using an AWS Lambda function, call an external payment processor API on the public internet, and write reservation details to an Amazon Aurora PostgreSQL database in a private subnet. The database credentials must be retrieved from AWS Secrets Manager, which is managed in a separate centralized security AWS account. During peak promotional periods, the platform experiences sudden traffic spikes of up to 10,000 requests per second. The database has a limited connection pool. The solutions architect needs to design a highly available, scalable, and secure architecture that protects the database from connection exhaustion, provides outbound internet access for the Lambda function, prevents the Lambda function from exhausting the regional account-level concurrency pool, and allows cross-account retrieval of the database credentials. Which architecture should the solutions architect implement to meet these requirements?
- AConfigure the Lambda function to run in private subnets across multiple Availability Zones, routing outbound internet traffic through a single NAT Gateway in one Availability Zone to optimize network costs. Deploy Amazon RDS Proxy to manage database connections. Configure reserved concurrency on the Lambda function. Use a Customer Managed Key in AWS Key Management Service (AWS KMS) with a cross-account key policy to encrypt the credentials secret.
- BConfigure the Lambda function to run in private subnets across multiple Availability Zones, routing outbound internet traffic through NAT Gateways deployed in each Availability Zone. Deploy Amazon RDS Proxy to manage database connections. Configure reserved concurrency on the Lambda function. Use the default AWS-managed KMS key (aws/secretsmanager) in the security account to encrypt the credentials secret, and grant the Lambda execution role cross-account decrypt permissions.
- Configure the Lambda function to run in private subnets across multiple Availability Zones, routing outbound internet traffic through NAT Gateways deployed in each Availability Zone. Deploy Amazon RDS Proxy to manage database connections. Configure reserved concurrency on the Lambda function. Use a Customer Managed Key in AWS Key Management Service (AWS KMS) with a cross-account key policy to encrypt the credentials secret in the central security account.Answer
- DConfigure the Lambda function to run in private subnets across multiple Availability Zones, routing outbound internet traffic through NAT Gateways deployed in each Availability Zone. Deploy Amazon RDS Proxy to manage database connections. Use a Customer Managed Key in AWS KMS with a cross-account key policy to encrypt the credentials secret. Leave the Lambda function's concurrency unconfigured to allow the function to scale freely during peaks.