A digital healthcare provider is modernizing its medical document processing application by refactoring a legacy webhook receiver into a serverless architecture on AWS. The webhook receiver accepts completed document upload notifications from external partner AWS accounts, decrypts the payloads using an AWS KMS key shared with the partners, and processes the payload metadata before writing it to an Amazon Aurora PostgreSQL database.
The solution must meet the following architectural requirements:
- Provide a highly available, public HTTPS endpoint to receive webhook notifications.
- Prevent large spikes in partner webhook volume from consuming all execution concurrency in the AWS account, which would throttle other critical synchronous API functions.
- Support key sharing and decryption of the payloads sent by external partner AWS accounts.
- Prevent connection exhaustion on the Aurora database during traffic bursts.
- Maintain high availability across multiple Availability Zones for all compute and network egress components.
Which of the following architectures meets these requirements with the least operational risk?
- Configure an Amazon API Gateway REST API as the public endpoint. Integrate the API Gateway with a Lambda function that uses an AWS KMS Customer Managed Key (CMK) with a key policy allowing cross-account access for the partner accounts. Deploy the Lambda function across multiple private subnets in different Availability Zones using redundant NAT Gateways, configure an Amazon RDS Proxy, and apply Reserved Concurrency to the Lambda function.Cevap
- BConfigure an Amazon API Gateway REST API as the public endpoint. Integrate the API Gateway with a Lambda function that uses an AWS KMS Customer Managed Key (CMK) with a key policy allowing cross-account access for the partner accounts. Deploy the Lambda function across multiple private subnets in different Availability Zones using redundant NAT Gateways and configure an Amazon RDS Proxy, but do not set any concurrency limit on the Lambda function to allow it to auto-scale freely during sudden payload surges.
- CConfigure an Amazon API Gateway REST API as the public endpoint. Integrate the API Gateway with a Lambda function that decrypts payloads using the default AWS-managed KMS key for Lambda (aws/lambda) with cross-account access enabled. Deploy the Lambda function across multiple private subnets in different Availability Zones using redundant NAT Gateways, configure an Amazon RDS Proxy, and apply Reserved Concurrency to the Lambda function.
- DConfigure an Amazon API Gateway REST API as the public endpoint. Integrate the API Gateway with a Lambda function that uses an AWS KMS Customer Managed Key (CMK) with a key policy allowing cross-account access for the partner accounts. Deploy the Lambda function inside a single private subnet in one Availability Zone with a single NAT Gateway to reduce egress costs, configure an Amazon RDS Proxy, and apply Reserved Concurrency to the Lambda function.