Khi nào nên sử dụng Amazon Cloudfront hoặc S3


232

Có trường hợp sử dụng nào cho vay tốt hơn cho Amazon cloudfront trên s3 hoặc ngược lại không? Tôi đang cố gắng để hiểu sự khác biệt giữa 2 thông qua các ví dụ.


1
Nếu bạn đang phục vụ tệp, chỉ CloudFront cho phép bạn có HTTPS trên miền tùy chỉnh. Điều đó đã niêm phong nó cho chúng tôi.
mlissner

Câu trả lời:


373

Amazon S3 được thiết kế để lưu trữ tệp dung lượng lớn, chi phí thấp trong một khu vực địa lý cụ thể. * Chi phí lưu trữ và băng thông khá thấp.

Amazon CloudFront là Mạng phân phối nội dung (CDN) ủy nhiệm và lưu trữ dữ liệu web tại các vị trí cạnh càng gần người dùng càng tốt.

Khi người dùng cuối yêu cầu một đối tượng sử dụng tên miền này, họ sẽ tự động được chuyển đến vị trí cạnh gần nhất để phân phối nội dung hiệu suất cao của bạn. ( Amazon )

Dữ liệu được cung cấp bởi CloudFront có thể có hoặc không đến từ S3. Vì nó được tối ưu hóa hơn cho tốc độ phân phối, băng thông tốn kém hơn một chút.

Nếu cơ sở người dùng của bạn được bản địa hóa , bạn sẽ không thấy quá nhiều sự khác biệt khi làm việc với S3 hoặc CloudFront (nhưng bạn phải chọn vị trí phù hợp cho nhóm S3 của mình: US, EU, APAC). Nếu cơ sở người dùng của bạn được trải đều trên toàn cầu và tốc độ là quan trọng, CloudFront có thể là một lựa chọn tốt hơn.

Cả hai S3 và CloudFront phép bí danh tên miền, tuy nhiên CloudFront cho phép nhiều bí danh để d1.mystatics.com, d2.mystatics.comd3.mystatics.comcó thể tất cả các điểm đến cùng một vị trí tăng cường năng lực cho tải song song (điều này thường được khuyến cáo của Google nhưng với sự ra đời của SPDY và HTTP / 2 là ít quan trọng hơn).

CloudFront cũng hỗ trợ CORS vào năm 2014 (cảm ơn sergiopantoja).

* Lưu ý: S3 hiện có thể tự động sao chép sang các khu vực bổ sung vào năm 2015.


10
Cảm ơn, câu trả lời tuyệt vời.
Kamo

3
Có một sự khác biệt cho phông chữ web do CloudFront không hỗ trợ đầy đủ CORS. Nó lưu trữ các tiêu đề trong phản hồi S3 nhưng để hỗ trợ CORS đầy đủ, một số tiêu đề sẽ thay đổi tùy thuộc vào máy chủ yêu cầu (nguồn gốc). Làm việc xung quanh: forum.aws.amazon.com/message.jspa?messageID=422504#422532
Cymen

11
Để cập nhật thông tin này, CloudFront hỗ trợ CORS ngay bây giờ: aws.amazon.com/about-aws/whats-new/2014/06/26/ trộm
sergiopantoja

Hãy lưu ý rằng Cloudfront đuổi nội dung rất nhanh. Đặt tuổi tối đa thành hơn một ngày không có nghĩa là nội dung của bạn sẽ không bị đuổi nếu nội dung đó không được chạm trong 61 phút. Không sử dụng nhiều cho nội dung cụ thể của người dùng vì số lượng truy cập không thường xuyên.
BobB

53

CloudFront và S3 Xô không giống nhau . Theo thuật ngữ của cư sĩ: CloudFront cho phép bạn tăng tốc phân phối nội dung nội dung web của mình qua Mạng phân phối nội dung (CDN) ở các vị trí cạnh, trong khi Nhóm S3 là nơi bạn lưu trữ các tệp thực tế của mình. Các nguồn CloudFront có thể không nhất thiết phải từ S3 nhưng để dễ hình dung hơn về tích hợp S3 với CloudFront: nhập mô tả hình ảnh ở đây


cảm ơn! sơ đồ này cho thấy sự khác biệt rõ ràng.
Rajan Sharma

28

Một điểm khác biệt lớn nữa là CloudFront cho phép bạn phản chiếu trang web trên máy chủ của mình. Cloudfront sau đó lưu trữ các tệp như hình ảnh, mp3 hoặc video bằng mạng phân phối nội dung của nó.

