AWS Spot 和 On-Demand 的區別

AWS Spot 和 On-Demand 的區別

今天開始會逐步講解 AWS 相關的服務,讓對雲計算有興趣的小夥伴可以慢慢熟悉和了解雲服務究竟是什麼?能為我們的日常開發測試工作帶來什麼便利。

為什麼選擇AWS? 目前主流的雲服務主要包括亞馬遜的AWS,微軟的Azure, 阿里巴巴的Ali-yun,Google的GCP 等等,選擇AWS是因為從目前市場佔有率來講,AWS相對優勢比較明顯,而且AWS也是雲計算的領跑者,其自身的亞馬遜電商平臺也是其雲服務應用場景的巨大試驗平臺。筆者作為在AWS平臺上將近4年的開發應用經驗,擁有AWS SAA認證,相信能給小夥伴們一些幫助。廢話不多說,直接進入主題。

AWS EC2 實例根據使用場景和購買方式分為幾種,其中比較常見的是On-demand 和 Spot Instance. 這兩者最主要的區別就是他們的價格購買方式以及價格。

On-Demand instance

On-Demand: 字面意思是按需付費,選定特定類型的EC2生成實例後,依據對應實例類型的價格乘以該實例的使用時間,就是用戶需要為該實例付出的費用。AWS根據不同的硬件配置將EC2分為不同的類型,不同的類型依據不同的操作系統在特定的Region有不同的價格,如下圖是Windows操作系統在中國寧夏區域(Region)的價格:

AWS Spot 和 On-Demand 的區別

這裡涉及到幾個概念:

Region:AWS在全球不同地區部署了服務器中心,即Region, 從而可以包含AWS 資源在不同地區的容錯性,穩定性,儘量降低網絡延遲。目前中國區包含三個Region, 分別是北京,寧夏和香港。

操作系統區分:AWS EC2 實例針對Windows 和 Linux 系統是分別定價的,也就是說相同硬件配置的EC2實例,會因其運行的操作系統不同而有不同的定價策略。

ECU(EC2 Compute Unit): EC2計算單元,因為EC2本身歷史比較長,不同時期採購的硬件配置也並不相同,為了制定一個統一的標準,AWS提出來的衡量硬件運算能力的單位。

vCPU(virtual CPU): 並不是真正硬件意義上的CPU單元,一個vCPU指代的是一個CPU超線程。2014年AWS提出vCPU概念意在取代ECU。

例如:以寧夏區t2.2xlarge為例,該實例類型包含8個vCPU,32Gb內存,只支持EBS(Elastic Block Storage)存儲,它的價格為(3.4476元/小時),計時從實例 launch 開始,直到該實例被terminate 或者 stop為止。假設我們啟動寧夏區類型為t2.2xlarge的實例,操作系統為Windows,1.5個小時後stop掉該實例,那麼我們需要為此期間EC2資源支付3.4476*2=6.8952元。注意針對Windows實例,AWS EC2計價單位最小為60分鐘(1小時),針對Linux實例,AWS EC2計價單位為秒。

Spot instance

Spot instance: 首先是一種以競價方式購買AWS EC2 資源的付費模式。AWS 每天會在某個Region EC2資源空閒較充裕的情況下,拿出部分資源以較低的價格(相對於同類型資源On-Demand的價格)作為起拍價,資源使用者可以通過高於起拍價的價格獲取相應的資源,從而節省費用,和On-Demand相比較,同類型實例節省可高達90%。當然天下沒有免費的午餐,spot instance如此優惠的價格是以資源空閒為前提的,這也就說明,當資源逐漸變得稀缺時,Spot instance的價格也會水漲船高,當資源緊張時,高價格的競價者會從低價者的EC2 實例中搶奪資源,將低價位的EC2 Spot instance terminate,這對於EC2使用者是有較大影響的,當然AWS在terminate掉低價位的Spot instance之前兩分鐘會向該實例的擁有者發送郵件通知,擁有者可以通過保存數據來降低數據丟失的風險,但是對於使用者仍然會帶來風險和不便,所以AWS官方建議Spot instance適用於那些容錯性比較強壯的架構系統,如果對EC2實例的穩定性要求較高,官方建議還是採用On-Demand類型的實例。至於為何會產生Spot instance會被terminate,這裡面涉及到Spot instance 的競價模型,這個內容將會在下一篇文章中詳述講解。


分享到:


相關文章: