Use Amazon S3 & Cloudflare to save bandwidth

因敝公司會有大量的 landing page 需求,且往往客戶群也涵蓋了美國以及港澳等地區,更別說大量的圖片使用,都是會造成使用 cloudfront 等 CDN 服務的費用支出問題(我們曾有圖片超過 10 MB 甚至影片超過 100MB 的狀況)。在尋找一些解決方案後,S3 + Cloudflare 是功夫花費最少且最符合當代開發流程的方式。

在此方案前,我們使用的是 S3 + Cloudfront 的解決方案,基本上最明顯的支出會有以下幾項:

  • S3 儲存空間費用:每 GB 大約 0.025 美金,基本上如果 1TB 大概每個月台幣 800,加上大量的開發套件或函示庫都有整合,算是非常棒的雲端儲存解決方案
  • Cloudfront (CDN)流量費用:約每 GB 0.140 美金,所以若以圖片平均每張 100KB 大小,常常一個月下來有將近 1TB 流量跑不掉(敝公司做的 landing page 平均每個有 10~12 MB 的圖片,且有壓縮喔!)。
  • Cloudfront HTTP[S] Request:此部分大約每 10000 個是 0.0090 美金,因相比上述兩項比重小,先暫時可忽略。

統計以上,一個月光花在 CDN 上看 5000 台幣,更別說流量更大的內容型網站,也曾聽過破十萬的。

-- 我是分隔線 --

Cloudflare

簡單說,cloudflare 是一個具有 CDN 服務的 DNS 服務。使用此服務最大優點與缺點就是需將網域整個交由他來管理,所有該網址流量都會經過他。

且在費用上不按流量計費,是按照要開啟的服務來升級會員等級,照過去經驗一般用途都會是免費;但近期聽到些朋友說 cloudflare 找他們收流量費,但小弟不負責任的猜測,只要流量不是台灣百大等級的,被找上的機率很低。

除了 CDN 外,像是全站 cache, ga tracking, HTTPS 等服務也都非常方便設定,算是符合絕大多數網站的好服務。更別說還有 DDoS 與其他資安攻擊的防護,還有流量來源等的分析 dashboard。

如何開始

此部分將假設已設定好 cloudflare 之狀況

  1. 客製化 S3 bucket 網址:建立一個你的 assets 網址的 bucket,例如 s3cdn.example.com
    s3 customize domain
  2. 在 cloudflare 上設定 CNAME Record 給這個子網域,指定到 s3 bucket 的原網址 (e.g. s3cdn.example.com.s3.amazonaws.com),記得最右邊的雲端要 active 為橘色才算啟用喔。
    cloudflare setup s3 domain

可以看到節省的流量是非常可觀的百分比: cloudflare bandwidth saving

以上解決方案提供給大家,讓大家都能以最小花費趕快將產品做起來!

hothero

Read more posts by this author.

Taiwan

Subscribe to hothero's TechNote

Get the latest posts delivered right to your inbox.

or subscribe via RSS with Feedly!