效能達成效率

效能達成效率支柱包含 有效率地使用運算資源以滿足系統需求,並隨著需求變更與技術發展來保持該效率需求的能力。

效能達成效率支柱概述了設計原則、最佳實務和相關問題。您可以在效能達成效率支柱白皮書中找到實作的指引。

設計原則

有 five 項雲端效能達成效率設計原則:

定義

有 four 個雲端效能達成效率最佳實務方面:

採取資料驅動的方法來建置高效能架構。從高階設計到資源類型的選擇和組態,收集架構各方面的資料。

定期審查您的選擇,確保充分利用不斷演進的 AWS 雲端。監控可確保您能察覺任何與預期效能的偏差。在架構中做出權衡以改進效能,例如使用壓縮或快取,或放寬一致性要求。

最佳實務

選擇

適用於特定工作負載的最佳解決方案各不相同,而解決方案通常會結合多種方法。Well-Architected 工作負載會使用多重解決方案,並啟用不同功能以提升效能。

AWS 資源有多種類型和組態,可讓您更輕鬆地找到最符合工作負載需求的方法。您還可以發現使用內部部署基礎設施不易實現的選項。例如,Amazon DynamoDB 這種受管服務,可提供全受管的 NoSQL 資料庫及任何規模下的十毫秒內延遲時間。

下列問題著重於效能達成效率方面的這些考量。

PERF 1: 您如何選擇效能最佳的架構?

使用資料驅動的方法,為您的架構選取模式和實作,並達成具有成本效益的解決方案。AWS Solutions Architects、AWS Reference Architectures 和 AWS 合作夥伴網路 (APN) 合作夥伴,可根據產業知識協助您選取架構,不過必須使用透過基準化分析或負載測試獲得的資料,為架構進行最佳化。

您的架構可能會結合許多不同的架構方法 (例如,事件驅動、ETL 或管道)。實作架構將使用專屬於您的架構效能最佳化的 AWS 服務。在以下各節中,我們將討論您應該考慮的四大主要資源類型 (運算、儲存、資料庫和網路)。

運算

選擇符合您要求、效能需求並提供高效率成本和精力的運算資源,讓您能夠使用相同數量的資源來完成更多工作。評估運算選項時,請注意您對工作負載效能和成本的要求,並依據這些要求做出明智的決策。

AWS 中提供了三種運算形式:執行個體、容器和函數:

  • 執行個體是虛擬伺服器,可讓您使用按鈕或 API 呼叫來變更其功能。由於在雲端中,資源決策不是固定的,您可以使用不同的伺服器類型進行試驗。在 AWS 上,這些虛擬伺服器執行個體具有不同系列和大小,並且可提供眾多不同功能,包括固態硬碟 (SSD) 和圖形處理單元 (GPU)。

  • 容器是將作業系統虛擬化的一種方法,可讓您在隔離資源的程序中執行應用程式及其相依性。AWS Fargate 是適用於容器的無伺服器運算。如果您需要控制運算環境的安裝、組態和管理,則可使用 Amazon EC2。您也可以從多個容器協調平台中選擇:Amazon Elastic Container Service (ECS) 或 Amazon Elastic Kubernetes Service (EKS)。

  • 函數可從您想執行的程式碼中將執行環境抽象化。例如,AWS Lambda 可讓您無需執行執行個體便能執行程式碼。

下列問題著重於效能達成效率方面的這些考量。

PERF 2: 您如何選擇運算解決方案?

在建立使用運算的架構時,您應利用可用的彈性機制來確保您有足夠的容量,可在需求變更時維持效能。

儲存

雲端儲存是雲端運算中很重要的元件之一,儲存了工作負載所使用的資訊。雲端儲存通常比傳統內部部署的儲存系統更為可靠、可擴展且安全。為您的工作負載選擇物件、區塊和檔案儲存服務,以及雲端資料遷移選項。

