

# 調整適當大小的要訣
<a name="tips-for-right-sizing-your-workloads"></a>

本節提供一些要訣，協助您調整 EC2 執行個體與 RDS 資料庫執行個體的適當大小。

## 使用效能資料調整適當大小
<a name="right-size-using-performance-data"></a>

 分析效能資料以調整 EC2 執行個體的適當大小。識別閒置執行個體與使用量過低的執行個體。尋找的關鍵指標是 CPU 使用率與記憶體使用率。識別四週內最大 CPU 使用率與記憶體使用率低於 40% 的執行個體。這些是您希望調整適當大小以降低成本的執行個體。 

 針對最佳化運算執行個體，請記住下列幾點： 
+  專注於最近的執行個體資料 (舊資料可能無法操作)。 
+  專注於您正在查看已執行至少一半時間的執行個體。 
+  忽略爆量執行個體系列 (T2 執行個體類型)，因為這些系列通常設計為在長時間以較低的 CPU 百分比執行。 

 針對關鍵功能是高資料 IOPS 的儲存體最佳化執行個體 (I2 與 D2 執行個體類型)，請專注於 IOPS 以查看執行個體是否過度佈建。針對儲存體最佳化執行個體，請記住下列幾點： 
+  不同大小的執行個體具有不同的 IOPS 評等，因此會針對每種執行個體類型量身打造您的報告。從最常用的儲存體最佳化執行個體類型開始。 
+  NetworkIn 與 NetworkOut 的尖峰值以每分鐘位元組數為單位。使用下列公式將這些指標轉換為 Mbps： 

   最大 NetworkIn (或 NetworkOut) x 8 (位元組到位元) /1024/1024/60 = Mbps 數 
