筆者目前所在公司的海外業務平台由於牽涉到多機房布點和成本的考慮,目前基本上採用的是
aws雲計算平台,產品線涉及到了
ec2/ebs/s3/redshift
等,目前平台已經穩定執行幾年了,在使用過程還是有不少心得和感想的,特地做了些總結跟大家一起分享下,對
aws有興趣的同學也可以關注下。
作為乙個資深運維,熟悉各種雲計算平台,但還是對
aws強大的控制台功能還是很驚異的,控制台提供的功能是非常強大的,小到系統的
ami映象備份恢復,使用者的
iam許可權分配,然後
instance
機器種類和外接磁碟
ebs的選型,大到分布式
s3的檔案儲存功能,
aws強大的控制台都提供了相應的功能。如果不喜歡用圖形介面操作的話,喜歡自動化運維的同學,
aws也提供了強大的
boto3
介面(基於
python
),同學們也可以利用
python
指令碼來進行相關的伺服器後台程式開發工作。
注:通過適用於
python
的aws
開發工具包
boto3
快速開始使用
aws。
boto3
可以支援您輕鬆將
python
應用程式、庫或指令碼與
aws
服務進行整合,包括
amazon s3
、amazon ec2
和amazon dynamodb
等。(建立aws免費帳戶)
另外,aws控制台有些功能是非常人性化的,比如我通過控制台購買了一年的c3.xlarge(4 vcpu+ 7.5記憶體)預留例項(預留例項是一種比較節約的計費方式,通常為以年為計費單位,比單獨購買一般要便宜35%左右),但在使用過程過程中,我發現業務量不需要c3.xlarge這樣高效能的機器,那我們可以通過修改預留例項的方式,將其分離成2臺效能稍弱的c3.large,這樣剝離出來的一台c3.large機器就可以多出來跑別的業務了。
另外,aws的產品線是非常豐富,通過控制台我們就能看到,各種各樣的產品都在列表內,大家可以根據工作需求來取捨。我們一般用得比較多的有ec2(aws雲主機)、route53(dns)、cdn、elastic load balancing (aws負載均衡)、s3/glacier(雲儲存)、資料庫產品有rds或redshift、nosql有dynamondb、elasticmapreduce(hadoop計算框架)等等,aws的產品線是非常豐富的,甚至可以說,我們工作中產生的業務需求,很有可能就能通過aws的產品來實現。通過aws的emr服務來實現工作中的hadoop/spark來進行海量離線業務日誌的處理和分析,是一件非常容易和輕鬆的事情,事實上,這部分的工作是完全不需要運維人員來參與的。
另外,事實上,aws雲計算平台進行彈性擴容是一件非常容易和方便的事情,拿我們的業務平台來說,在上線前期,由於宣傳及商務談判等原因,入口流量及使用者數都比較少,這個時候平台很穩定,整體系統負載及qps都比較低,但隨著後期商業談判的成功,入口流量及使用者都越來越多,系統負載、qps都偏高,機器還經常出現了cpu利用率達到100%的情況。這個時候我們可以通過呼叫aws api介面來實現彈性擴容,包括主機的分配、流量的分配、ip的繫結、網域名稱解析的配置,還有儲存服務等,這部分的工作如果做成自動擴容也是比較容易實現的,我們可以通過ansible自動化配置管理工具或python語言自行開發。事實上,為了節約費用,很多時候我們可以考慮開啟更便宜的spot instance(比instance例項收費便宜多了,但公網ip不固定,由於採用的是競價模式,很容易被別人買走)。另外,後續的工作我們還是要在工作中考慮到,比如說某項業務量降下去以後,我們不再需要那麼多機器了(aws是以instance例項實際使用的小時數來收費的,我們關閉機器以後aws就不再收費了),我們應該如何在不影響業務穩定性的前提下來減少機器數量從而起到節約成本的作用呢,這些都需要我們在實際的開發工作中考慮到。
另外,在實際使用工作中我們也發現,aws平台目前也還是存著一些問題的,這些也應該是我們在使用過程注意的地方:
一、有段時間,美國西部的機器因為亞馬遜硬體公升級的原因,不斷的要進行業務遷移的工作,事實上如果是某個集群內的機器的話倒沒什麼影響,如果機器上面正跑著重要核心業務的話,對整體系統還是非常有影響的;
二、使用中有機器還是有重啟的情況,還發生過機器失聯的情況,當然了這種情況並不多見,一年中我們也只發現了兩起,就是沒有任何郵件通知的情況下,機器發生了失聯情況;
三、亞馬遜自帶的監控功能或產口還不是很強,所以我們還是需要自己配置
nagios或zabbix監控服務,並針對業務需求來開發外掛程式;
四、預留例項的**是一件比較麻煩的事情,比較好買,但感覺非常難**,所以筆者每次購買預留例項會非常小心謹慎。
五、aws的帳單功能還是挺完善的,但也可能會產生誤收費的情況,這個時候需要英語口語或郵件溝通,一般情況下aws會退款的。
雖然aws雲計算平台或多或少的存在些問題,但總體來說並不會影響我們業務系統的整體效能和穩定,我們能夠在節約成本的前提下,能夠非常方便的進行擴容工作和hadoop/spark資料計算,在全球部署自己的資料中心,這些工作由於使用了aws平台感覺操作起來非常簡單方便,感謝aws提供了這麼些偉大的產品,預祝其越做越好。 (聯絡aws專家)
筆者簡介
餘洪春(撫琴煮酒)運維架構師、高階運維開發工程師,《構建高可用linux伺服器》、《linux集群和自動化運維》作者,chinaunix論壇「集群和高可用」及「監控及自動化運維」版版主。從事雲計算和電子商務**運維工作10多年,在linux集群、自動化運維、雲計算及高併發高流量**架構設計等方面進行了深入的研究,在大量一線實踐中積累了豐富的經驗。精通負載均衡高可用和自動化運維技術,擅長高併發高流量**系統架構設計。
使用 AWS 雲平台構建物聯網應用
當我們沒有足夠的能力或者時間去開發一些物聯網雲平台的時候,使用一些現有的成熟的雲平台是乙個很好的選擇。通常來說,這些平台可以為我們帶來更快的開發速度和更簡單的解決方案,並且可以讓我們集中於實現上的業務邏輯。我們只需連線上我們的裝置 上傳我們的資料,就可以在地球的另一端觀察這些資料的變化。在這些物聯網...
雲計算平台點兵 誰在用AWS,誰在用Azure?
微軟和亞馬遜雙雙發布了2017年第二季度財報,兩家公司的雲計算業務漲勢喜人 aws的季度全球銷售額達到了41億美元,在保持市場領跑的前提下一年大漲41 azure的利潤更是一年瘋漲97 業界知名的問答平台stack overflow使用stack overflow trends,從多個角度對aws和...
通過AWS了解雲計算系列 雲計算的核心技術體系
西方從兩方面闡述雲計算的核心技術體系 一從雲服務商的角度來解釋 二從使用者的角度來解釋。從雲服務提供商的角度講 soa 面向服務的架構 構建層封裝雲計算能力為標準的web services服務,並納入到soa體系中。這一層使得使用者得以簡便地使用雲服務,而不用去考慮如何管理 排程資源等問題,讓使用雲...