在 AWS 中,儲存有三種形式:物件、區塊和檔案:

  • 物件儲存提供可擴展且耐用的平台,以利從任何網際網路位置存取資料,例如使用者產生的內容、作用中存檔、無伺服器運算、大數據儲存或備份與復原。Amazon Simple Storage Service (Amazon S3) 是一種物件儲存服務,可提供領先業界的可擴展性、資料可用性、安全性和效能。Amazon S3 旨在提供 99.999999999% 的耐久性,並為全球公司存放數百萬個應用程式的資料。

  • 區塊儲存可為每個虛擬主機提供高可用性、一致性、低延遲的區塊儲存,而且類似於直接連結存放裝置 (DAS) 或存放區域網路 (SAN)。Amazon Elastic Block Store (Amazon EBS) 是專為需要 EC2 執行個體存取持久性儲存的工作負載所設計,可協助您以適當的儲存容量、效能和成本來調整應用程式。

  • 檔案儲存可讓您跨多個系統存取共用檔案系統。像 Amazon Elastic File System (EFS) 這類檔案儲存解決方案非常適合大型內容儲存庫、開發環境、媒體存放區或使用者主目錄等使用案例。Amazon FSx 可讓您以輕鬆且經濟實惠的方式啟動和執行熱門的檔案系統,因此您可以利用廣泛使用的開放原始碼和商業授權檔案系統的豐富功能集和快速效能。

下列問題著重於效能達成效率方面的這些考量。

PERF 3: 您如何選擇儲存解決方案?

當您要選取儲存解決方案時,務必確保其符合您的存取模式,以達到您想要的效能。

資料庫

雲端提供專門打造的資料庫服務,可解決工作負載呈現的不同問題。您可以從許多專門打造的資料庫引擎中選擇,包括關聯式、鍵值、文件、記憶體內、圖形、時間序列和總帳資料庫。透過挑選最佳資料庫來解決特定問題 (或一組問題),您可以擺脫限制性的「一體適用」單體資料庫,並專注在建置應用程式以滿足客戶的效能需求。

在 AWS 中,您可以從多個專門打造的資料庫引擎中選擇,包括關聯式、鍵值、文件、記憶體內、圖形、時間序列和總帳資料庫。使用 AWS 資料庫,您無須擔心伺服器佈建、修補、設定、組態、備份或復原等資料庫管理任務。AWS 會持續監控您的叢集,透過自我修復的儲存和自動擴展來保持工作負載正常啟動和執行,讓您能專注於開發價值較高的應用程式。

下列問題著重於效能達成效率方面的這些考量。

PERF 4: 您如何選擇資料庫解決方案?

工作負載的資料庫方法對效能效率有重大影響。它通常是根據組織預設而非透過資料驅動的方法所選擇的區域。與儲存一樣,務必要考慮工作負載的存取模式,同時也務必要考慮其他非資料庫解決方案是否可以更有效地解決問題 (例如使用圖形、時間序列或記憶體中的儲存資料庫)。

網路

由於網路位於所有工作負載元件之間,因此對工作負載效能和行為都有極大的正面和負面影響。也有高度依賴網路效能的工作負載,例如高效能運算 (HPC),其中深度了解網路對於提升叢集效能非常重要。您必須判斷頻寬、延遲、抖動和輸送量的工作負載需求。

在 AWS 上,聯網是虛擬化的,並提供多種不同的類型和組態。這讓您可以更輕鬆地將聯網方法與需求進行匹配。AWS 提供了多種產品功能 (例如,增強型聯網、經 Amazon EBS 優化的執行個體、Amazon S3 Transfer Acceleration 和動態 Amazon CloudFront),可對網路流量進行優化。AWS 還提供聯網功能 (例如,Amazon Route 53 延遲路由、Amazon VPC 端點、AWS Direct Connect 和 AWS Global Accelerator),可減少網路距離或抖動。

下列問題著重於效能達成效率方面的這些考量。

PERF 5: 您如何設定聯網解決方案?