+  請記下 I/O 與 CPU 百分比指標在白天的變化，以及是否有需要應付的尖峰時段。 

 若發現四週內記憶體的最大使用率小於 40%，則表示記憶體已調整到適當大小。AWS 提供[範例指令碼](https://aws.amazon.com/code/amazon-cloudwatch-monitoring-scripts-for-linux/)，用於監控執行 Linux 之 EC2 執行個體上的記憶體與磁碟空間使用率。您可以將指令碼設定為向 Amazon CloudWatch 報告指標。 

 分析 Amazon RDS 資料庫執行個體的效能資料時，請專注於下列指標，以判斷實際使用率是否低於執行個體容量： 
+  平均 CPU 使用率 
+  最大 CPU 使用率 
+  最小可用 RAM 
+  平均每秒從磁碟讀取的位元組數。 
+  平均每秒寫入磁碟的位元組數。 

## 根據使用需求調整適當大小
<a name="right-size-based-on-usage-needs"></a>

 監控目前的效能時，請確定下列用量需求與模式，以便利用潛在的精簡選項： 
+  **穩定狀態** – 隨著時間的推移，負載保持在相對固定的層級，可以準確地預測可能的運算負載。對於此使用模式，您可以考慮使用預留執行個體，這可以節省大量成本。 
+  **變數，但可預測** – 負載會發生變化，但根據可預測的排程進行。[AWS Auto Scaling](https://aws.amazon.com/autoscaling/) 非常適合具有穩定需求模式且用量每小時、每天或每週發生變化的應用程式。當您遇到尖峰流量或可預測的流量波動時，可以使用此功能擴展或縮減 Amazon EC2 容量。 
+  **開發/測試/生產** – 開發、測試與生產環境通常僅用於辦公時間，可以在晚上、週末與節假日關閉。(您需要依靠標記來識別開發/測試/生產執行個體。) 
+  **暫時** – 對於具有彈性啟動時間且可能被中斷的暫時工作負載，您可以考慮使用 Amazon EC2 Spot 執行個體，而不是使用隨需執行個體。 

## 透過關閉閒置執行個體來調整適當大小
<a name="right-size-by-turning-off-idle-instances"></a>

 降低操作成本最簡單的方式是關閉不再使用的執行個體。若您發現已閒置兩週以上的執行個體，則可以安全地將其停止甚至加以終止。在終止已閒置兩週或較短時間的執行個體之前，請考慮： 
+  誰擁有該執行個體？ 
+  終止執行個體可能會有什麼影響？ 
+  若您需要還原執行個體，重新建立執行個體有多困難？ 

 停止 EC2 執行個體將使所有連接的 EBS 磁碟區處於操作狀態。在您刪除該執行個體之前，將會持續向您收取費用。若您再次需要該執行個體，可以輕鬆地將其重新開啟。然而，終止執行個體會自動刪除連接的 EBS 磁碟區，若再次需要該執行個體，則需要重新佈建。若您決定刪除 EBS 磁碟區，請考慮儲存該磁碟區的快照，以便未來需要時還原該磁碟區。 

 降低成本的另一種簡單方式是，在開發與生產中所使用的執行個體未使用時，停止這些執行個體，然後在需要容量時重新啟動。假設每週工作 50 小時，透過在非辦公時間自動停止開發/測試/生產執行個體，您可以節省 70% 的成本。許多工具可用於自動化排程，包括 [Amazon EC2 排程器](https://aws.amazon.com/answers/infrastructure-management/ec2-scheduler/)、[AWS Lambda](https://aws.amazon.com/lambda/) 與 [AWS Data Pipeline](https://aws.amazon.com/datapipeline/)，以及第三方工具，例如 CloudHalth 與 Skeddly。 

## 透過選取適當的執行個體系列來調整適當大小
<a name="right-size-by-selecting-the-right-instance-family"></a>

 您可以透過移轉至相同執行個體系列中的不同模型，或遷移至其他執行個體系列來調整執行個體的大小。在相同執行個體系列中遷移時，您只需要考慮 vCPU、記憶體、網路輸送量與暫時性儲存區。EC2 執行個體有一個很好的一般規則是，若您的最大 CPU 與記憶體使用率在四週內皆低於 40%，則可以安全地將機器數量減少一半。例如，若您使用的是 c4.8xlarge EC2，則可以移至 c4.4xlarge，每 10 天節省 190 USD。 

 遷移至不同的執行個體系列時，請確定目前的執行個體類型在虛擬化類型、網路或平台方面與新執行個體類型相容： 
+  **虛擬化類型** – 執行個體必須具有相同的 Linux AMI 虛擬化類型 (PV AMI 與 HVM) 及平台 (EC2-Classic 與 EC2-VPC)。如需詳細資訊，請參閱 [Linux AMI 虛擬化類型](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/virtualization_types.html)。 
+  **網路** – EC2-Classic 中不支援某些執行個體，而且這些執行個體必須在 Virtual Private Cloud (VPC) 中才能啟動。如需詳細資訊，請參閲[僅在 VPC 中可用的執行個體類型](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-vpc.html#vpc-only-instance-types)。 
+  **平台** – 若您目前的執行個體類型支援 32 位元 AMI，請確保選取也支援 32 位元 AMI 的新執行個體類型 (並非所有 EC2 執行個體類型都支援)。若要檢查您的執行個體平台，請前往 Amazon EC2 主控台中的執行個體畫面，然後選擇 **Show/Hide Columns, Architecture** (顯示/隱藏欄，架構)。 

 當您在調整 EC2 執行個體的規模時，調整規模後的執行個體通常會具有與您在啟動原始執行個體時所指定執行個體存放磁碟區相同數目的執行個體存放磁碟區。啟動執行個體後，您無法將執行個體存放磁碟區連接到執行個體；因此，若要新增執行個體存放磁碟區，則需要遷移至包含更多磁碟區的新執行個體類型。 

## 調整資料庫執行個體的適當大小
<a name="right-size-your-database-instances"></a>

 您可以隨著效能與容量要求的變更，透過調整記憶體或增減運算能力來縮放資料庫執行個體。下列是擴展資料庫執行個體時需要考慮的一些事項： 
+  儲存體與執行個體類型會分開進行。當您擴展或縮減資料庫執行個體時，儲存體大小保持不變，而且不受變更的影響。 
+  您可以單獨修改 Amazon RDS 資料庫執行個體，以增加分配的儲存空間，或是透過變更儲存體類型 (例如將一般用途 SSD 變更為佈建 IOPS SSD) 來改善效能。 
+  在擴展或縮減之前，請確保為商業引擎 (SQL Server、Oracle) 具有正確的授權，尤其是在使用自有授權 (BYOL) 時。 
+  判斷何時要套用變更。您可以選擇立即套用，也可以在為執行個體指定的維護時段內加以套用。 