Linode 跟 AWS 沒啥分別?
先來點背景吧,公司以前一直都在用 Linode。幾個月前因為有「大客戶」,所以我們便以 AWS 包裝一下自己來推銷。

結果中標了,然後惡夢的日子就降臨了。不過這不是今天要討論的問題……總之,經過這幾個月的 AWS 經歷之後,我覺得 AWS 其實沒啥了不起的。

當然,這是從我們實際上有所用到的功能上作比較。AWS 的確有很多功能,但很多都是沒有需要用到的。我會從成本與時間這兩點來作比較。質量的話,兩邊都有抽過風吧?比例上來説,其實都不怎麼會抽風就是了。

那麼我來列表一下在 AWS 用過的功能吧:
* EC2
* RDS
* ElasticCache
* S3
* CodeDeploy
* CodePipeline

EC2

EC2 説白了就是 VM 啦,這是 Private Server Provider 最基本的功能吧。要説的話,AWS 的計費方式是 CPU 時間來算的,關機的話不會收費。缺點是 Dynamic IP 吧,每次關機 / 關機都會給你一個新的 IP,不過今次我們有用到 Load balancer,所以沒什麼影響就是了。

然後 Volumes 會另外計費呢,但因為很便宜所以我不考慮了。這點上來説 AWS 算得比較合理的。

相對於 Linode,每設一部機就會給一個固定 IP,不論你關機與否都會收費就是了。但跟 AWS 比較起來,Linode 還是劃算多了。畢竟 AWS 算的是 CPU 時間,雖然算得合理,但也算得好狠,哈哈。

另一點就是 EC2 可以設定自己的 Subnet 跟 firewall,Linode 則是同一個 DataCenter 分享一整個 Subnet,有點大家族的感覺?Firewall 的話可以在 OS 裏面自帶啦,AWS 能在「外層」設 firewall 我覺得還是好的。不過實際上跟我在 OS 裏面設 firewall 完全是同一個效果就是了。也許是這邊沒有雖要分得這麼仔細吧?

最後就是 AutoScaling ,這個怎麼説呢…不知道是我設定得不好還是網站的性質不同,這東西一點都不管用。

AutoScaling 有兩種模式,一就是 CPU 超出某個範圍、二是 Requests 超過某個量就會自動設新伺服器來處理流量。不管是第一還是第二種,缺點都是起動的速度太慢了。

情境摸擬:
-> 用戶湧過來了
-> CPU 超過了 80% -> Scale up
-> Scale up 中…
-> 用戶繼續湧過來
-> 超過 100% 了!
-> Scale up 中…
-> 用戶…呃…繼續湧過來
-> 咕哈,伺服機爆炸了!
-> Scale up 中…

都著火了啦,所以這 AutoScaling 是作什麼用的!?

RDS

這全名叫什麼來著,Relational Database Service?總之就是 Database 相關的東西。

AWS 將 Database 拆開來賣了,説起來單 Database 的賬單就算了 $8,000+ USD 呢。這是我多少個月的工資啊?

AWS 的好處是可以開幾個 instance 跨幾個地區防災吧?

ElasticCache

這是 Memcached / Redis 相關的 Service,AWS 也將這個拆開來賣了。

概念基本上就跟 RDS 一樣,Cluster & 防災。

S3

這是一個很讚的 Service,有這個就不需要 CDN 了。不對,應該要説 S3 基本上可以當作 CDN 來用?這東西是省了我最多工夫的服務呢!因為這邊的 Django 只雖裝 AWS 提供的 Plugin ,加一點點設定就搞定了。實在是沒煩惱。

Linode 沒有這個,所以我想只在 S3 上光顧 AWS 的話是可以的,10,000,000 個 Requests 才 $4.00 USD,真的是抵爆了!

啊,但要説替代方案當然有的,用 CDN 就可以了。不過 CDN 的收費好像比 S3 還多?當然 Cloudflare 的 routing 跟防 DDOS 還是要有的,結果 S3 變得確有點多餘了……也不是,畢竟這是 multi-instance 的檔案存取方案來著。

CodePipline / CodeDeploy

呃…DevOps?是叫這個嗎?簡單來説是將源碼推上去,會自動做 Test ( 然而並沒有 ) 跟 Deploy 的整個流程自動化的東西。這個收費就 $1 USD 一個 Pipeline 吧,所以這個可以不用考慮成本。

不過 Blue / Green deployment 真是厲害呢,這個設定跟測試一共花了我約四天時間,要寫那個叫什麼 Appspec.yml 旳東西,很麻煩啊。不過設好了之後基本上不用煩惱,可以不停隨便 Deploy,用戶們都不會感覺到網站有問題啥的這點很讚。

實際上就算用戶感覺到有一點問題都沒什麼,網站抽風什麼的很常見吧?用戶都見怪不怪了。無痕 Deploy 給人一種高品質的感覺。這是品牌問題了,除非公司規模很大,不然考慮這些有的沒有反而會拖慮出貨時間。

但既然有就用吧,有餘裕的話又有何不可?

各種要考慮的因素

雖然 Linode 沒有這些功能,不過可以藉由提供的 API 做到相同的效果。説實話,只要最基本的 Private Server 功能,其他的 AWS 功能我可以自己寫出來啦。

當然全部都自己寫的話,我會死。所以得考慮成本呢:
* 我自製所需的時間及以後維護的成本
* Linode 的成本
* AWS 的成本

一般的話 AWS ~$4000 USD 一個月,這次是因為高流量才 $8000 USD 的。Linode 則~$500 USD 一個月。

呃,這根本不用比,差太多了。這樣我不如多顧一個人專負責自炊還要再便宜一點!?

然而現實並沒有這麼簡單,這種算法也太天真了。問題是有能力自炊的人材很難找。這邊的 IT 環境實在絶望得可以,也試過外判給內地、印度,結果回來的都是一坨屎,幾次我都得撿他們的爛攤子。害我都開始對他們產生偏見了。

不過本地都好不到那裏去就是了。

呀不對不對,我這在抱怨個什麼啊。説不定這只是 Dead sea effect,有可能是因為公司本身有問題,才讓我只看得見比較差的部分的。

結論

當然是 AWS 太貴了!其實有部分功能我已開始自炊了啦,成果不錯。單 EC2 上有的功能,我花了兩個禮拜在 Linode 的 API 下再現出來了。當然這只是指公司會用的功能,其它的就算我做了也不會用吧 ( 那我做來幹嘛 )。

要説的話 AWS 的防災上面是做得很好,這邊要重現稍微有點困難呢,不過防災的話其實也不必做得像 AWS 如此自動化吧。我想設個 2 枱 Slave 加上定期 Backup 應該就足夠了。重要的是確保炸掉之後資料沒有遺失,理想的話根本就不應該炸掉啦,可惜現在有機會會炸掉,所以才 Backup。我這理所當然在説個什麼啊…

所以除非公司規模很大,又或者品牌型象太過重要。不知名卻想在品質上向知名公司看齊,人力與成本上來看根本就不劃算。

用 Linode 還是 AWS 其實沒什麼差別的。
Tag(s): Linode AWS
Profile picture
斟酌 鵬兄
Mon Dec 03 2018 14:52:51 GMT+0000 (Coordinated Universal Time)
Last modified: Tue Dec 04 2018 10:23:47 GMT+0000 (Coordinated Universal Time)
Comments
No comments here.
Do you even comment?
website: 
Not a valid website
Invalid email format
Please enter your email
*Name: 
Please enter a name
Submit
抱歉,Google Recaptcha 服務被牆掉了,所以不能回覆了