部署網路時必須考慮位置,您可以選擇將資源置放在靠近資源用以減少距離的位置。隨著工作負載的演進,使用聯網指標變更聯網組態。透過利用區域、置放群組和邊緣服務,您可以顯著提高效能。雲端型網路可以快速重建或修改,因此隨著時間演進您的網路架構是維持效能效率的必要條件。

審查

雲端技術正在快速發展,您必須確保工作負載元件會使用新技術和方法,來持續改善效能。您必須持續評估並考量工作負載元件的變更,以確保符合其效能和成本目標。機器學習和人工智慧 (AI) 等新技術可讓您重新構思客戶體驗,並跨所有業務工作負載進行創新。

利用受客戶需求驅動的 AWS 持續創新。我們會定期發佈新的區域、節點、服務和功能。上述任何一個版本均可明顯提高架構的效能效率。

下列問題著重於效能達成效率方面的這些考量。

PERF 6: 您如何發展工作負載,以運用新版本的優勢?

架構效能不佳通常是效能審查程序不存在或中斷的結果。如果您的架構效能不佳,則實作效能審查程序可讓您套用 Deming 的計畫 – 執行 – 檢查 – 行動 (PDCA) 週期,來推動迭代改善。

監控

實作工作負載後,您必須監控其效能,以便在其影響客戶前修正任何問題。超過閾值時,應使用監控指標來發出警示。

Amazon CloudWatch 是一種監控和可觀測性服務,可為您提供資料和可採取動作的洞見,以監控工作負載、回應整個系統的效能變更、優化資源使用率,以及取得運作狀況的統一檢視。CloudWatch 會從在 AWS 和內部部署伺服器上執行的工作負載中收集監控和作業資料 (形式為記錄、指標和事件)。AWS X-Ray 可協助開發人員分析並偵錯生產、分散式應用程式。透過 AWS X-Ray,您可以收集應用程式表現的洞見,並找出根本原因和效能瓶頸。您可以使用這些分析結果來快速即時做出反應,保持工作負載順暢運作。

下列問題著重於效能達成效率方面的這些考量。

PERF 7: 您如何監控資源來確保達成預期效能?

確保您未看到誤報,這是有效監控解決方案的關鍵。自動觸發可以避免人為錯誤,並可減少解決問題的時間。規劃在生產環境中進行模擬的演練日,以測試您的警示解決方案,並確保其能正確識別問題。

權衡

當您建立架構解決方案時,請考慮權衡,以確保採用了最佳方法。根據您的情況,您可以權衡一致性、耐用性和時間與延遲的空間,進而提高效能。

使用 AWS,您可以在數分鐘內實現全球化,並在全球多個位置部署資源,以更接近最終使用者。您還可以將唯讀複本動態新增至資訊儲存區 (例如資料庫系統),以減少主要資料庫上的負載。

下列問題著重於效能達成效率方面的這些考量。

PERF 8: 您如何採用權衡來增進效能?

在變更工作負載時,收集並評估指標以確定這些變更的影響。衡量對系統以及最終使用者的影響,以了解您的權衡如何影響您的工作負載。使用系統的方法 (例如負載測試) 來探索權衡是否可以提高效能。

資源

請參閱以下資源,進一步了解我們的效能達成效率最佳實務:

Performance Efficiency Pillar
Amazon S3 Performance Optimization
Amazon EBS Volume Performance
AWS re:Invent 2019: Amazon EC2 foundations (CMP211-R2)
AWS re:Invent 2019: Leadership session: Storage state of the union (STG201-L)
AWS re:Invent 2019: Leadership session: AWS purpose-built databases (DAT209-L)
AWS re:Invent 2019: Connectivity to AWS and hybrid AWS network architectures (NET317-R1)
AWS re:Invent 2019: Powering next-gen Amazon EC2: Deep dive into the Nitro system (CMP303-R2)
AWS re:Invent 2019: Scaling up to your first 10 million users (ARC211-R)