Điều này giúp bạn tiết kiệm được việc sao chép tài sản của mình như khi sử dụng Amazon S3.

Tuy nhiên, sau khi tệp hết hạn, CloudFront sẽ tìm nạp lại từ trang web trực tiếp của bạn (với chi phí). Vì vậy, phía trước đám mây là tốt nhất cho các tệp thường xuyên truy cập và ít hơn cho các tệp được truy cập không thường xuyên.

Một cách để thiết lập hết hạn tệp cho apache là trong .htaccess. Ví dụ

<filesMatch "\\.(mp3|mp4)$">
Header set Cache-Control "max-age=648000, private"
</filesMatch>

20

Amazon CLOUDFRONT và S3 là hai dịch vụ khác nhau được cung cấp bởi Amazon Web Services.

Amazon S3 là một dịch vụ lưu trữ trong đó chúng tôi có thể lưu trữ các tệp tĩnh như:

css, hình ảnh, javascripts, video, v.v ...

Amazon CloudFront là một kho trung gian, nằm giữa một người dùng yêu cầu tệp từ AWS và trung tâm dữ liệu S3 trong một khu vực cụ thể, CloudFront được sử dụng để tăng tốc độ phân phối nội dung web tĩnh và động của bạn từ S3 đến Người dùng.

Bạn có thể hiểu nó tốt hơn bằng một ví dụ: -

Ví dụ: S3 của bạn nằm ở khu vực AWS US East (N. Virginia), nơi đặt trung tâm dữ liệu để lưu trữ các tệp của bạn.

Nếu người dùng từ Ấn Độ cố gắng truy cập tệp từ máy chủ AWS ở Virginia, thì người dùng sẽ cần đến địa điểm cụ thể đó bằng một yêu cầu và việc này sẽ mất rất nhiều thời gian.

Những gì CloudFront làm là nó đứng như một phần mềm trung gian giữa người dùng và AWS S3.


Các tệp thường được sử dụng nhất có thể được lưu trong bộ nhớ cache trên CloudFront và nó là gì, nó sao chép các tệp đó ở các vị trí cạnh (Để phân phối nội dung cho người dùng cuối có độ trễ thấp hơn, Amazon CloudFront sử dụng mạng toàn cầu các vị trí cạnh để phân phối nội dung).

Nếu nội dung đã ở vị trí cạnh có độ trễ thấp nhất, CloudFront sẽ cung cấp ngay lập tức. Nếu nội dung hiện không ở vị trí cạnh đó, CloudFront sẽ truy xuất nội dung đó từ nhóm Amazon S3 và cung cấp cho người dùng nhanh nhất có thể.

Mỗi yêu cầu được cung cấp một DNS mới từ CloudFront đến S3, vì vậy điều này sẽ dẫn đến lưu lượng truy cập thấp hơn cũng như xử lý yêu cầu song song hơn.

Sau đây là danh sách các vị trí cạnh hiện tại tính đến tháng 7 năm 2016: -

Hoa Kỳ

  • Ashburn, VA (3)
  • thủ đô Atlanta
  • Chicago, IL
  • Dallas / Fort Worth, TX (2)
  • Hayward, CA
  • Jacksonville, FL
  • Los Angeles, CA (2)
  • thành phố Miami, bang Florida
  • New York, NY (3)
  • Newark, NJ
  • Palo, CA
  • San Jose, CA
  • Seattle, WA
  • Nam uốn cong, IN
  • Louis, MO

Châu Âu

  • Amsterdam, Hà Lan (2)

  • Dublin, Ireland

  • Frankfurt, Đức (3)

  • Luân Đôn, Anh (3)

  • Madrid, Tây Ban Nha

  • Marseille, Pháp

  • Milan, Ý

  • Paris, Pháp (2)

  • Stockholm, Thụy Điển

  • Warsaw, Ba Lan

Châu Á

  • Chennai, Ấn Độ

  • Hồng Kông (2)

  • Mumbai, Ấn Độ

  • Manila, Philippines

  • New Delhi, Ấn Độ

  • Osaka, nhật bản

  • Seoul, Hàn Quốc (3)

  • Singapore (2)

  • Đài Bắc, Đài Loan

  • Tokyo, Nhật Bản (2)

Châu Úc

  • Melbourne, Úc

  • Sydney, Úc

Nam Mỹ

  • São Paulo, Brazil

  • Rio de Janeiro, Brazil

Từ đó, bạn có thể kết luận rằng nếu người dùng bị giới hạn ở cùng khu vực với S3 của bạn được lưu trữ trên đó, thì bạn không cần phải truy cập CloudFront và nếu số lượng người dùng tăng lên ở cấp độ toàn cầu thì bạn chắc chắn nên sử dụng CloudFront để có độ trễ tốt hơn và kiểm soát giao thông.


1
đây là câu trả lời hay nhất
João Otero

14

Một trường hợp khác để sử dụng CloudFront trên S3 là bạn có thể sử dụng chứng chỉ SSL cho miền tùy chỉnh trong CloudFront trong khi bạn không thể trong S3. Một lý do khá tốt imho!


2
Và với Trình quản lý chứng chỉ mới, điều đó thậm chí còn dễ dàng!
phatmann

7

Amazon S3 là một Dịch vụ lưu trữ đơn giản, có thể sử dụng lượng thông tin lớn này, ví dụ như Video, Hình ảnh, PDF, v.v.

CloudFront là Mạng phân phối nội dung, gần gũi hơn với người dùng cuối và được sử dụng để cung cấp thông tin trên Amazon S3 trong thời gian ít nhất có thể.

Một trường hợp sử dụng mẫu là Video theo yêu cầu.

  1. Bạn lưu trữ video của bạn tại một nơi. S3 lưu trữ tất cả các video được quay trước ở các định dạng khác nhau.
  2. Bạn có trường hợp người dùng toàn cầu
  3. CloudFront được sử dụng để lưu trữ video vào các vị trí cạnh. Điều này có thể được sử dụng để cung cấp nội dung cho người dùng cuối. Vị trí được chọn tự động dựa trên vị trí cạnh vật lý gần nhất. Hiện tại có khoảng 51 vị trí cạnh.

Một số ưu điểm của việc sử dụng CloudFront cho trường hợp sử dụng đúng:

  1. Cải thiện độ trễ - Trải nghiệm người dùng cuối tốt hơn.
  2. Có thể giảm chi phí truyền dữ liệu. Vì dữ liệu không phải lúc nào cũng được truyền từ cùng một nhóm S3 trong một khu vực AWS cụ thể.

Các trường hợp sử dụng khác có thể:

  1. Live streaming
  2. Chơi game
  3. Tăng tốc trang web

4

Một khía cạnh bị bỏ lỡ ở đây là:

Amazon Cloudfront cũng cung cấp mức giá thấp hơn Amazon S3 ở các mức sử dụng cao hơn.

  • Cloudfront CDN dành cho phân phối nội dung trên nhiều máy chủ được phân phối theo địa lý (CSS, JS)

  • Trong khi đó s3 là phần lớn hơn cho mỗi người dùng lưu trữ tài nguyên ít sử dụng (hình ảnh người dùng, PDF).

Bạn có thể phục vụ tài nguyên Cloudfront của mình từ nhóm s3 hoàn toàn bỏ qua máy chủ web của bạn.

( Hữu ích trong trường hợp máy chủ web của bạn biên dịch trước và lưu trữ hình ảnh và tập lệnh java. Lưu trữ chúng trên s3 có nghĩa là giảm dung lượng bộ nhớ máy chủ của bạn )

Ví dụ: Trên Heroku Slugs (có thể giảm kích thước ứng dụng tuân thủ bằng cách sử dụng s3 và gói nó bằng CDN phía trước đám mây sẽ cải thiện thông lượng)


2

Như lần đầu tiên tôi muốn giải thích rằng Amazon S3 là Cloud Storage và Cloud Front là mạng phân phối nội dung (CDN).

Vì vậy, bạn có thể sử dụng để lưu trữ các tệp trên S3 và có thể tạo bản phân phối để phục vụ nội dung qua internet. Cũng như bạn có thể tạo phân phối cho các khu vực cụ thể.



1

Amazon S3 là một nền tảng lưu trữ đối tượng tuyệt vời nếu bạn đang tìm kiếm một hệ thống lưu trữ phân tán toàn cầu để bảo vệ chống lại các khu vực / khu vực đi xuống. Nó cũng tuyệt vời cho nội dung tĩnh / cố định không phải là giao dịch và thay đổi, chẳng hạn như hình ảnh, video, hình ảnh, bản sao lưu, vv Hy vọng rằng sẽ giúp!

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.