CloudFlare: CDN bình dân, rẻ và tương đối ngon

CloudFlare: CDN bình dân, rẻ và tương đối ngon

Rendering client-side so với server-side
Web cache – những khái niệm cơ bản
Cài đặt 1 website WordPress cơ bản trên hệ thống Linux (CentOS 6)

Trước hết, CDN là gì?

CDN = Contents Delivery Network. Ngắn gọn thì CDN là tập các máy chủ phân tán nằm rải rác trên toàn cầu, dùng để cung cấp các nội dung Internet 1 cách nhanh chóng nhất.

Ví dụ 1 người dùng ở Nga khi truy cập vào facebook.com, máy chủ đặt ở Mỹ thì thông thường người đó sẽ phải chờ 3s để máy chủ ấy trả về nội dung tương ứng. 3s là thời gian tương đối dài, vậy nên người ta sẽ rút ngắn thời gian này bằng cách đặt 1 phần hoặc tất cả nội dung của facebook.com trên các máy chủ gần Nga. Tập các máy chủ như vậy được gọi là CDN.

Cách CDN làm việc

CDN ngày nay rất phổ biến, tới mức hầu như web traffic đang được truyền tải qua CDN, bao gồm cả traffic của các trang lớn như Facebook, Netflix, Amazon…

Khi sử dụng CDN thì sẽ có nhiều lợi ích, nhưng thường bạn sẽ mong chờ 3 lợi ích sau

  • Cải thiện thời gian tải trang: Bằng việc đặt các máy chủ ở gần người dùng hơn, tốc độ tải trang sẽ được cải thiện đáng kể. Tốc độ trang càng nhanh thì tỷ lệ người dùng thoát sẽ giảm, thời gian ở lại trang lâu hơn. Điều này giúp ích rất nhiều cho việc tăng thứ hạng trang trên Google
  • Tăng bảo mật của trang: 1 số CDN giúp trang chống lại DDoS attack
  • Giảm chi phí băng thông: do chi phí băng thông với cùng 1 lưu lượng của CDN thường rẻ hơn của host nên điều này sẽ giúp bạn tiết kiệm rất nhiều chi phí

Giảm chi phí băng thông với CloudFlare

Ở đây mình muốn đi sâu vào phần chi phí băng thông, do sau 1 thời gian sử dụng AWS thì thấy không phải chi phí phần cứng mà băng thông mới là chi phí lớn nhất. So sánh giá băng thông của 1 loạt các CDN và Origin server EC2 thì như sau

MaxCDN  Amazon CloudFront  Akamai Edge  Fastly  Amazon EC2 Server
250 GB 21$ 24$ 30$ 30$
500 GB 39$ 48$ 60$  60$
1 TB 79$ 96$ 120$  120$
5 TB 299$ 480$ 600$  600$
10 TB 499$ 888$ ~3,500$ 1,200$  1200$

Akamai Edge không công bố giá công khai nhưng tương đối đắt.

CloudFlare thì có 4 gói: Free, 20$, 200$ và Enterprise (không rõ giá). Băng thông miễn phí hoàn toàn ở cả 3 gói.

Các gói dịch vụ của CloudFlare

 

Hiện tại mình có 1 trang hàng tháng sử dụng hết 12TB băng thông, được CDN (CloudFlare) cache lại khoảng 11TB, còn 1TB sẽ tính vào cho EC2 server. Như vậy giá tiền cho 11TB được cached lại trong các trường hợp sẽ là khoảng

MaxCDN Amazon CloudFront  Akamai Edge Fastly Amazon EC2 Server  CloudFlare
11TB Cached 550$ 980$ 3500$ 1,320$ 1,320$ 20$

Gói CloudFlare mình đang dùng là gói pro 20$ 1 tháng. Như vậy hàng tháng mình đã tiết kiệm được khoảng 1300$ so với việc không dùng CDN. Ngoài ra, so giá với các CDN khác cho cùng mức băng thông, mình đang tiết kiệm được khoảng 500$ ~ 1300$

