A company is building a web application on AWS. When a customer requests a report, the application will generate the report and make it available to the customer within one hour. Reports should remain accessible for 8 hours. Some reports exceed 1 MB. Each report is unique to the requesting customer. The application must delete reports older than 2 days. Which approach provides the required behavior with the LEAST operational overhead?
Choose an answer
Tap an option to check your answer.
Correct answer: Generate the reports and store them in an Amazon S3 bucket with server-side encryption. Create presigned URLs that expire and provide those URLs to customers through the web application. Use S3 Lifecycle rules to delete reports older than 2 days..
Why this is the answer
Storing reports in Amazon S3 is ideal for large, unique files like these reports, as S3 is highly scalable and cost-effective for object storage. Server-side encryption ensures data security. S3 presigned URLs provide secure, temporary access to specific objects, fulfilling the 8-hour accessibility requirement without needing to manage user authentication for S3 directly. S3 Lifecycle rules automate the deletion of objects older than 2 days, minimizing operational overhead. DynamoDB is not suitable for storing large reports (exceeding 1MB) as it's a NoSQL database optimized for key-value and document data, not large binary objects. Attaching reports to SNS messages is impractical because SNS messages have a size limit (256 KB), making it unsuitable for reports exceeding 1 MB. Storing reports in an RDS database is less efficient and more expensive for large binary files compared to S3, and managing deletions with a Lambda function adds more operational overhead than S3 Lifecycle rules.
Pass your exam — without the endless answer hunt
Get every verified question and explanation for this exam in one place, and save hours of prep. 1,000+ certifications · 20+ languages · free to start.
Pass your exam faster → No card needed