如果企業使用AWS雲,會有那些開支,如何構建才能最大力度上節省開支

AWS 目前是世界上市場份額最大的雲服務商,在國內的市場比例因爲各種原因遠遠比不上阿里雲,但是在國際市場上,尤其是IaaS 這一塊,AWS,Microsoft和 Google 幾乎是三分天下。

如果企業使用AWS雲,會有那些開支,如何構建才能最大力度上節省開支

雲是否便宜?
這是一個相對有爭議性的話題,我拋磚引玉說說自己的看法。一般說起雲服務,很多用戶的第一反應就是便宜。從成本考慮的話,因人而異,我不認爲雲服務就一定會比線下的服務器更便宜。豆子的部門需要對集團旗下140多個大大小小的子公司進行IT的運維,經常有用戶會問我們,如果我的服務器遷移到AWS上,大概一個月多少錢?上雲之前,一般都會進行簡單的成本計算進行對比,包括硬件成本,軟件成本,人工成本以及各種維護的成本,包括機房的備份,UPS,空調等等。從效率上來說,IaaS的優越性在於可以讓管理員完全忽略掉底層的存儲,網絡,主機,以及機房的相關配套設備,僅僅關注自己需要的服務上面,從人工的工時上節約了大量的時間和金錢;個人認爲,對於一些大的公司而言,基礎的機房建設投資不菲,上雲肯定能節省大量的金錢和精力;但是對於某些小的客戶而言,高可用的存儲主機網絡本來就不是他們關注的重點,一個普通的服務器足夠滿足所有的需求了,因爲他們的IT的預算本來就很低,那麼上雲並不會節約太多開支。

AWS雲服務和相關費用考慮
對於AWS來說,上雲之前需要考慮哪些服務和費用呢?如果忽略掉潛在的重要開支,往往會發現預算和和實際開支相差甚遠的情況。
AWS提供了一個網站來估算開支,但是提供的選項特別複雜
https://calculator.s3.amazonaws.com/index.html

AWS有一套超級複雜的計費系統,他的上百個服務有不同的計費方式,但是他最核心服務就是EC2,S3, VPC。不論規模大小,基本上所有的AWS用戶都或多或少的會使用這些服務,而絕大部分開支也出自這些服務上。所以不考慮特殊情況,我一般泛泛地估算開支就是看這幾個核心服務的使用情況。
EC2: (吃錢大戶)
EC2是AWS最早推出的虛擬機服務,用戶可以根據自己的需求選擇合適的EC2 類型。EC2本身針對CPU,內存,帶寬等需求對CPU和內存進行特殊優化,分爲了A1, E2, E3 等8大類型,每個類型又根據性能劃分了不同的級別。不同級別收費區別極大,一般說來,剛開始都是根據當前的需求選擇一個類似的服務器,試運行一下,然後再逐漸提高性能級別。

除了類型的選擇,我們知道EC2 Instance的收費是根據時間來的,用戶需要考慮是否24X7的全天候運行。如果可以晚上關機的話,可以節約近乎一半的開支。Auto scaling這裏暫不計入考慮。

EC2的硬盤存儲都是EBS類型。EBS也是根據IOP的速度分了三大類 (Magnetic,Provisioned IOPS (SSD) and General Purpose (SSD))。基本標準是容量空間越大,速度越快。對於大部分應用來說,通用類型足矣。通用性的計算標準是3IOPS / G。用戶可以計算一下需要的存儲空間有多大。基本上這部分的開支是固定的和可以預見的。

EBS的備份一般是通過Snapshot來實現的,這一塊的開支比較難以精確估算,他的收費主要還是根據流量和存儲空間來計算的。Snapshot在做了第一個之後,之後都是incremental backup,用戶可以估算每天改變的文件大小以及總共保留的快照個數來估算開支。

S3:
S3是另外一個吃錢的大戶。S3一般是用來保存備份的文件,用戶可以通過腳本或者第三方的軟件備份文件到S3 bucket裏面,但是S3本身也根據可用性和可靠性劃分了多個級別,比如S3 standard,S3 IA, Glacier 等等。用戶需要規劃如何有效地利用不同的級別,比如不用的歸檔文件可以備份到 Glacier,需要經常訪問到S3 standard,他們的價格也是相差數倍以上。

VPC:

VPC的收費主要取決於流量和***服務,這部分的開支基本都是固定的。以***爲例,一個連接每個月的開支大概是30刀左右。

理想 VS 現實
給用戶估算了價格,用戶覺得省事省錢了,很開心,然後月底的時候看賬單,往往會有意外的驚喜(驚嚇?!)很多時候人算不如天算,總有意外破財的時候。AWS的計費系統超級複雜,因此定期管理賬單是非常重要的。需要強調的一點是, AWS的 Billing系統不是實時的,有1-2天的滯後性,當天的消費情況並不會立刻出現在賬單上。
Billing系統裏面,大部分時候我們都是在 Cost Explorer裏面查看賬單,通過不同的group我們可以看見不同的視圖。比如說我的一個測試賬號裏面,我意外發現我上個月比起之前多花了幾塊錢,這是花在哪裏了?
如果企業使用AWS雲,會有那些開支,如何構建才能最大力度上節省開支

