What should a solutions architect do to meet these requirements?
Configure S3 Transfer Acceleration on the existing S3 bucket. Direct customer requests to the S3 Transfer Acceleration endpoint. Continue to use S3 signed URLs for access control.
Deploy an Amazon CloudFront distribution with the existing S3 bucket as the origin. Direct customer requests to the CloudFront URL. Switch to CloudFront signed URLs for access control.
Set up a second S3 bucket in the eu-central-1 Region with S3 Cross-Region Replication between the buckets. Direct customer requests to the closest Region. Continue to use S3 signed URLs for access control.
Modify the web application to enable streaming of the datasets to end users. Configure the web application to read the data from the existing S3 bucket. Implement access control directly in the application.
Explanations:
While S3 Transfer Acceleration can speed up uploads and downloads by using the Amazon CloudFront edge network, it does not reduce costs significantly for data transfers since it incurs additional charges. Additionally, it does not improve performance for customers in Europe compared to using a regional solution like CloudFront.
Deploying a CloudFront distribution with the S3 bucket as the origin optimizes data delivery by caching content at edge locations closer to customers. This setup reduces latency and data transfer costs by leveraging CloudFront’s global network, while allowing for the use of signed URLs for access control, maintaining security.
Setting up a second S3 bucket in a different region with Cross-Region Replication would improve access speeds for European customers but could increase costs due to additional data transfer charges between regions. It also complicates access management since two buckets would need to be managed. Using CloudFront is more efficient for caching and access control.
Modifying the web application to stream data directly from S3 does not effectively reduce costs associated with data transfers, nor does it improve performance as well as utilizing a CDN like CloudFront would. Furthermore, implementing access control directly in the application may expose it to additional security risks.