A company is modernizing a legacy, highly transactional mainframe service by migrating it to a serverless architecture on AWS. The modernized application will receive public API calls via Amazon API Gateway and invoke backend logic on AWS Lambda. The Lambda functions must query and update an Amazon Aurora PostgreSQL database that is hosted in a private subnet within a VPC. The database contains highly sensitive data, and credentials must be rotated automatically without code modifications or environment variables. The API must only accept requests containing a valid custom cryptographic signature header, which must be verified against public verification keys stored in a centralized security account. During peak traffic bursts, the Lambda functions must not exhaust the regional concurrency limits of the AWS account or overwhelm the database with connections. Which combination of actions should a Solutions Architect take to design a secure, performant, and resilient architecture? (Select TWO.)
- Configure an Amazon API Gateway Lambda authorizer to verify the cryptographic signature. Configure the authorizer to retrieve the verification key from AWS Secrets Manager in the Security account using a Customer Managed Key (CMK) with cross-account IAM role permissions, caching the authorization result in API Gateway. Establish an Amazon RDS Proxy in the private subnets across multiple Availability Zones, and configure the backend Lambda function to connect to the database via the proxy using IAM database authentication.Cevap
- Enable a Reserved Concurrency limit on the backend Lambda function that corresponds to the maximum database connections allowed by the RDS Proxy. Configure the Lambda function's VPC settings to deploy in multiple subnets across all available Availability Zones, ensuring the subnets are routed via multiple NAT Gateways in each Availability Zone for any external API outbound calls.Cevap
- CTo manage database connection limits, rely on the backend Lambda function's local initialization container memory to persist connections across invocations. Configure the database credentials to be retrieved directly from AWS Secrets Manager using the default AWS-managed KMS key (aws/secretsmanager) in the Security account to decrypt the credentials during each Lambda invocation.
- DConfigure an API Gateway Lambda authorizer to verify the cryptographic signature. Deploy the backend Lambda function and RDS Proxy within a single private subnet in a single Availability Zone to ensure minimal network latency. Route all outbound internet traffic from this subnet through a single NAT Gateway located in the public subnet of the same Availability Zone.
- ETo handle connection management during traffic bursts, configure API Gateway with a standard regional endpoint and route traffic to the backend Lambda function with unconstrained concurrency. Let the Lambda function scale dynamically to its maximum concurrency limits to maximize throughput, and enable Aurora Auto Scaling to dynamically add reader replicas to absorb the increased write and update queries on the database.