Category: Tech

  • 將WordPress 使用的CDN 從CloudFlare 切換到AWS CloudFront

    CloudFlare 這間公司是個大善人,多年前剛起步的時候我不由得感嘆我靠!為什麼會有人做這種事情,在Twitter 上給CEO 發消息感激他的貢獻,當時他還回我了。

    後來順著internet https 的流行,率先推出不要錢的SSL/TLS offloading 服務,引起一大波網站從其他CDN 遷移,因為其他的CDN 光是證書就要收上一大筆錢。

    再後來他的WAF 規則對阻止wordpress 的spam comments 效果很好,所以就一直用他。

    但,他從中國訪問的效果一向不佳,早年和百度合作的時候,曾經有一段時間很順暢但非常短暫,他的香港節點並不直接提供給中國用戶使用,中國用戶直接訪問會被遞送到美國的節點,如果網站啟用了CloudFlare 的收費服務Argo Smart Routing,中國用戶才會被遞送到香港節點。是不是聽起來和AWS Global Accelerator很像?

    之所以想要換成AWS CloudFront ,是因為經過這些年行業廝殺,也有了0$ 的方案,主要特徵如下:

    3個Free Plan (官方網站沒說)
    5GB S3 存儲用於靜態文件。
    每月1M 請求量。
    每月100GB 數據傳輸量。
    5 條cache behavior rules (官方網站上說的是5條WAF rules,沒有講cache behavior rules)。

    好了看這張圖吧,吧啦吧啦一大堆,有用的沒幾個:

    簡單來說,每天的流量小於3.3G,請求量小於33333,就可以考慮使用0$ 方案的CloudFront。

    這一篇圖太多了,Read more
  • 從地端 Redis server / Redis cluster 遷移到 雲端 ElastiCache 的四種方式

    通常redis 是用來做cache ,但是隨著各種應用野蠻而自由的發展,或者說濫用,redis 現在已經快要變成一個存儲everything 的database,比如wordpress 的object-cache plugin 就會把所有的posts 都丟進去,很多的遊戲廠商則有頻繁刷新的board/score ,以及各種遊戲人物的屬性。

    對雲端平台而言,以AWS 為例,從地端遷移redis 大概有這樣四種方式:

    1. rdb 文件從地端server dump 出來,上傳到S3,然後再從ElastiCache 服務來調用S3 上的rdb 文件進行恢復。
    2. ElastiCache 提供了在線遷移的方式,雖然官方文件上說支持在EC2 上架設的redis server,但實際上,只要你的網速夠快,你的redis 在哪裡都沒所謂,只要是自建的redis server 都可以,或者是支持CONFIG/SYNC/PSYNC/SLAVEOF 命令的第三方服務商。
    3. RIOT 是redis 官方推出的工具,大概是遷移需求實在是呼聲太高,而總是使用第三方的工具來遷移,似乎顯得redis 官方不作為。
    4. 開源的 redis-shake ,在實時同步方面被廣泛採用。這個工具需要調用源端的 sync/psync 命令,而這些命令在AWS/Azure/GCP 中都是被禁用的,如果源在雲端,則需要開立技術支持工單來啟用他們之後,才可以使用redis-shake。
    這一篇很長,Read more
  • AWS VPC 网络中基于 keepalived 的主备切换

    雲端並沒有什麼場景一定需要用keepalived,只不過是一些傳統企業地端思維揮之不去,當然,ELB 要花錢,省錢也是重要的因素,特別是業務沒有那麼重要,卻就是需要HA。

    但是,AWS VPC 並不支持VRRP multicast,這讓很多在地端運行的商業 Firewall/LB 廠商上雲之後都要做修改,比如F5/Radware/A10/深信服 等等,然而,並沒有官方文件說明AWS VPC 支持或是不支持,官方blog 文章在某種程度上可以視作你可以自己做,但是我們不會為你進行官方的技術支持,可就是有人看不懂。

    當然,官方blog 語焉不詳也是一個問題,SA們寫出許多不在官方支持範圍內但又可以在AWS 平台上運行的blog,但他們又沒有講得很清楚,你不去理解blog 而是完全照著去做,是會失敗的。

    這一篇很長,Read more