

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 容量規劃
<a name="capacity-planning"></a>

 雖然 中的 Amazon EC2 容量 AWS 區域 似乎是無限的，但 Outposts 上的容量是無限的 – 受限於所訂購運算容量的總容量。您負責規劃和管理 Outposts 部署的運算容量。您應該訂購足夠的運算容量來支援 N\$1M 可用性模型，其中 N 是必要的伺服器數量，M 是佈建以適應伺服器故障的備用伺服器數量。N\$11 和 N\$12 是最常見的可用性層級。

 每個主機 (`C5`、`R5`、 等） `M5`都支援單一系列的 EC2 執行個體。在 EC2 運算伺服器上啟動執行個體之前，您必須提供槽配置，指定您希望每個伺服器提供的 [EC2 執行個體大小](https://aws.amazon.com/ec2/instance-types/)。使用請求的槽配置來 AWS 設定每個伺服器。

 主機可以是同質槽，其中所有槽都是相同的執行個體大小 （例如 48 `m5.large` 個槽），或是與執行個體類型 （例如 4`m5.large`、4`m5.xlarge`、3`m5.2xlarge`、1 `m5.4xlarge`和 1`m5.8xlarge`) 混合的異質槽 – 請參閱以下三個圖表，了解這些槽組態的視覺化效果。

![\[顯示m5.24xlarge主機運算資源的圖表\]](http://docs.aws.amazon.com/zh_tw/whitepapers/latest/aws-outposts-high-availability-design/images/m5-24xlarge-server-resources.png)


![\[顯示m5.24xlarge主機同質槽槽進入 48 m5.large 槽的圖表\]](http://docs.aws.amazon.com/zh_tw/whitepapers/latest/aws-outposts-high-availability-design/images/m5-24xlarge-slotted-into-48-m5-large-slots.png)


![\[顯示異質槽化成 4m5.large、4m5.xlarge、3m5.2xlarge、1 m5.4xlarge和 1 個m5.8xlarge槽的m5.24xlarge主機圖表\]](http://docs.aws.amazon.com/zh_tw/whitepapers/latest/aws-outposts-high-availability-design/images/m5-24xlarge-slotted-into-different-x5-slots.png)


 

完全的主機容量不需要槽化。插槽可以新增至具有可用未配置容量的主機。您可以使用 的容量管理 APIs或 UIs 來修改槽配置， AWS Outposts 並建立新的容量任務。如需詳細資訊，請參閱 *AWS Outposts 機架使用者指南中的 的*[容量管理 AWS Outposts](https://docs.aws.amazon.com/outposts/latest/userguide/outposts-capacity.html)。如果執行中的執行個體佔用了某些插槽，但無法套用新的槽配置，您可能需要關閉或重新啟動特定執行個體以完成新的容量任務。`CreateCapacityTask` API 可讓您表達應出現在指示 Outpost ID 上的每個執行個體大小數目，如果任務因執行中的執行個體而無法完成， 會傳回必須停止的執行個體，以滿足請求。此時，您可以選擇性地指示您希望在不希望停止傳回其中一個執行個體的情況下看到「N」其他選項，也可以指示不應建議做為執行個體關閉的 EC2 執行個體 ID、EC2 執行個體標籤、帳戶或服務，以滿足容量任務請求。選擇您要使用的選項後，建議您使用 Dry Run 參數來驗證提議的變更，並了解實作之前的潛在影響。

 所有主機都會將其佈建的插槽貢獻至 Outpost 上的 EC2 容量集區，而指定執行個體類型和大小的所有插槽都會以單一 EC2 容量集區的形式管理。例如，先前具有 `m5.large`、`m5.xlarge`、`m5.2xlarge`、 `m5.4xlarge`和 `m5.8xlarge` 插槽的異質槽式主機會將這些插槽貢獻到五個 EC2 容量集區 – 每個執行個體類型和大小都有一個集區。這些集區可能會分散到多個主機，而執行個體置放應該是實現工作負載高可用性的考量因素。

 在規劃 N\$1M 主機可用性的備用容量時，請務必考慮主機槽和 EC2 容量集區。 會 AWS 偵測主機故障或降級，並排定網站造訪以取代故障的主機。您應該設計 EC2 容量集區，以容忍 Outpost 中每個執行個體系列 (N\$11) 中至少一個伺服器發生故障。使用此最低層級的主機可用性，當主機故障或需要停止服務時，您可以在相同系列的其餘主機的備用插槽上重新啟動故障或降級的執行個體。

 當您擁有同質槽式主機或具有相同槽式配置的異質槽式主機群組時，規劃 N\$1M 可用性非常簡單。您只需計算執行所有工作負載所需的主機 (N) 數量，然後新增 (M) 其他主機，以滿足您在故障和維護事件期間對伺服器可用性的需求。

由於 NUMA 界限，下列槽組態無法使用：
+ 3 `m5.8xlarge`
+ 1 `m5.16xlarge`和 1 `m5.8xlarge`

請洽詢 AWS 帳戶 您的團隊以驗證您規劃的 AWS Outposts 機架槽組態。

 在下圖中，四個`m5.24xlarge`主機以異質槽化方式搭配相同的槽式配置。四個主機會建立五個 EC2 容量集區。每個集區都以最大使用率 (75%) 執行，以維持在這四個主機上執行之執行個體的 N\$11 可用性。如果有任何主機失敗，有足夠的空間來重新啟動其餘主機上失敗的執行個體。

![\[顯示 EC2 主機插槽、執行中執行個體和插槽集區的視覺化圖表\]](http://docs.aws.amazon.com/zh_tw/whitepapers/latest/aws-outposts-high-availability-design/images/ec2-server-slots-and-pools.png)


 對於較複雜的槽式配置，其中主機的槽式不同，您將需要計算每個 EC2 容量集區的 N\$1M 可用性。您可以使用下列公式來計算有多少個主機 （對指定的 EC2 容量集區貢獻插槽） 會失敗，但仍允許剩餘的主機攜帶執行中的執行個體：

![\[Equation M = （可用的集區插槽/主機插槽上限）\]](http://docs.aws.amazon.com/zh_tw/whitepapers/latest/aws-outposts-high-availability-design/images/equation.png)


 其中：
+ **poolSlotsavailable** 是指定 EC2 容量集區中的可用插槽數量 （集區中的插槽總數減去執行中的執行個體數量）
+  **serverSlotsmax** 是任何主機對指定 EC2 容量集區貢獻的插槽數量上限 
+  **M** 是可能失敗的主機數量，但仍允許剩餘的主機攜帶執行中的執行個體 

 ***範例：***Outpost 有三個主機，可將插槽貢獻至`m5.2xlarge`容量集區。第一個貢獻 4 個插槽，第二個貢獻 3 個插槽，第三個主機貢獻 2 個插槽。Outpost 上的`m5.2xlarge`執行個體集區總容量為 9 個插槽 (4 \$1 3 \$1 2)。Outpost 有 4 個執行中的`m5.2xlarge`執行個體。有多少個主機可能失敗，但仍允許剩餘的主機攜帶執行中的執行個體？ 

![\[三個方程式\]](http://docs.aws.amazon.com/zh_tw/whitepapers/latest/aws-outposts-high-availability-design/images/equations.png)


 ***答案：***您可能會遺失任何一個主機，但仍在剩餘的主機上攜帶執行中的執行個體。

## 運算容量規劃的建議實務
<a name="recommended-practices-for-compute-capacity-planning"></a>
+  調整運算容量的大小，為 Outpost 上的每個 EC2 容量集區提供 N\$1M 備援。
  +  為同質或相同的異質槽式伺服器部署 N\$1M 伺服器。
  +  計算每個 EC2 容量集區的 N\$1M 可用性，並確保每個集區符合您可用性需求。