【編者按】雖然AWS在IaaS市場(chǎng)摸爬滾打這么多年,在公有云領(lǐng)域可謂傲視群雄,開(kāi)拓了云計(jì)算的廣袤市場(chǎng),但是,憑借新技術(shù)和服務(wù)等殺入公有云領(lǐng)域的硅谷新貴們也絕對(duì)不容小視,技術(shù)的發(fā)展速度之快,超出了我們的想象。根據(jù)客戶的反饋,作者總結(jié)了亞馬遜EC2的五個(gè)問(wèn)題,當(dāng)然可能還不完全,但是相信會(huì)對(duì)云計(jì)算領(lǐng)域的玩家有借鑒意義,本文來(lái)自O(shè)penStack中國(guó)社區(qū)。
以下為原文:
基于AWS用戶的反饋,我們列出了亞馬遜EC2(亞馬遜彈性計(jì)算云,云計(jì)算服務(wù)的核心及基礎(chǔ),提供非常彈性的實(shí)例管理)的五項(xiàng)問(wèn)題,它們不僅不好解決而且還會(huì)迫使用戶另尋它物。
共享EBS卷
EBS(Elastic Block Store,彈性塊存儲(chǔ))為亞馬遜EC2提供永久存儲(chǔ)。由于去除了對(duì)速度緩慢的亞馬遜S3(另一個(gè)云計(jì)算產(chǎn)品)的依賴,它在2009年一經(jīng)推出就得到了高度評(píng)價(jià)。
許多工程師只要加載一個(gè)Amazon EC2實(shí)例,就會(huì)馬上附加一個(gè)EBS卷,并將長(zhǎng)期需要的數(shù)據(jù)移動(dòng)過(guò)去。然而四年過(guò)去了, EBS需求最旺盛的功能-將同一個(gè)EBS卷附加到多個(gè)EC2 實(shí)例上還尚未實(shí)現(xiàn)。 AWS鼓勵(lì)在一個(gè)load balancer(負(fù)載平衡器)后臺(tái)運(yùn)行多個(gè)亞馬遜EC2實(shí)例來(lái)獲得最佳的性能。然而僅在一個(gè)EC2實(shí)例上運(yùn)行應(yīng)用不是個(gè)好主意。大多數(shù)內(nèi)容管理系統(tǒng)和媒體驅(qū)動(dòng)的應(yīng)用程序依賴于共享的存儲(chǔ)。當(dāng)這些系統(tǒng)都遷移到AWS并放在一個(gè) ELB(Elastic Load Balancing,彈性負(fù)載均衡)之后,沒(méi)有簡(jiǎn)單的策略使得在運(yùn)行相同應(yīng)用程序的EC2實(shí)例之間來(lái)共享內(nèi)容。
舉例來(lái)說(shuō),一個(gè)終端用戶上傳一個(gè)新圖片到由負(fù)載平衡器隨機(jī)選取的一個(gè)內(nèi)容服務(wù)器上。目前而言,復(fù)制這一圖片到所有正在運(yùn)行的服務(wù)器是留給開(kāi)發(fā)人員做的。AWS建議使用亞馬遜S3存儲(chǔ)靜態(tài)內(nèi)容,而許多流行的CMS框架期望可以在本地文件系統(tǒng)實(shí)現(xiàn)存儲(chǔ)。為了確保所有的服務(wù)器共享最新的內(nèi)容,需要強(qiáng)制實(shí)現(xiàn)類似Gluster或NFS式的分布式文件系統(tǒng)。這需要前沿技術(shù),其中涉及啟動(dòng)一個(gè)專用的虛擬機(jī)來(lái)運(yùn)行該文件服務(wù)器。這也使得配置很不穩(wěn)定:文件服務(wù)器很容易成為單點(diǎn)故障。
如果亞馬遜支持多個(gè)EC2實(shí)例共享同一個(gè)EBS卷,這就能避免對(duì)專用文件服務(wù)器的需求和對(duì)每個(gè)服務(wù)器進(jìn)行額外的配置。這其實(shí)也不復(fù)雜:谷歌計(jì)算引擎(Google ComputeEngine)支持在多個(gè)實(shí)例上同時(shí)安裝永久磁盤(pán)。雖然只有一個(gè)實(shí)例有對(duì)文件系統(tǒng)的讀寫(xiě)許可,但是所有的實(shí)例將能立即訪問(wèn)該內(nèi)容。雖然還只是在技術(shù)測(cè)試階段,谷歌計(jì)算引擎已經(jīng)在性能和特性方面把目標(biāo)瞄準(zhǔn)了跨越式發(fā)展的亞馬遜EC2。早期指標(biāo)顯示GCE將是亞馬遜EC2的一個(gè)可行替代方案。
可配置的ELB流量
ELB(ElasticLoad Balancing,亞馬遜彈性負(fù)載均衡,是在EC2基礎(chǔ)上實(shí)現(xiàn)的負(fù)載均衡服務(wù))提供了一種能將流量均勻地分布在多個(gè)亞馬遜EC2實(shí)例上的服務(wù)。亞馬遜把ELB這種服務(wù)定位為近乎神奇,它能提供長(zhǎng)久的穩(wěn)定運(yùn)行和高可擴(kuò)展性。根據(jù)ELB的官方描述,“它能使你在你的應(yīng)用程序中獲得更大的容錯(cuò)能力,無(wú)縫地提供用來(lái)響應(yīng)傳入應(yīng)用流量所需的負(fù)載平衡能力。”
對(duì)負(fù)載均衡容量可以無(wú)縫增加的承諾肯定帶有誤導(dǎo)性,因?yàn)镋LB旨在隨著流的線性增加而逐漸擴(kuò)展。這對(duì)于像電子商務(wù)門(mén)戶網(wǎng)站或機(jī)票銷(xiāo)售那類開(kāi)始流量較少,隨著時(shí)間不斷增長(zhǎng)的模式是可行的,但是如果是在那種建于ELB之上的網(wǎng)站,當(dāng)它流量飆升,ELB性能就會(huì)顯著下降。這種模式通常見(jiàn)于發(fā)布考試成績(jī)或者發(fā)布重大新聞的門(mén)戶網(wǎng)站。為了使ELB能夠隨時(shí)準(zhǔn)備處理這種突發(fā)狀況, 亞馬遜期待AWS用戶每月支付最低49美元,以支持服務(wù)使ELB能提前“熱身”。雖然這一問(wèn)題有足夠多的指導(dǎo)資料來(lái)解決,但它們?nèi)匀槐讳螞](méi)在AWS的浩瀚文檔之中。就像EBS中置備的IOPS功能,亞馬遜應(yīng)當(dāng)使ELB流量可自定義化,這樣客戶可以事先選擇流量模式以確保可擴(kuò)展性。
每分鐘計(jì)費(fèi)模式
亞馬遜EC2用戶需按小時(shí)支付他們的實(shí)例運(yùn)行。也就是說(shuō)即使該實(shí)例僅運(yùn)行幾分鐘,亞馬遜還是會(huì)按一整個(gè)小時(shí)收費(fèi)。當(dāng)AWS于2008年推出EC2,它被認(rèn)為是在自助服務(wù)和按需供應(yīng)計(jì)算資源方面取得了突破性創(chuàng)新。然而快進(jìn)到2013年,這就被詬病成了虛擬機(jī)定價(jià)不合理。如果亞馬遜能轉(zhuǎn)換到按分鐘計(jì)費(fèi),那么許多客戶就會(huì)好好利用這一成本結(jié)構(gòu)帶來(lái)的好處。但是由于還有許多競(jìng)爭(zhēng)對(duì)手比如Windows Azure以及谷歌Compute Engine (計(jì)算引擎)也在用分鐘計(jì)費(fèi)法,用戶都在觀望亞馬遜的計(jì)費(fèi)模式將怎樣變化。
可改進(jìn)的CloudWatch度量
亞馬遜的CloudWatch(亞馬遜云服務(wù)監(jiān)控,有針對(duì)性的監(jiān)控并有警報(bào)響應(yīng))提供與許多AWS服務(wù)有關(guān)的度量,包括亞馬遜EC2、亞馬遜RDS和亞馬遜DynamoDB。雖然它支持一系列的服務(wù),亞馬遜EC2的度量卻仍有很多值得改進(jìn)的方面。雖然對(duì)有關(guān)CPU、磁盤(pán)和網(wǎng)絡(luò)有關(guān)的基本度量是在監(jiān)控級(jí)別進(jìn)行的追蹤,它仍不盡人意。盡管客戶為亞馬遜CloudWatch付費(fèi),他們?nèi)匀恍枰揽客獠糠?wù)如Pingdom來(lái)跟蹤基本度量,例如網(wǎng)站可用性。為了監(jiān)測(cè)基于網(wǎng)絡(luò)服務(wù)器或數(shù)據(jù)庫(kù)服務(wù)器的高級(jí)服務(wù),客戶不得不建立一個(gè)基于代理的架構(gòu)比如Nagios或zabbix。雖然CloudWatch 支持自定義度量, 但需要相當(dāng)可觀的工作量,并且沒(méi)有對(duì)于高級(jí)度量的現(xiàn)成支持。
WindowsAzure中最近新增了終端監(jiān)測(cè),它提供了基本的網(wǎng)站穩(wěn)定運(yùn)行時(shí)間監(jiān)控。 Rackspace公司獲得了Cloudkick,并將其與眾所周知的具有穩(wěn)定監(jiān)控功能的Rackspace云
服務(wù)器進(jìn)行了整合。亞馬遜可以將一個(gè)代理輕松嵌入每個(gè)EC2實(shí)例來(lái)跟蹤并報(bào)告那些粒狀的和精確的度量。 事實(shí)上,依附于AWS豆莖(beanstalk)的Amazon EC2實(shí)例已經(jīng)使用代理驅(qū)動(dòng)的監(jiān)控引擎來(lái)跟蹤服務(wù)器的運(yùn)行狀況。亞馬遜應(yīng)該將該代理從AWS豆莖擴(kuò)展到所有亞馬遜EC2實(shí)例,來(lái)跟蹤和報(bào)告有意義的度量。
動(dòng)態(tài)虛擬機(jī)大小
如果你認(rèn)為微軟總是用多種不同版本的Windows來(lái)迷惑客戶,那是因?yàn)槟氵€沒(méi)有見(jiàn)過(guò)亞馬遜EC2實(shí)例類型的數(shù)量。
Amazon EC2實(shí)例共計(jì)6大類,若細(xì)分則有18種。每一實(shí)例類型都有一特定負(fù)載量。 如果你在看過(guò)這些實(shí)例類型的詳細(xì)介紹后還沒(méi)有迷惑,那么接下來(lái)你就要開(kāi)始選擇與你的應(yīng)用程序相匹配的實(shí)例類型了。一般你需要選高 CPU 、高內(nèi)存、高容量、集群計(jì)算等等。等這些都有了,用戶就一定會(huì)得到他們想要的了嗎?還不一定。因?yàn)橥ǔG闆r下,本地物理服務(wù)器和Amazon EC2實(shí)例之間的映射還不完全匹配。在一些情況下是由于存儲(chǔ)器,在其他情況下是CPU不合格。無(wú)論如何,實(shí)際性能永遠(yuǎn)不能匹配實(shí)例類型的能力。那么實(shí)例類型的能力是不是很難達(dá)到呢?也不是,因?yàn)樽罱尤隝aaS競(jìng)爭(zhēng)的公司 ProfitBricks提供了對(duì)虛擬服務(wù)器的動(dòng)態(tài)配置。 ProfitBricks還聲稱它使用InfiniBand互聯(lián)與SSD存儲(chǔ),因而能提供更佳性能。現(xiàn)在是亞馬遜轉(zhuǎn)向動(dòng)態(tài)實(shí)例類型的時(shí)候了,在這里客戶可以拖動(dòng)滑塊以選擇內(nèi)存、核心數(shù)量、CPU和磁盤(pán)容量。這將簡(jiǎn)化對(duì)Amazon EC2的配置,并且客戶能夠獲得服務(wù)器配置的控制權(quán)。他們可以停止、調(diào)整配置,并重新啟動(dòng)亞馬遜EC2實(shí)例,直到性能令人滿意。
原文鏈接:【技術(shù)】亞馬遜AWS需解決的五項(xiàng)問(wèn)題 (責(zé)編/魏偉)