AWS CloudFront * có nên tăng * thời gian tải cho các tệp được truy cập không thường xuyên không?


9

Tôi chưa quen với CDN và đang thử nghiệm với CloudFront. Tôi đã thiết lập mọi thứ và tất cả dường như đang hoạt động tốt. Tôi có thể tạo một hình ảnh tĩnh trên một trang và truy cập nó qua bản phân phối CloudFront của tôi. Tôi đang sử dụng một nguồn gốc tùy chỉnh (tức là không phải là một thùng s3).

Tôi lo lắng rằng tôi có thể tồi tệ hơn từ quan điểm hiệu suất mặc dù. Tôi có một trang thử nghiệm đang tải lên cùng 20 hình ảnh có hoặc không có CDN. Nhìn vào bảng điều khiển mạng trong Fireorms, lần đầu tiên tôi tải trang này, hình ảnh được tải trực tiếp từ máy chủ gốc xuất hiện nhanh hơn nhiều. Trên trang tiếp theo, các lợi ích của CDN trở nên rõ ràng - sau 3-5 lần làm mới, CDN hoạt động tốt hơn so với máy chủ gốc.

Vì vậy, tôi có thể thấy rằng trên một trang phổ biến trên trang web của chúng tôi đang bị tấn công mọi lúc, đây sẽ là một lợi ích. Và tôi nên mong đợi một lợi ích vì tôi ở Seattle (quanh góc của Amazon) và máy chủ của tôi ở CA.

Vấn đề là nếu tôi rời khỏi trang trong vài phút và sau đó tải lại, mọi thứ sẽ trở lại hình vuông, với CloudFront tệ hơn máy chủ gốc. Đây có phải là mong đợi? Có phải mọi thứ thoát khỏi "bộ đệm" CDN quá nhanh không?

Có thể một cái gì đó trong thiết lập của tôi đang làm tổn thương hiệu suất? Hoặc là thực tế rằng CDN sẽ chỉ là một mạng dương cho nội dung hiện đang được truy cập trung bình cứ sau vài giây?

(đăng chéo từ diễn đàn AWS vì tôi đã bị hư hỏng mãi mãi bởi thời gian quay vòng của SO)

CẬP NHẬT:

Có hai câu trả lời hay dưới đây rất đáng để xem nếu bạn có thắc mắc về hiệu suất của CloudFront. Gần đây tôi đã tìm thấy một lời giải thích cho vấn đề cụ thể của tôi đã không được đề cập. Tôi đã rời khỏi TTL sau 5 phút như một sự giám sát. Vì tôi cũng đang sử dụng nguồn gốc tùy chỉnh, nên có một chuyến đi khứ hồi bổ sung đến máy chủ tên có thẩm quyền để giải quyết vấn đề đó với miền Amazon CloudFront thực tế. Bây giờ, cài đặt TTL đã hoạt động trở lại 12 giờ, có vẻ như các tải dài xảy ra hiếm khi hơn.


Có, có thể CloudFront chậm hơn so với việc truy cập trực tiếp vào máy chủ nhanh, bởi vì CloudFront là một trong những CDN chậm nhất hiện có, do cách Amazon triển khai nó với nhiều lớp phân giải DNS, v.v. Chạy một số điểm chuẩn từ differnet các địa điểm trên khắp thế giới và quyết định xem nó có phù hợp với bạn hay không - sử dụng webpagetest.org để thử nghiệm.
Jesper M

Câu trả lời:


5

Cloudfront đặt tiêu đề trong các câu trả lời như "X-Cache: Hit from cloudfront" trong các câu trả lời. Có lẽ, nó sẽ nói "Miss" nếu tệp của bạn không nằm trong bộ đệm của nút mà bạn được hướng đến.

Có thể các tệp của bạn không đủ phổ biến, do đó, chúng bị đẩy ra khỏi bộ đệm của CloudFront bởi nội dung phổ biến hơn mặc dù đã 24 giờ trôi qua. Cũng có thể do quá tải IO hoặc một số trường hợp khác bên trong nút CloudFront cụ thể làm cho việc truy cập bị chậm. Cloudfront rất rẻ so với Akamai hoặc LimeLight. Hiệu suất trong trường hợp xấu nhất và mức độ dịch vụ được đảm bảo là hai trong số những lý do để sử dụng các cầu thủ đắt tiền hơn.

