【2020 AWS re:Invent 即時新聞】- Infrastructure Keynote
今年的 re:Invent Infra 內容主要由 AWS 的 Infrastructure 及客服 VP – Peter DeSantis 主持,想了解 AWS 如何優化其雲端基礎架構以執行一些世界上最難克服的工作,並為使用者的企業帶來競爭優勢。
Aamzon Web Service (AWS) 一開始為 Amazon 內部的一個專案,而 AWS 的目標是想要提供 24 * 7 全年不間斷的服務。要達成這項艱難的挑戰,是沒有捷徑的,唯一的辦法就是不斷嘗試、有效利用最新科技來達到 great operation,而 AWS 在這 10 年間也的確做到了!
Everything fails
要建立一個高可用性的的系統唯一要考慮的就是要以 Everything fails ,任何人員、硬體設備、元件甚至於線路等都有可能壞掉,導致服務無法運作的最壞狀況去思考。
從 Infrastructure 基礎建設最底層的電源系統開始,AWS 供電的方式如下:從電力公司取得電能後,經由 UPS 再傳輸到設備。當電力公司發生問題時,AWS 會短暫的利用 UPS 供電,並透過 Switch Gear 將電源切向發電機,達到電源供應的的高可用性。
雖然使用發電機即可滿足基本的高可用性,但是發電機在遇到電力需求無法負荷、需要擴展的時候就會有相當的難度;而且當發電機故障時,後端設備就沒有電了。而解決這問題的方法很簡單,使用備援發電機就可以了!
再來, Switch Gear 其實是個不複雜的設備,它是由一些簡單的電路零件及控制系統所組成。
這種設備往往都有一些嵌入式的韌體與軟體,不過裡面可能有很多不必要的功能;發生問題時,也難以修復 bug,因此 AWS 自己設計了 switch gear contol system。
UPS 的部分需要一個地方去儲存電能,一般來說是用鉛蓄電池 (Lead-acid battery),但它有些問題,例如:一個 UPS 有 20,000 磅,除了很重以外,使用久了也會壞掉。
AWS 為了達到電源高可用性,除了 2 部發電機之外,整個電源供應模組會採並聯的方式連接,達到 99.99997% 的供電穩定度。
除了高可用性以外,因為市售的 UPS 有太多無法自己控制的部分,因此 AWS 自行設計了 UPS,讓他們能夠修改 UPS 的所有東西,包含軟體,並且將每個 cell 獨立出來,讓 AWS 可以在很短的時間更換電池,AWS 把它稱為電池架 (battery shelf)。
No really…everything fails
AWS 利用提供多個 Region 的方式,讓使用者也能夠建立高可用的系統。
AWS 一開始是出於延遲的原因,決定要建立多個 Region。
而物理距離越近,延遲越低;但又不能太近,不然容易因為地域性的自然災害,讓鄰近的 Region 也遭受到影響。因此 AWS 經過多方研究,得到 Region 之間的最佳距離。
最後構成了以下 Region 規劃。今年度已發布多個新的 Region,像是米蘭、開普敦。而未來預計還有推出更多 Region。
近年來,隨著 AWS 商業規模擴大,供應商的 supply chain 也隨之成長。
AWS 客製晶片一覽
過去 2 年 AWS 致力於開發各種晶片達到以下目標:
- 更好的效能
- 令人驚豔的新功能
- 更高的安全性
- 更好的 power consumption
AWS Nitro 是 AWS Customize Hypervisor 系統,可以有效地管理資源且加強安全性。
像是最近推出的 MAC Instance,其實就是直接把 Mac Mini 放進去實體機,再透過 Nitro Controller 結合 MAC Mini 所完成的,現在開始 Mac Mini 可以使用許多 AWS 上的功能。
AWS 在 Custom Silicon 的發展快速,從 2013 年推出 Nitro 1,到現在的 Nitro 4,沿途優化了效能轉換與硬體利用率。
如果拿 C5n(x86 + Nitro 3)及最新的 C6gn 相比,不僅在效能及價格上都優化許多,且延遲度也降低不少。
去年 AWS 推出第一個 ML 晶片, AWS Inferentia 這個晶片鎖定在 ML 的推理服務,因為推理服務需要很大的吞吐量跟計算量。除此之外,在今年推出新一代的 ML 的訓練晶片— AWS Trainium,讓使用者在 ML 訓練時有更好的選擇。
AWS 在 2 年前發布 Graviton 1 CPU,是一個 64 位元 ARM Base CPU。AWS 在這 2 年間收集到許多使用者回饋,開發出讓使用者更輕易地將系統部屬到 Graviton CPU 的方法,今年 AWS 發布 Graviton 2 CPU。
Graviton 2 提供更單純的運算,且降低了使用成本,效能更快,Graviton 2 是目前 AWS 服務中運算效能最好的 CPU,AWS 為了找到對於雲端計算最佳化的晶片花很多時間跟金錢,就是為了符合剛剛開頭提到的 4 個圭臬。
我們回顧一下 CPU 的發展過程,來了解運算效能成長,從 15 年前的單核心時代,CPU 的效能一路飛躍性地提升,後來為了提升運算效能,所以 CPU 開始重視多核心發展,讓使用者可以多執行緒平行運算,這在當時是一件令人興奮的事情。
因此現在 OS 對多核心有著高度的優化。多執行緒的程式設計也逐漸變成主流,開發者可以在同時處理不同的工作。再來透過 service,幫助使用者把大系統拆分成很多小模組執行,service 就是現在雲端部署的趨勢 ,如此使用者就可以各種 scale 運算資源。
這種部屬方式,意味著要管理很多處理器,處理器設計者嘗試設計出可以同時負荷低負載和高負載的工作情境。
但是為了達到這樣的效果就會使 CPU 越來越複雜,越來越大顆,並且透過 SMT(Simultaneous multithreading) 技術讓單核心可以模擬出多核心,讓 CPU 有更好的運算效能。
但 SMT 有一些劣勢:
- Performance variability – 性能不穩定,使用者無法評估處理程序被 CPU 執行的確切時間。
- Can slow down some scale out workloads – 因為性能不穩定,所以 Scale 的工作很難管理。
- Security concerns – 共享核心會將資料暫存起來,但可能會被另一個正在執行的程式存取。
現有 CPU 為了避免閒置核心持續耗電,所以有複雜的電源管理機制,這個機制在啟動核心與關閉核心時是造成性能不穩定的原因之一。
AWS Graviton2 就是為了避免上述的那些問題,所以構成以下設計目標:
- 提供最接近實際效能的運算能力
- 盡量集成更多獨立的核心
c5.large 與 c6g.large CPU 架構比較
因為 c5 使用 SMT 的關係,執行續數量雖然可以接近 c6g,但實際核心數差很多。
也因為這樣,在使用 Postgres TPC HammerDB 比較效能時,會發現 SMT 技術不比多核心有優勢了。
6g 系列無論在性能或是價格上,都具有非常大的優勢。
說穿了這段在說明 ARM 跟 x-86 在結構與運算表現上差異
致力參與環保議題
為因應氣候變遷,推出 氣候宣言(The Climate Pledge),目標是企業要在 2040 年達到碳中和,也就是最終排碳量為零,比巴黎協定設定的碳中和期程還要早 10 年。Amazon 為了達到這個目標,必須要大幅降低二氧化碳排量。
為了貫徹對環境保護目的,從節能角度來看,比起以往,減少 35 % 電能轉換損失。但是有這麼多的機器需要供電,要再降低能源的使用量,就必須改善 AC/DC 轉換的效率,假設電源模組或電源電路損耗 1 台能夠改善 1W,那麼簡單計算一下每年可節約好幾 W 的用電量,可以達到非常好的節能效果,所以要從硬體下手,去降低電力轉移耗損。
除此之外,使用新版的 CPU 不僅在效能跟價格上有良好的表現,在節能方面也裨益良多。
AWS 透過更好的電力設備、高效能的 Server、使用再生能源及減少耗電量,AWS Data Center 比起一般的 Data Center 減少高達 88% 的碳排量。
AWS 從 2018 年開始使用綠能,從 1036 MW,提升至去年的 2348 MW,到今年使用再生能源有更大的突破,超過 6500 MW!
在打造機房時,同時為了達到環保目的,以綠建築的方式來建置,使用膠凝材料 Supplementary Cementitious Materials (SCMs) 就是鋼鐵工業的副產品磨碎的高爐礦渣(GGBFS)和發電廠燃煤的副產物飛灰,當使用此建材來建置機房時,即可吸收在空氣中的二氧化碳,進而降低碳排量。
對於水資源,AWS 也是非常在意的,AWS 會將用來冷卻機房的水重複利用,冷卻水其實是乾淨的水,它可以提供給 Data Center 附近的畜牧業、農業做使用,這樣農民及酪農也不必擔心沒水可用了,達到對環境友善目的。
最後,Amazon 致力於環境的永續經營與能源再利用,透過上述的方法也讓 Amazon 一舉登上了世界最大使用再生能源的企業,為地球盡一份心力!
Keep invent and reInvent. – Andy Jassy
AWS 基礎服務延伸閱讀 : S3-生命週期、連線至 EC2 的三種方法與比較 – SSH、EC2 Instance Connect、System Manager