

# PERF02-BP05 利用資源的可用彈性
<a name="perf_select_compute_elasticity"></a>

雲端提供的彈性可透過各種機制來動態擴展和減少資源，以滿足需求的變化。結合此彈性和運算相關指標，工作負載可以自動因應變更，使用需要的資源且僅用需要的資源。

 **常見的反模式：** 
+  您過度佈建以涵蓋可能的峰值。 
+  您可以手動增加容量，對警示做出反應。 
+  您增加容量而未考慮佈建時間 
+  您在擴展事件之後維持增加容量，而不是縮減規模。 
+  您監控未直接反映工作負載真實要求的指標。 

 **建立此最佳實務的優勢：**需求可以是固定、可變、遵循模式或尖峰。平衡供需關係可將工作負載成本降到最低。彈性地監控、測試和設定工作負載，可以最佳化效能、節省成本，以及隨著用量需求變更來改善可靠性。雖然利用手動方法來達成這個目的是可行的，但是在較大規模下不切實際。自動化及指標式方法可確保資源隨時符合需求。 

 **未建立此最佳實務時的風險暴露等級：**中 

## 實作指引
<a name="implementation-guidance"></a>

應該使用指標式自動化來利用彈性，其目標是您擁有的資源供應符合您的工作負載需要的資源需求。例如，您可以使用 [Amazon CloudWatch 指標來監控您的資源](https://aws.amazon.com/startups/start-building/how-to-monitor-resources/)，或將 Amazon CloudWatch 指標用於您的 Auto Scaling 群組。

 結合與運算相關的指標，工作負載可以自動回應變更，並使用最佳資源集來實現目標。您也必須規劃佈建時間和潛在資源失敗。 

 執行個體、容器和函數提供了彈性機制，可以是服務的功能、[Application Auto Scaling](https://aws.amazon.com/autoscaling/) 的形式，或是與 [Amazon EC2 Auto Scaling](https://docs.aws.amazon.com/autoscaling/ec2/userguide/what-is-amazon-ec2-auto-scaling.html) 結合使用。利用架構中的彈性，以確認您有足夠的容量滿足各種使用規模的效能要求。 

 針對要部署的工作負載類型來驗證擴展或縮減彈性資源的指標。例如，如果您要部署影片轉碼應用程式，則預期為 100% CPU 使用率，且不應做為您的主要指標。或者，您可以針對等待擴展執行個體類型的轉碼任務的佇列深度，來進行測量。 

 工作負載部署需要同時處理縱向擴展和縮減規模事件。安全地縮減工作負載元件，與在必要時擴展資源一樣重要。 

 建立擴展事件的測試案例，以確認工作負載如預期般運作。 

 **實作步驟** 
+  利用歷史資料來分析您的工作負載隨著時間的資源需求。詢問如下的特定問題： 
  +  您的工作負載是否穩定並且以已知的速率隨著時間增加？ 
  +  您的工作負載季節性以可重複的模式增加或減少？ 
  +  您的工作負載是否處於尖峰？ 峰值是否可以預期或預測？ 
+  盡可能多利用監控服務和歷史資料。 
+  標記資源可以協助監控。使用標記時，請參閱[標記最佳實務](https://docs.aws.amazon.com/whitepapers/latest/tagging-best-practices/tagging-best-practices.html)。此外，[標記可以協助您管理、識別和組織資源](https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html)。 
+  搭配 AWS，您可以使用各種不同的方法使供需相符。成本最佳化支柱最佳實務 ([COST09-BP01 到 COST09-03](https://docs.aws.amazon.com/wellarchitected/latest/cost-optimization-pillar/manage-demand-and-supply-resources.html)) 說明如何對成本使用下列方法： 
  + [COST09-BP01 對工作負載需求進行分析](https://docs.aws.amazon.com/wellarchitected/latest/cost-optimization-pillar/cost_manage_demand_resources_cost_analysis.html)
  + [COST09-BP02 實作緩衝或調節機制來管理需求](https://docs.aws.amazon.com/wellarchitected/latest/cost-optimization-pillar/cost_manage_demand_resources_buffer_throttle.html)
  + [COST09-BP03 動態提供資源](https://docs.aws.amazon.com/wellarchitected/latest/cost-optimization-pillar/cost_manage_demand_resources_dynamic.html)
+  建立縮減事件的測試案例，以確認工作負載如預期般運作。 
+  大多數非生產執行個體在未使用時應該予以停止。 
+  對於使用 Amazon Elastic Block Store (Amazon EBS) 時的儲存需求，請利用[容量型彈性](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-modify-volume.html)。 
+  對於 [Amazon Elastic Compute Cloud (Amazon EC2)](https://aws.amazon.com/ec2/)，請考慮使用 [Auto Scaling 群組](https://docs.aws.amazon.com/autoscaling/ec2/userguide/auto-scaling-groups.html)，讓您透過在需求高峰期間自動增加運算執行個體數量，並在需求減少時減少容量，藉此最佳化效能和成本。 

## 資源
<a name="resources"></a>

 **相關的最佳實務：** 
+  [PERF02-BP03 收集與運算相關的指標](perf_select_compute_collect_metrics.md) 
+  [PERF02-BP04 透過適當調整大小來確定所需的組態](perf_select_compute_right_sizing.md) 
+  [PERF02-BP06 根據指標持續評估運算需求](perf_select_compute_use_metrics.md) 

 **相關文件：** 
+  [使用 AWS 進行雲端運算](https://aws.amazon.com/products/compute/) 
+  [Amazon EC2 執行個體類型](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html) 
+  [Amazon ECS 容器：Amazon ECS 容器執行個體](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ECS_instances.html) 
+  [Amazon EKS 容器：Amazon EKS 工作節點](https://docs.aws.amazon.com/eks/latest/userguide/worker.html) 
+  [函數：Lambda 函數組態](https://docs.aws.amazon.com/lambda/latest/dg/best-practices.html#function-configuration) 

 **相關影片：** 
+  [Amazon EC2 基礎 (CMP211-R2)](https://www.youtube.com/watch?v=kMMybKqC2Y0) 
+  [更好、更快、更便宜的運算：成本優化 Amazon EC2 (CMP202-R1)](https://www.youtube.com/watch?v=_dvh4P2FVbw) 
+  [使用 AWS Inferentia 提供高效能 ML 推斷 (CMP324-R1)](https://www.youtube.com/watch?v=17r1EapAxpk) 
+  [最佳化 AWS 運算的效能和成本 (CMP323-R1)](https://www.youtube.com/watch?v=zt6jYJLK8sg) 
+  [支援下一代 Amazon EC2：深入探討 Nitro 系統](https://www.youtube.com/watch?v=rUY-00yFlE4) 

 **相關範例：** 
+  [Amazon EC2 Auto Scaling 群組範例](https://github.com/aws-samples/amazon-ec2-auto-scaling-group-examples) 
+  [Amazon EFS 教學課程](https://github.com/aws-samples/amazon-efs-tutorial) 