A financial technology corporation is modernizing its legacy on-premises payment settlement API by migrating it to a serverless architecture on AWS. The solution must expose a private API to consumer applications deployed across multiple AWS accounts within the same AWS Organization. The architecture must satisfy the following requirements:
- All API communication must remain strictly within the AWS network.
- Cross-account consumers must authenticate using custom tokens verified by a central security account, which signs payloads using a custom AWS KMS key.
- The backend AWS Lambda functions must access a relational database securely.
- A sudden volume spike in a secondary, non-critical reporting API must not throttle or exhaust the execution capacity of the critical payment settlement API.
- The outbound traffic from the VPC-integrated Lambda functions to external verification endpoints must be highly resilient against Availability Zone failures.
Which of the following architectures meets these requirements while adhering to AWS best practices?
- ACreate an Amazon API Gateway private REST API. Create an interface VPC endpoint (AWS PrivateLink) for API Gateway in each consumer VPC. Configure a custom Lambda authorizer that uses the default AWS-managed KMS key for API Gateway (aws/apigateway) to verify signed tokens from the central security account. Allocate reserved concurrency to the critical payment settlement Lambda functions. Deploy the VPC-integrated Lambda functions across multiple Availability Zones, routing outbound traffic through a dedicated NAT Gateway in each Availability Zone.
- BCreate an Amazon API Gateway private REST API. Create an interface VPC endpoint (AWS PrivateLink) for API Gateway in each consumer VPC, using endpoint policies to restrict access. Configure a custom Lambda authorizer that uses a Customer Managed Key (CMK) in AWS KMS, with a key policy that grants cross-account decrypt permissions. Deploy the VPC-integrated Lambda functions across multiple Availability Zones, routing outbound traffic through a dedicated NAT Gateway in each Availability Zone. Run both the reporting and critical settlement Lambda functions using the default unreserved regional concurrency pool to maximize resource sharing.
- Create an Amazon API Gateway private REST API. Create an interface VPC endpoint (AWS PrivateLink) for API Gateway in each consumer VPC, using endpoint policies to restrict access. Configure a custom Lambda authorizer that uses a Customer Managed Key (CMK) in AWS KMS, with a key policy that grants cross-account decrypt permissions to verify the signed tokens. Allocate reserved concurrency to the critical payment settlement Lambda functions to protect their capacity. Deploy the VPC-integrated Lambda functions across multiple Availability Zones, routing outbound traffic through a dedicated NAT Gateway in each Availability Zone.Answer
- DCreate an Amazon API Gateway private REST API. Create an interface VPC endpoint (AWS PrivateLink) for API Gateway in each consumer VPC, using endpoint policies to restrict access. Configure a custom Lambda authorizer that uses a Customer Managed Key (CMK) in AWS KMS, with a key policy that grants cross-account decrypt permissions. Allocate reserved concurrency to the critical payment settlement Lambda functions. Deploy the VPC-integrated Lambda functions across multiple Availability Zones, but route all outbound traffic through a single NAT Gateway located in a single public subnet to reduce NAT Gateway hourly charges.