

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

# 更新 Amazon MSK 叢集代理程式大小
<a name="msk-update-broker-type"></a>

您可以隨需擴展 MSK 叢集，方法是變更代理程式的大小，而無需重新指派 Apache Kafka 分割區。變更代理程式的大小可讓您根據工作負載的變更靈活調整 MSK 叢集的運算容量，而不會中斷叢集 I/O。 Amazon MSK 對指定叢集中的所有代理程式使用相同的代理程式大小。

對於標準代理程式，您可以將叢集代理程式大小從 M5 或 T3 更新為 M7g、從 T3 更新為 M5，或從 M7g 更新為 M5。

**注意**  
您無法從較大的代理程式大小遷移到較小的代理程式大小。例如，M7g.large 到 T3.small。

對於 Express 代理程式，您只能使用 M7g 代理程式大小。

本主題說明如何更新 MSK 叢集的代理程式大小。

請注意，遷移到較小的代理程式大小可以降低效能，並減少每個代理程式可達到的最大輸送量。遷移到較大的代理程式大小可以提高效能，但可能成本更高。

當叢集啟動並執行時，代理程式大小更新會以滾動方式進行。這表示 Amazon MSK 一次會關閉一個代理程式，以執行代理程式大小更新。如需如何在代理程式大小更新期間使叢集高度可用的詳細資訊，請參閱 [建置高可用性叢集](bestpractices.md#ensure-high-availability)。若要進一步降低對生產力的任何潛在影響，您可以在低流量期間執行代理程式大小更新。

在代理程式大小更新期間，您可以繼續產生和使用資料。不過，您必須等到更新完成後，才能重新啟動代理程式或調用 [Amazon MSK operations](https://docs.aws.amazon.com/msk/1.0/apireference/operations.html) 下列出的任何更新操作。

如果您想要將叢集更新為較小的代理程式大小，建議您先在測試叢集上嘗試更新，以查看它如何影響您的案例。

**重要**  
如果每個代理程式的分割區數量超過 中指定的數量上限，則您無法將叢集更新為較小的代理程式大小[正確調整叢集大小：每個標準代理程式的分割區數量](bestpractices.md#partitions-per-broker)。

**Topics**
+ [使用 更新 Amazon MSK 叢集代理程式大小 AWS 管理主控台](#update-broker-type-console)
+ [使用 更新 Amazon MSK 叢集代理程式大小 AWS CLI](#update-broker-type-cli)
+ [使用 API 更新代理程式大小](#update-broker-type-api)

## 使用 更新 Amazon MSK 叢集代理程式大小 AWS 管理主控台
<a name="update-broker-type-console"></a>

此程序說明如何使用 更新 Amazon MSK 叢集代理程式大小 AWS 管理主控台

1. 登入 AWS 管理主控台，並在 https：//[https://console.aws.amazon.com/msk/home 開啟 Amazon MSK 主控台？region=us-east-1\#/home/](https://console.aws.amazon.com/msk/home?region=us-east-1#/home/)。

1. 選擇您要更新代理程式大小的 MSK 叢集。

1. 在叢集的詳細資訊頁面上，尋找**中介裝置摘要**區段，然後選擇**編輯中介裝置大小**。

1. 從清單中選擇您想要的代理程式大小。

1. 儲存變更。

## 使用 更新 Amazon MSK 叢集代理程式大小 AWS CLI
<a name="update-broker-type-cli"></a>

執行下列命令，使用您在建立叢集時獲得的 Amazon Resource Name (ARN) 取代 {{ClusterArn}}。若您沒有叢集的 ARN，可透過列出所有叢集來找到該 ARN。如需詳細資訊，請參閱[列出 Amazon MSK 叢集](msk-list-clusters.md)。

1. 將 {{Current-Cluster-Version}} 取代為目前版本的叢集，並將 {{TargetType}} 取代為您希望代理程式成為的新大小。若要進一步了解代理程式大小，請參閱 [Amazon MSK 代理程式類型](broker-instance-types.md)。

   ```
   aws kafka update-broker-type --cluster-arn {{ClusterArn}} --current-version {{Current-Cluster-Version}} --target-instance-type {{TargetType}}
   ```

   以下是如何使用此命令的範例：

   ```
   aws kafka update-broker-type --cluster-arn "arn:aws:kafka:us-east-1:0123456789012:cluster/exampleName/abcd1234-0123-abcd-5678-1234abcd-1" --current-version "K1X5R6FKA87" --target-instance-type kafka.m5.large 
   ```

   此 命令的輸出如以下 JSON 範例所示。

   ```
   {
       "ClusterArn": "arn:aws:kafka:us-east-1:0123456789012:cluster/exampleName/abcd1234-0123-abcd-5678-1234abcd-1",
       "ClusterOperationArn": "arn:aws:kafka:us-east-1:012345678012:cluster-operation/exampleClusterName/abcdefab-1234-abcd-5678-cdef0123ab01-2/0123abcd-abcd-4f7f-1234-9876543210ef"
   }
   ```

1. 如要取得 `update-broker-type` 操作的結果，請執行下列命令，使用您在 `update-broker-type` 命令輸出中取得的 ARN 取代 {{ClusterOperationArn}}。

   ```
   aws kafka describe-cluster-operation --cluster-operation-arn {{ClusterOperationArn}}
   ```

   此 `describe-cluster-operation` 命令的輸出如以下 JSON 範例所示。

   ```
   {
     "ClusterOperationInfo": {
       "ClientRequestId": "982168a3-939f-11e9-8a62-538df00285db",
       "ClusterArn": "arn:aws:kafka:us-east-1:0123456789012:cluster/exampleName/abcd1234-0123-abcd-5678-1234abcd-1",
       "CreationTime": "2021-01-09T02:24:22.198000+00:00",
       "OperationArn": "arn:aws:kafka:us-east-1:012345678012:cluster-operation/exampleClusterName/abcdefab-1234-abcd-5678-cdef0123ab01-2/0123abcd-abcd-4f7f-1234-9876543210ef",
       "OperationState": "UPDATE_COMPLETE",
       "OperationType": "UPDATE_BROKER_TYPE",
       "SourceClusterInfo": {
         "InstanceType": "t3.small"
       },
       "TargetClusterInfo": {
         "InstanceType": "m5.large"
       }
     }
   }
   ```

   如果 `OperationState` 具有值 `UPDATE_IN_PROGRESS`，請稍候一段時間，然後再次執行 `describe-cluster-operation` 命令。

## 使用 API 更新代理程式大小
<a name="update-broker-type-api"></a>

若要使用 API 更新代理程式大小，請參閱 [UpdateBrokerType](https://docs.aws.amazon.com/msk/1.0/apireference/clusters-clusterarn-nodes-type.html#UpdateBrokerType)。

您可以使用 `UpdateBrokerType` 將叢集代理程式大小從 M5 或 T3 更新為 M7g，或從 M7g 更新為 M5。