星期日, 5月 15, 2011

EC2 與 Linode 的差異...

AWS EC2Linode 多了不少工具,在實際使用「雲端」的時候方便不少...

第一個是 EC2 的 firewall 設定包括了 group 的觀念,EC2 上可以設定「同一個 account 下的機器可以互通」這種 rule,在 Linode 上必須自己寫 script 去 Linode API 撈出 IP 表,並設定到 iptables 裡面。但由於是 JSON/XML 格式,沒有辦法很簡單用 shell script 直接搞定,變成要透過 PHP/Perl/Python,而這又造成了要多裝軟體的問題... 不僅如此,就結果而言,還必須用 cron 之類的工具定時更新表格,不然名單裡不會更新。另外 UDP 封包因為 source ip 可以偽造,還是沒辦法信任。

這點在 Gearmanmemcached 這類沒有認證功能的服務是必要功能。而對於 Web server 來說也很重要 (因為要考慮 X-Forwarded-For 的信任問題)

再來是 Web HA 的部份,EC2 支援 Elastic Load Balancing,所以不需要自己刻一堆有的沒的... 而在 Linode 上面只提供了最基本的 HA 功能 (可以設定「當掛掉的時候,允許哪些其他機器可以使用原來的 IP address」的權限) ,這表示必須自己跑 monitor script,在當掉的時候取得 IP address 並提供服務。

另外 EC2 提供 multi-zone,也是 Linode 目前沒提供的。在考慮 HA 架構還蠻重要的...

不過 Linode 比 EC2 最大的優勢就是比較便宜。同樣流量時 AWS 的頻寬費用就可以在 Linode 順便養機器了... 同樣價錢的問題還包括 EBS I/O 的費用,以及 Linode 可以使用比較多的 CPU resource...

另外一個非價錢的因素是 Linode 的 storage 是屬於 persistent (本來就是 VPS,只是多了 Cloud API),而 AWS EBS 用起來還是覺得不太方便,不過這跟 AWS 的 scale 設計有關,不太能算缺點...

1 則留言:

Daniel Guo 提到...

嗯, 我覺得主要的差異是:

1. CPU:
EC2 就是規格寫的, 一個月 $60 的 small 也只有一顆.
Linode 限制很寬鬆, 四核心用到滿一下下也沒關係, 長期來說 CPU 也很少是效能瓶頸.

2. 儲存:
EBS 特色是彈性大, 但在 SAN 上面故較慢, 有時還會卡 gigabit ethernet 的頻寬.
Linode 是高轉速硬碟 RAID, 效能好. 但空間有限, 不能隨意加空間 (太貴).

之前測試資料庫存取 + 運算, Linode 512 CPU + IO 效能和 EC2 Large 差不多. 當然如果考慮記憶體就差多了.