2015年6月23日 星期二

bootstrap 用哪一家 CDN 比較好? 使用 GA 的 user timing 來做載入測試



由於每個月要繳不少錢給 AWS ,一直想把這一塊的錢省下來。於是用 cloudfront 的 popular urls 的報表找出 bootstrap.min.css 還頗好頻寬的。

先說明一點,我的訪客人數有點不一樣,台灣只佔 20% 不到,流量最高的是南美洲,也就是頻寬最貴的地區,每 G 要  0.25 USD ,比起美國頻寬每 G 只要 0.12 USD,足足貴兩倍以上。


bootstrap 的 CDN 有三個管道

  1. MaxCDN:免費的,但台灣的的連線卻很奇怪,明明日本和香港都有 server,但一樣是連到美國,跟客服反應過說能不能讓台灣的 IP 連線到日本,他說沒辦法。但這一點可能救了台灣的訪客(見下方說明)。MaxCDN 在歐美的 server 還蠻多的,但在歐美以外的server 頗少的。
  2. Cloudflare 的  CDNJS:免費的,這個很有名,但如果你網站的主要訪客是來自台灣,是連線到香港的點,真的是災難!兩年前以家裡的 hinet 做過測試,晚上 7-12 點的 連線 latency 飆高到無法接受,甚至還連線不到。我兩天前也做了測試,結果一樣。之前看有人說,那是台灣 ISP 的問題。
  3. AWS  的 cloudfront:付費的,台灣有server,所以不會有連線問題,連線速度超快。但世界各地的 server 卻沒有 cloudflare 這麼的綿密。南美洲就差很多。

現階段是付費使用 AWS cloudfront ,我在考慮要不要改用 cloudflare ?所以就用 GA 的 user timing 來做測試。由於台灣很明顯有問題,在測試時就直接排除。

bucket38-0:AWS cloudfront,為了公平測試,bootstrap.min.css 我都加上了  ?_=1
bucket38-1:Cloudflare

測試結果明顯 cloudflare 比較好,後來就把 bucket 全部拿掉(當然,一樣排除台灣),把 bootstrap 都改用 cloudflare 來 serve ,就是下圖第三個標「 all」的結果。


結論

如果你的訪客在台灣,省錢請用 MaxCDN,要速度請用 cloudfront ,如果你訪客來自世界各地,可以用 Cloudfront ,但請排除台灣。