如果企業使用AWS雲,會有那些開支,如何構建才能最大力度上節省開支
Group by 從 Service切換到 Usage Type, 我發現原來是Elastic IP的開支。 EIP默認是免費服務,但是如果我關掉EC2 實例之後,忘記dissociate 掉關聯的EIP, 他就會開始收費。驚不驚喜,意不意外?
這種小驚喜的陷阱還很多,爲了避免月底給老闆帶來心臟病的刺激,我們需要更好地管理和監控自己的服務以及開支。

對於AWS的管理員而言,首先需要做的是設置一個 Bill Alarm。當開支超過我們的心理底線的時候,需要他給我們及時發通知,可以及時止損。設置的方法很容易,可以參考這個鏈接
https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/monitor_estimated_charges_with_cloudwatch.html

除了警報以外,Billing管理器另外一個非常有用的功能是根據TAG 分類 。
Billing默認的顯示是根據服務類型來列出的,如果所有的服務都是一個部門使用,那當然okay,但是如果涉及到多個部門的話,我們可以對不同的服務進行tag標記是哪個部門使用的,然後通過標記進行分類。
默認通過服務類型來顯示

如果企業使用AWS雲,會有那些開支,如何構建才能最大力度上節省開支

根據tag分類之後的賬單,我可以清楚地看見不同的診所的開支,月底就可以挨個收費了

如果企業使用AWS雲,會有那些開支,如何構建才能最大力度上節省開支
第三點 我們知道AWS的服務都是通過計時算錢的。對於開支大頭EC2 Instance而言,如果我們可以在晚上自動關機,早上自動開機,我們關機時段是不需要付費的,這樣可以有效地減少不必要的開支。AWS官方提供了一個自動化的解決方案叫做 instance scheduler,鏈接如下
https://aws.amazon.com/solutions/instance-scheduler/
通過CloudFormation配置之後就可以通過tag設定自動開機,關機時間了。

第四點 定期檢查備份開支。備份的開支在初期很容易被忽略,但是如果不留意的話,他的增長會呈線性增長。這個原因是由於EC2的snapshot, AMI 和 舊的Volume很容易累積,如果沒有好的規範及時刪除,可能幾個月的時間就會意外地累積出一大堆額外的開支。

對於snapshot的快照,AWS同樣提供了官方的自動化方案,他可以通過tag來自動備份和刪除舊的備份,這個stack方案叫做 ops Automator,具體可以參考這個博文進行配置
https://blog.51cto.com/beanxyz/2454327

出於同樣的原因S3裏面的數據可能也會越積越多 因此我們需要配置S3 的lifecycle,對於舊的數據需要及時清除。如果經常需要創建新的bucket, 我們可以通過CloudWatch和Lambda來自動添加對應的Lifecycle。

另外一個省錢的有效方式是 Reserved Instance 或者 spot instance。Reserved instance可以通過預付的方式,相比起on demand的方式而已,節省幾乎一倍的費用。這種方式很適合那種24X7 連續運轉的服務器。不過需要注意的是,如果需要改變服務器的類型(升級或者降級),那麼之前預付的錢就白費了。好在AWS也知道這種需求改變難免發生,因此用戶可以在Reserved Instance Marketplaces 上出售沒有用完的時間。

例如,Billing 系統裏面可以查看reserved instance替你省了多少錢,這個例子裏面我並未使用預付的方式,因此打折力度大概28%左右

如果企業使用AWS雲,會有那些開支,如何構建才能最大力度上節省開支

Spot instance 則是你投標去購買其他人暫時不用的資源,當然這個價格比起on demand來說會優惠很多。不過缺點是一旦資源耗盡,隨時可能中斷服務,因此不適合需要長期穩定的需求,往往作爲一個輔助,臨時分擔運算壓力等等。

收費的方式
AWS 默認就兩種方式,信用卡或者銀行轉賬。如果公司的財務流程需要出示賬單再付款的話,AWS也可以發送對應的賬單,然後再由公司的財務付款也是可以的。

如果發生某些意外,比如信用卡過期了,AWS會自動給root賬號發送警告信告知欠款,如果超過3個月都沒人理會那個郵件的話,他會發個最終通牒,然後切斷登錄,隨機關閉一些EC2的服務。不過他仍然保留你登錄 support賬號的權限,這樣你才能給他們聯繫,趕快交錢贖人。當然如果態度比較好的話,乖乖認錯,服務還是很快就能恢復的~

總結
AWS的雲服務提供了大量的服務,每個服務都有其自身的計費方法。這裏我主要針對他的幾個核心服務簡單的討論了一下他們的開支,以及如何最大力度去節約這些開支。限於經驗和水平,難免有疏忽和不足,歡迎指出和討論。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章