Tôi sẽ thực hiện một thử nghiệm, chỉ đưa một tệp phổ biến vào sản xuất trên nền tảng đám mây và sau đó sử dụng các thử nghiệm định kỳ để xem liệu CloudFront có chỉ ra các lần truy cập không (cũng ghi lại tổng thời gian giao dịch).


Tôi đã cập nhật câu hỏi với một lời giải thích tiềm năng khác cho vấn đề hoàn hảo mà tôi đã thấy, đó là tôi đã để cài đặt TTL ở cài đặt thấp trong 5 phút, nhưng khi chuyển về 12 giờ tôi không nghĩ là mình đang nhìn thấy những điều này vấn đề hoàn hảo thường xuyên như thường xuyên.
Greg

7

Điều đó là có thể. Tuy nhiên, một mục đích của CDN là khả năng mở rộng. Bạn có thể mong đợi CDN thực hiện tương tự nếu bạn ném 100 lượt truy cập cùng một lúc hoặc 1 triệu lượt truy cập cùng một lúc.

Theo như thiết lập của bạn, không có gì tôi có thể biết với thông tin bạn cung cấp, nhưng tôi nghĩ rằng điểm trên là điều làm cho CDN trở nên có giá trị. Nếu bạn đang tạo một trang web không nhận được nhiều lưu lượng truy cập, bạn có thể tốt hơn nếu không có CDN. Tuy nhiên, CDN sẽ cung cấp tải nhẹ hơn trên máy chủ web của bạn nếu bạn nhận được nhiều lưu lượng truy cập vì bạn đang chuyển dịch vụ truyền thông của mình sang máy chủ khác. Một điểm cuối cùng, một CDN tốt (và của Amazon là) sẽ sử dụng mạng lưới rộng khắp của họ để phục vụ nội dung của bạn từ vị trí gần nhất với người yêu cầu. Trong nhiều trường hợp, họ có thể phục vụ nội dung từ ISP của người yêu cầu, nghĩa là thời gian tải RẤT nhanh.

Mong rằng sẽ giúp.


Cảm ơn Jesse - rất hữu ích. Các điểm liên quan đến nhân rộng được thực hiện tốt. Và chúng tôi có đủ lưu lượng truy cập cho nó để tạo sự khác biệt lớn. Tôi vẫn muốn biết chính sách lưu trữ mặc dù. Tôi đã tìm thấy một lượng thông tin khổng lồ về CÁCH thiết lập CDN và rất ít về đặc điểm của nó. Ví dụ, tôi đang tự hỏi liệu tôi có nên loại trừ (khỏi CDN) nội dung cũ được truy cập không thường xuyên hay không.
Greg

Greg - Tôi không thấy một đối số để loại trừ nội dung, ngoài lý do tài chính. Tuy nhiên, bạn có thể kiểm soát các tiêu đề bộ đệm của đối tượng của mình trong Amazon. Bạn có thể thử xem xét điều này: stackoverflow.com/questions/269840/ từ
Jesse Bunch

Điều đó sẽ cho phép bạn chỉ định các tiêu đề hết hạn trong tương lai xa như với bất kỳ phương tiện truyền thông nào của trang web bình thường.
Jesse Bunch

Cảm ơn một lần nữa. Liên kết kiểm soát bộ đệm đó không liên quan đến tình huống của tôi vì tôi đang sử dụng máy chủ gốc tùy chỉnh, không phải s3. Nhưng hiệu trưởng áp dụng và tôi có tiêu đề hết hạn trong tương lai xa. BTW, tài liệu của Amazon nói rằng nội dung tồn tại trong bộ nhớ cache trong 24 giờ, nhưng các thử nghiệm của tôi cho thấy điều gì đó khác biệt.
Greg

1

Có phải tôi đã hiểu lầm? Không phải bộ điều khiển bộ đệm quản lý thời gian mọi thứ tồn tại ở các vị trí cạnh trước khi các vị trí cạnh tải lại chúng từ S3? Vì vậy, chắc chắn chúng có liên quan đến tình huống của bạn cho dù bạn sử dụng S3 hoặc nguồn gốc của riêng bạn? Không?

Câu hỏi thường gặp về Amazon cho biết: "Q. Amazon CloudFront sẽ giữ các tệp của tôi ở các vị trí cạnh trong bao lâu? Theo mặc định, nếu không có tiêu đề kiểm soát bộ đệm được đặt, mỗi vị trí cạnh sẽ kiểm tra phiên bản cập nhật của tệp của bạn bất cứ khi nào nhận được yêu cầu nhiều hơn 24 giờ sau lần trước, nó đã kiểm tra nguồn gốc để thay đổi tập tin đó. Đây được gọi là thời gian hết hạn. Bạn có thể đặt thời gian hết hạn này là 1 giờ hoặc miễn là bạn muốn, bằng cách đặt các tiêu đề kiểm soát bộ đệm trên các tệp của bạn. nguồn gốc cho phiên bản cập nhật của tệp đó. Nếu tệp của bạn không thay đổi thường xuyên, cách tốt nhất là đặt thời gian hết hạn dài và triển khai hệ thống phiên bản để quản lý cập nhật cho tệp của bạn. "

[Tôi cho rằng câu cuối cùng có nghĩa là "may mắn khó khăn nếu bạn đặt nó thành 50 năm và sau đó muốn thay đổi tệp".]

Không phải là điểm chính của việc sử dụng CDN mà nó lưu trữ nội dung tĩnh? Nếu vậy, nó có giúp sử dụng TTL lâu hơn đáng kể so với một ngày không? Đối với hầu hết mọi thứ (tất cả hình ảnh và CSS), tôi sử dụng Cache-Control = "max-age = 604800, công khai, phải xác nhận lại" (tức là 1 tuần). Theo kinh nghiệm của tôi, các tệp chắc chắn sẽ mất tới một tuần để thay đổi nếu tôi tải các phiên bản mới lên S3.

Hi vọng điêu nay co ich. [BTW: Về quan điểm chung hơn của bạn, tôi cũng tự hỏi liệu CDN có giúp hiệu suất nhiều như bạn nghĩ nó sẽ xảy ra hay không. Tôi sắp chuyển toàn bộ trang web của mình (bao gồm CDN) lên một máy chủ chuyên dụng siêu nhanh và thực hiện một số thử nghiệm để tìm hiểu.]


Bạn đã đúng rằng kiểm soát bộ đệm ảnh hưởng đến thời gian lưu giữ nội dung ở cạnh. Các TTL là một vấn đề riêng biệt mặc dù. TTL kiểm soát bộ nhớ đệm của địa chỉ IP được gán cho tên miền. Vì vậy, bất kể tệp tĩnh có được lưu ở cạnh hay không, lần đầu tiên máy chủ nhìn thấy URL của tệp, nó phải tìm địa chỉ IP của tên miền này. Với TTL 1 ngày, có khả năng một máy chủ gần đó có thông tin này trong bộ đệm DNS của nó. Với thời gian 5 phút, điều này ít xảy ra hơn và một chuyến đi khứ hồi hoàn chỉnh đến máy chủ gốc của tôi là bắt buộc (không phải cho tệp, nhưng để giải quyết URL) ..
Greg

À, cảm ơn Tôi đã nhầm lẫn DNS TTL và kiểm soát bộ đệm :)
Chris W

1

Những lý do để sử dụng CDN là nếu bạn đang mong đợi

  • Nội dung tĩnh - cập nhật không thường xuyên hoặc có kiểm soát
  • Đã xem trên toàn thế giới
  • Truy cập thường xuyên

Trang web của chúng tôi được truy cập không thường xuyên như trường hợp của bạn nhưng chúng tôi có một thiết lập dịch vụ giám sát yêu cầu trang web của chúng tôi trên toàn thế giới. Vì vậy, nó giữ ấm bộ nhớ CDN. Tôi cũng muốn chia sẻ trường hợp của chúng tôi là một trường hợp đơn giản và thể hiện khả năng CDN.

Hơn nữa, chúng tôi đang mong đợi một khoản phí hàng tháng là 2,2 đô la, trái ngược với 7 đô la cho máy chủ godaddy (không thể xử lý tăng)

Thời gian tải trang trung bình

Phân phối thời gian tải trang trung bình

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.