Plus Alpha

Tập khách hàng của mình chủ yếu nằm trong phạm vi Nhật Bản. CloudFlare có 2 node ở Nhật là Tokyo và Osaka nên vẫn đảm bảo tốc độ truy xuất nhanh.

CloudFlare còn cung cấp 1 vài tính năng rất hay ho như

  • Free SSL: Hiện tại Chrome sẽ đưa ra cảnh báo trên thanh địa chỉ khi bạn vào 1 trang web không có kết nối HTTPS, nên việc cài đặt SSL cho trang web gần như là chuyện đương nhiên. Hiện tại mình thấy có 2 loại SSL free là Let’s Encrypt và Universal SSL của CloudFlare. Rất tiện. Tất nhiên với các trang nghiệp vụ, bán hàng thì bạn nên cân nhắc cài SSL Certificate riêng cho trang của mình
  • Minify CSS/JS/HMTL: cũng là 1 cách tiện lợi và nhanh chóng để tăng tốc cho trang web của bạn. Vì sử dụng CloudFlare mà đôi khi mình cảm thấy dev bị lười đi: không cần nghĩ tới việc minify các file CSS/JS nữa, toàn bộ đã có CloudFlare lo rồi. Lưu ý là nếu file JS của bạn sử dụng cú pháp không có dấu ; thì có khả năng bị lỗi khi CloudFlare minify lại
  • Thống kê băng thông: CloudFlare cung cấp cho bạn giao diện để theo dõi băng thông hàng tháng của trang web. Điều này khá là tiện lợi. Ví dụ như trong trường hợp bạn sử dụng AWS thì không làm cách nào biết 1 trang web đang dùng bao nhiêu băng thông hàng tháng, do Amazon chỉ cung cấp tổng dung lượng bạn dùng hàng tháng thôi.
  • Nén ảnh: với gói Pro trở lên bạn có thể sử dụng tính năng nén ảnh của CloudFlare, giúp dung lượng ảnh giảm mà vẫn giữ được chất lượng gần như cũ
  • Bảo mật: CloudFlare sẽ giấu địa chỉ IP thật của Origin server. Ngoài ra theo quảng cáo thì còn ngăn cả DDoS attack

Phân tích băng thông khá là tiện

Hạn chế

  • So với các CDN khác, CloudFlare không hoàn toàn là 1 CDN. Ví dụ như:
    • Khi Origin server bị sập thì trang web của bạn sẽ không được hiển thị đầy đủ bản cache như các CDN khác, mà đôi khi là hiển thị lỗi server. Lý do là CloudFlare không cache toàn bộ các page của trang
    • CloudFlare crawl dữ liệu với tần suất khá thấp, gói free là hàng tuần và gói Pro là 3 ngày 1 lần. Muốn 1 ngày 1 lần thì bạn phải dùng gói Business (200$)
  • CloudFlare không cung cấp các tính năng xử lý ảnh nâng cao như Cloudinary hay Fastly (điều này giải thích tại sao Fastly giá lại đắt như vậy)
  • SSL của CloudFlare có thể là 1 vấn đề. Lý do là đó là shared certificate, nên đôi lúc trang của bạn có thể đang dùng chung SSL certificate với 1 vài porn site khác
  • CloudFlare cũng không cho phép bạn customize trang error page. Điều này có thể không quá cần thiết, nhưng nếu bạn muốn thì bạn phải trả 200$ 1 tháng. Nghe khá là vô lý phải không?

Rất nhiều SSL cho các domain khác. Hình như có 1 trang có từ “sex”

 

Kết luận

Tuy có 1 số hạn chế nhưng với cái giá cực kỳ hấp dẫn, nên nếu bạn không phải là người dùng quá khó tính hoặc site của bạn không yêu cầu quá cao thì CloudFlare thực sự là 1 CDN không tồi.

COMMENTS