近年來各大 VPS 的崛起,DigitalOcean、Vultr、Linode…等廠商的崛起,也讓老牌作為雲端運算廠商的 AWS 也跳下來參一腳,看似價格也挺有競爭力,但真的有那麼好嗎?去年就在 Lightsail 上踩了不少雷,就讓我娓娓道來吧。
看似還算有競爭力的配置,不過其實底層還是使用 EC2 來執行個體及 EBS 磁碟,看到這邊或許會覺得 EC2 很棒阿,是沒錯不過後面的 EBS 磁碟只能說是完全悲劇,原先其實也是不知道有這樣的問題,使用上也是沒問題,不過在網站的流量增加後就發現到 Lightsail 很難撐住較長時間的併發流量,起初也不知道為什麼一直卡死,後來開始監測後發現硬碟的 iops 實在非常悲劇,與 AWS Support 了解後得知,因為磁碟的 Burst I/O Credit 耗盡,就會降低到非常可怕的 Baseline performance。
測試工具:nench.sh
先拿自家的機器來玩玩,ESXi 之下硬碟使用 SSD 陣列 RAID 1,得到約 4k 的 iops。
DigitalOcean 也是測出約 4k 的 ipos。
DigitalOcean High CPU 方案甚至得到 8k 的 iops。
而差不多價格的 Lightsail 只有 300 iops。
當進入 Baseline performance 之後,測試的 iops 甚至不到 20,這是什麼速度呢?就是跟十年前的 5400 轉 2.5 吋硬碟差不多爛。
當 Lighsail 跑了比較大的站,Mysql 也在上面跑,還使用快取外掛導致大量的讀取檔案,你會發現真的是太可怕了。
根據 AWS 的計算方式,1G 的空間會給予 3 iops 的數值,因此選擇 20G 的方案,iops 就只有非常糟糕的 100(最低會給 100),超過沒關係,會有暫時的 Burst I/O Credit,但只要消耗完畢就會打回原形回到 Baseline performance,而你還不能知道你到底消耗了多少 Burst I/O Credit。
除了硬碟雷之外,還有其他雷,若配置的機器很多,想要對很多機器做快照,你想說進網站內對機器各種按快照,你也會發現當你一次想做快照機器太多他就不給做快照,Web 介面實際上他也只是下指令給後端進行處理,而這個指令是有限制一次多少台機器,所以做大量機器快照時還會遇到要等待其他機器完成的情況。
而若機器上錯誤的設置防火牆規則,Lightsail 上的 web console 也會連不上,也沒有救援模式可用,只能透過很麻煩的方式,先把機器拍快照,之後再用快照開機器,開機器在 Add launch scipt 中加入關閉 iptables 的指令,就可以在關閉防火牆的狀況下開機,但這實在非常的麻煩。
相關資料:AWS EBS 磁碟文件說明
很感謝你分享這篇。最近找資料又搜到,再來謝謝你。
前年用過 AWS Lightsail instance 也被雷到,後來就遷回去 Linode。
不過,我仍在使用它的 Database,整體算是穩定,月費計價 CP值也不錯。
雖說功能上比起 DigitalOcean managed database 略少,但因 DO 沒有東京區可選,所以選 AWS。
DigitalOcean 目前覺得最可惜的在於沒有日本機房
不然整體使用體驗,我是覺得都比 Linode 與 Vultr…等,同價位的主機來得好