A logistics company is modernizing a legacy package tracking and address validation service. The service is being rebuilt on AWS using Amazon API Gateway and AWS Lambda functions deployed within a private VPC subnet. The Lambda functions must retrieve database credentials from AWS Secrets Manager in a different shared services account, write tracking details to an Amazon Aurora PostgreSQL database, and make HTTP requests to an external transit carrier's address validation endpoint. During a peak traffic test, the database rejected new connections, and the burst of tracking requests exhausted the AWS account's execution concurrency, causing latency and failures in other critical, unrelated serverless workloads in the same region. Which combination of actions will resolve these issues while ensuring high availability and adhering to security best practices?
- Configure Amazon RDS Proxy to manage database connection pooling. Configure a reserved concurrency limit on the Lambda function. Set up a Customer Managed Key (CMK) in AWS KMS in the shared services account to encrypt the Secrets Manager secret, and configure the key policy to allow the Lambda execution role to decrypt. Deploy a NAT Gateway in each Availability Zone where the Lambda functions are deployed.Answer
- BConfigure Amazon RDS Proxy to manage database connection pooling. Configure provisioned concurrency on the Lambda function to handle the bursty traffic without configuring a reserved concurrency limit. Set up a Customer Managed Key (CMK) in AWS KMS in the shared services account to encrypt the Secrets Manager secret, and configure the key policy to allow the Lambda execution role to decrypt. Deploy a NAT Gateway in each Availability Zone where the Lambda functions are deployed.
- CConfigure Amazon RDS Proxy to manage database connection pooling. Configure a reserved concurrency limit on the Lambda function. Use the default AWS-managed key `aws/secretsmanager` to encrypt the Secrets Manager secret in the shared services account, and update the default key policy to allow the cross-account Lambda execution role to decrypt. Deploy a NAT Gateway in each Availability Zone where the Lambda functions are deployed.
- DConfigure Amazon RDS Proxy to manage database connection pooling. Configure a reserved concurrency limit on the Lambda function. Set up a Customer Managed Key (CMK) in AWS KMS in the shared services account to encrypt the Secrets Manager secret, and configure the key policy to allow the Lambda execution role to decrypt. Deploy a single NAT Gateway in one Availability Zone, and update the route tables of all private subnets to route external carrier validation traffic through it.