A logistics company is designing a real-time supply chain tracking platform. The platform must ingest high-volume IoT telemetry data from millions of active sensors (write-intensive NoSQL workload, up to writes per second) and store historical device logs for regulatory audits (cold object storage, up to monthly). The tracking data must be queryable by device ID with sub- millisecond latency for the latest days. Historical logs must be retained for years, encrypted with a key controlled by the security team in a centralized security account, and must be cost-optimized with a retrieval time of under hours for audits. The disaster recovery requirements dictate an RTO of under minutes and an RPO of under minute for the real-time tracking data. Which of the following database and storage strategies meets these requirements with the lowest cost and complexity?
- ADeploy a single-region Amazon DynamoDB table to handle the telemetry writes and queries, configuring Time to Live (TTL) to delete records after 30 days. To meet disaster recovery requirements, schedule an AWS Backup job to copy database backups daily to a secondary AWS Region. Use DynamoDB Streams to trigger an AWS Lambda function that writes telemetry logs to an Amazon S3 bucket in the security account. Encrypt the S3 bucket using Server-Side Encryption with AWS KMS (SSE-KMS) using the AWS-managed key (aws/s3) in the security account. Use an S3 Lifecycle policy to transition objects to S3 Glacier Instant Retrieval to minimize storage costs.
- BDeploy an Amazon RDS for PostgreSQL database in a Multi-AZ deployment to support the telemetry writes and queries, configuring the application to route read queries to the standby instance in the secondary Availability Zone to achieve sub-10 millisecond latency. Enable an AWS Lambda function to query the database daily, export historical data to an Amazon S3 bucket in the logistics account, and delete the exported records from the database. Encrypt the S3 bucket using a customer managed key (CMK) in the security account with proper cross-account access. Configure an S3 Lifecycle policy to transition objects to S3 Glacier Deep Archive to optimize storage costs.
- Deploy Amazon DynamoDB global tables with replication between two AWS Regions to handle the sensor writes and queries, configuring Time to Live (TTL) to delete records after 30 days. Enable DynamoDB Streams to trigger an AWS Lambda function in the logistics account that writes the telemetry logs to an Amazon S3 bucket located in the centralized security account. Configure the S3 bucket policy in the security account to grant write permissions to the logistics account's Lambda execution role. Encrypt the S3 bucket using Server-Side Encryption with AWS KMS (SSE-KMS) using a customer managed key (CMK) in the security account, ensuring the KMS key policy explicitly permits the logistics account's Lambda role to perform kms:GenerateDataKey and kms:Decrypt. Transition the objects to S3 Glacier Flexible Retrieval after 30 days and delete them after 7 years.Cevap
- DDeploy Amazon DynamoDB global tables with replication between two AWS Regions to handle the sensor writes and queries, configuring Time to Live (TTL) to delete records after 30 days. Configure DynamoDB Streams to trigger an AWS Lambda function in the logistics account that writes telemetry logs to an Amazon S3 bucket located in the centralized security account. Encrypt the S3 bucket using Server-Side Encryption with AWS KMS (SSE-KMS) with a customer managed key (CMK) in the security account, granting the logistics account's Lambda role permissions in the KMS key policy. Do not update the S3 bucket policy in the security account to include the logistics account's Lambda role as a principal, relying instead on the identity-based IAM policy in the logistics account to grant write access. Configure an S3 Lifecycle policy to transition objects to S3 Standard-Infrequent Access (S3 Standard-IA) for 7 years.