31

I have read documents about them, but I don't know their difference exactly.

could you let me know what's the difference?

Knunu
  • 315
  • 1
  • 3
  • 6
  • This is an oversimplification but- CloudFront is for distributing (read: downloading) files efficiently and Transfer Acceleration is for transferring (read: uploading) files efficiently – user Jan 10 '17 at 02:36
  • 4
    @user That's wrong. S3 transfer acceleration also accelerates downloads. – Aleksandr Dubinsky Nov 23 '18 at 13:59
  • https://tutorialsdojo.com/aws-global-accelerator-vs-amazon-cloudfront/ – Channa Nov 21 '20 at 17:00

5 Answers5

62

TL;DR: CloudFront is for content delivery. S3 Transfer Acceleration is for faster transfers and higher throughput to S3 buckets (mainly uploads).

Amazon S3 Transfer Acceleration is an S3 feature that accelerates uploads to S3 buckets using AWS Edge locations - the same Edge locations as in AWS CloudFront service.

However, (a) creating a CloudFront distribution with an origin pointing to your S3 bucket and (b) enabling S3 Transfer acceleration for your bucket - are two different things serving two different purposes.

When you create a CloudFront distribution with an origin pointing to your S3 bucket, you enable caching on Edge locations. Consequent requests to the same objects will be served from the Edge cache which is faster for the end user and also reduces the load on your origin. CloudFront is primarily used as a content delivery service.

When you enable S3 Transfer Acceleration for your S3 bucket and use <bucket>.s3-accelerate.amazonaws.com instead of the default S3 endpoint, the transfers are performed via the same Edge locations, but the network path is optimized for long-distance large-object uploads. Extra resources and optimizations are used to achieve higher throughput. No caching on Edge locations.

More inromation:

alveko
  • 2,109
  • 2
  • 18
  • 15
  • thank you for your kind answer even though i already solved this question. – Knunu Mar 03 '17 at 14:08
  • 2
    S3 acceleration helps downloads as well. It helps a lot in situations where the local ISP's international link is low-quality (these links are more expensive than local links). – Aleksandr Dubinsky Nov 23 '18 at 13:58
  • Hello Does "CloudFront distribution with an origin pointing to your S3 bucket" impove in some way the upload speed of the files to your S3 bucket? – Jaxx Jan 09 '21 at 16:12
14

If you are interested in the difference between these two options pertaining to uploading content to S3 you may be interested in the following from Amazon's FAQ for S3:

Q. How should I choose between Transfer Acceleration and Amazon CloudFront’s PUT/POST? Transfer Acceleration optimizes the TCP protocol and adds additional intelligence between the client and the S3 bucket, making Transfer Acceleration a better choice if a higher throughput is desired. If you have objects that are smaller than 1GB or if the data set is less than 1GB in size, you should consider using Amazon CloudFront's PUT/POST commands for optimal performance.

As the FAQ answer states, transfer acceleration should be used if you need higher throughput.

SnapShot
  • 5,464
  • 5
  • 42
  • 40
2

Per the FAQs:

Q: How should I choose between S3 Transfer Acceleration and Amazon CloudFront’s PUT/POST?

S3 Transfer Acceleration optimizes the TCP protocol and adds additional intelligence between the client and the S3 bucket, making S3 Transfer Acceleration a better choice if a higher throughput is desired. If you have objects that are smaller than 1GB or if the data set is less than 1GB in size, you should consider using Amazon CloudFront's PUT/POST commands for optimal performance.

https://aws.amazon.com/s3/faqs/#s3ta

John Doe
  • 1,950
  • 9
  • 32
  • 53
0

both Amazon cloudfront and amazon S3 are very different. Here is what these are for:

Amazon S3 provides a storage service on the internet while Amazon CloudFront is a web service for content delivery. Amazon S3 uses its own global network of websites while Amazon CloudFront delivers your content through a worldwide network of edge locations. Major differences in the features of both these services are mentioned Here.

And if you want to know about the S3 transfer accelerators, it actually takes advantage of Amazon CloudFront’s globally distributed edge locations to deliver/transfer fast, easy, and secure way of files over long distances between your client and an S3 bucket. Want to read more about S3 transfer accelerator, click here.

error_handler
  • 1,191
  • 11
  • 19
  • thank you for reply! that mean, s3 transfer accelerators are like set of local cloudfront? – Knunu Apr 27 '16 at 08:22
  • No, it isn't. s3 transfer accelerators uses cloud-front edge locations to transfer files in fast way to your bucket. CloudFront is a Service and works as Content Delivery Network. – error_handler Apr 27 '16 at 08:42
  • And yes, you can say that s3 transfer accelerators uses local cloudfront internally. – error_handler Apr 27 '16 at 08:44
  • If this answer helps for your question , please accept it and upvote it. – error_handler Apr 27 '16 at 09:09
  • then it is same that users contact datas through s3 transfer accelerators and contact datas through cloudfront. – Knunu Apr 27 '16 at 09:40
  • @Knunu to be clear: S3 transfer acceleration uses performance-optimized edge proxies and transport over a managed network just like CloudFront, but has no caching at the edge. – Michael - sqlbot Apr 27 '16 at 20:17
0

CloudFront is download direction only, so it is not offering a performant upload to the origin. Whereas S3 with Transfer Acceleration, it will utilize Edge locations like CloudFront both for upload and download.