A financial tech company is modernizing its transaction reconciliation system by migrating the backend database to an Amazon Aurora PostgreSQL cluster. The system's application logic is refactored to run on AWS Lambda. The API must be accessible only to client microservices running in different VPCs across several AWS accounts within the same AWS Organization, and all traffic must remain private. The Aurora database has a maximum connection limit of 500, whereas the client microservices can generate transient bursts of up to 10,000 requests per second. The Lambda functions require access to sensitive database credentials encrypted with an AWS KMS key. Which architecture most securely and reliably meets these requirements while preventing database connection exhaustion and performance degradation?
- ADeploy the Lambda functions in the database VPC and configure them to connect directly to the Aurora database endpoints. Create a public REST API in Amazon API Gateway. Secure the API using an AWS Lambda Authorizer. Route outbound client traffic through a single NAT Gateway deployed in a single Availability Zone within the database VPC to reach the public API endpoint. Encrypt database credentials using a Customer Managed Key in AWS KMS.
- BDeploy the Lambda functions in the database VPC and configure Amazon RDS Proxy to manage database connection pooling. Leave the Lambda functions' concurrency limits unconfigured to allow the functions to scale freely during client microservice bursts. Create a private REST API in Amazon API Gateway, and create an Interface VPC Endpoint in each client VPC. Encrypt the database credentials using the AWS managed key `aws/lambda` in AWS KMS, and grant the Lambda execution role permissions to use it.
- Deploy the Lambda functions in the database VPC and configure Amazon RDS Proxy to manage database connection pooling. Set reserved concurrency limits on the Lambda functions to prevent account-level throttling. Create a private REST API in Amazon API Gateway with a resource policy restricting access to the organization's accounts. In each client VPC, create an Interface VPC Endpoint for API Gateway and access the API via the endpoint's DNS names. Encrypt the database credentials using a Customer Managed Key in AWS KMS, and grant the Lambda execution role decrypt permissions on this key.Cevap
- DDeploy the Lambda functions in the database VPC and configure Amazon RDS Proxy to manage database connection pooling. Create a private REST API in Amazon API Gateway, and associate its default Route 53 Private Hosted Zone with the database VPC. Rely on cross-account DNS resolution to allow other AWS accounts' VPCs to resolve the endpoint. Encrypt the database credentials using the AWS managed key `aws/lambda` in AWS KMS, and configure a cross-account KMS key policy to grant decrypt access to the client accounts.