In your situation I'd probably choose option 2 and set up CloudFront in front of S3.
#Speed up origin download download
Also while you state that you know the location of the customers, what happens if a customer does change its location and suddenly wants to download an object which is now stored on the other side of the world? You'd have the same problem again. While storing could be simplified by using S3 Replication (you could use a filter to only replicate objects to a specific target bucket meant for this bucket), the overhead with managing multiple endpoints for multiple customers remains. Another reason for not distributing the files to different S3 buckets depending on the users location is the management overhead: You need to manage multiple S3 buckets, store each file in the correct bucket and point each user to the correct bucket. Storing the data depending on the users location would improve the situation as well, although CloudFront edge locations are usually closer to a user than the next AWS region with S3. On the other hand you gain something else by using CloudFront or S3 Transfer Acceleration (the latter one being essentially the same as the first one without caching): The requests enter AWS' network already at the edge, so you can avoid using congested networks from the location of the user to the location of your S3 bucket, which is usually the main reason for slow and interrupted downloads. Which may be a better option to explore further?Īs each file will only be downloaded a few times, you won't benefit from CloudFront's caching, because the likelihood that the download requests all hit the same CloudFront node and that this node hasn't evicted the file from its cache yet, are probably near zero, especially for such large files. So, I want recommendations in terms of cost+download speed. Depending on the user's location (we know where the download will happen), we can keep the file in the specific bucket which was created at that aws region.Use of akamai as CDN (same concern as of CloudFront, only thing is we have a better price deal with akamai at org level).use of CloudFront CDN with S3 origin (Since our downloads are of different files, each file being downloaded just once or twice, will CDN help since, for 1st time, it will fetch data from US bucket only).We are thinking about the following approaches: For larger files, clients in non-US location face and complain about slow downloads or interrupted downloads. Our clients download the files from these buckets all over the world.
We keep user-specific downloadable files on AWS S3 buckets in N.Virginia region.