

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

# Apache Kafka 버전 업그레이드
<a name="version-upgrades"></a>

기존 MSK 클러스터를 최신 버전의 Apache Kafka로 업그레이드할 수 있습니다. 클러스터의 Kafka 버전을 업그레이드하기 전에 클라이언트 측 소프트웨어 버전이 새 Kafka 버전의 기능을 지원하는지 확인합니다.

업그레이드 중에 클러스터를 고가용성으로 만드는 방법에 대한 자세한 내용은 [고가용성 클러스터 빌드](bestpractices.md#ensure-high-availability) 섹션을 참조하세요.

**를 사용하여 Apache Kafka 버전 업그레이드 AWS Management Console**

1. [https://console.aws.amazon.com/msk/](https://console.aws.amazon.com/msk/)에서 Amazon MSK 콘솔을 엽니다.

1. 탐색 모음에서 MSK 클러스터를 생성한 리전을 선택합니다.

1. 업그레이드하려는 MSK 클러스터를 선택합니다.

1. **속성** 탭의 **Apache Kafka 버전** 섹션에서 **업그레이드**를 선택합니다.

1. **Apache Kafka 버전** 섹션에서 다음을 수행합니다.

   1. *Apache Kafka 버전 선택* 드롭다운 목록에서 업그레이드할 대상 버전을 선택합니다. 예를 들어 **3.9.x**를 선택합니다.

   1. (선택 사항) **버전 호환성 보기**를 선택하여 클러스터의 현재 버전과 사용 가능한 업그레이드 버전 간의 호환성을 확인합니다. 그런 다음 **선택**을 선택하여 계속 진행합니다.
**참고**  
Amazon MSK는 대부분의 Apache Kafka 버전으로의 현재 위치 업그레이드를 지원합니다. 그러나 ZooKeeper 기반 Kafka 버전에서 KRaft 기반 버전으로 업그레이드할 때는 새 클러스터를 생성해야 합니다. 그런 다음 데이터를 새 클러스터에 복사하고 클라이언트를 새 클러스터로 전환합니다.

   1. (선택 사항) **클러스터 구성 업데이트** 확인란을 선택하여 새 버전과 호환되는 구성 업데이트를 적용합니다. 이렇게 하면 새 버전의 기능과 개선 사항이 활성화됩니다.

      기존 사용자 지정 구성을 유지 관리해야 하는 경우 이 단계를 건너뛸 수 있습니다.
**참고**  
서버 측 업그레이드는 클라이언트 애플리케이션을 자동으로 업데이트하지 않습니다.
클러스터 안정성을 유지하기 위해 버전 다운그레이드는 지원되지 않습니다.

   1. **업그레이드**를 선택하여 프로세스를 시작합니다.

**를 사용하여 Apache Kafka 버전 업그레이드 AWS CLI**

1. 다음 명령을 실행하여 *ClusterArn*을 클러스터 생성 후 받은 Amazon 리소스 이름(ARN)으로 바꿉니다. 클러스터에 대한 ARN이 없는 경우, 모든 클러스터를 나열하여 찾을 수 있습니다. 자세한 내용은 [Amazon MSK 클러스터 나열](msk-list-clusters.md) 단원을 참조하십시오.

   ```
   aws kafka get-compatible-kafka-versions --cluster-arn ClusterArn
   ```

   이 명령의 출력에는 클러스터를 업그레이드할 수 있는 Apache Kafka 버전 목록이 포함되어 있습니다. 다음 예제와 같습니다.

   ```
   {
       "CompatibleKafkaVersions": [
           {
               "SourceVersion": "2.2.1",
               "TargetVersions": [
                   "2.3.1",
                   "2.4.1",
                   "2.4.1.1",
                   "2.5.1"
               ]
           }
       ]
   }
   ```

1. 다음 명령을 실행하여 *ClusterArn*을 클러스터 생성 후 받은 Amazon 리소스 이름(ARN)으로 바꿉니다. 클러스터에 대한 ARN이 없는 경우, 모든 클러스터를 나열하여 찾을 수 있습니다. 자세한 내용은 [Amazon MSK 클러스터 나열](msk-list-clusters.md) 단원을 참조하십시오.

   *Current-Cluster-Version*을 클러스터의 현재 버전으로 바꿉니다. *TargetVersion*의 경우 이전 명령의 출력에서 대상 버전을 지정할 수 있습니다.
**중요**  
클러스터 버전은 단순한 정수가 아닙니다. 클러스터의 현재 버전을 찾으려면 [DescribeCluster](https://docs.aws.amazon.com/msk/1.0/apireference/clusters-clusterarn.html#DescribeCluster) 작업 또는 [describe-cluster](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/kafka/describe-cluster.html) AWS CLI 명령을 사용합니다. 버전의 예를 들면 `KTVPDKIKX0DER`입니다.

   ```
   aws kafka update-cluster-kafka-version --cluster-arn ClusterArn --current-version Current-Cluster-Version --target-kafka-version TargetVersion
   ```

   이전 명령의 출력은 다음 JSON과 같습니다.

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

1. `update-cluster-kafka-version` 작업 결과를 가져오려면 다음 명령을 실행하여 *ClusterOperationArn*을 `update-cluster-kafka-version` 명령의 출력에서 가져온 ARN으로 바꿉니다.

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

   이 `describe-cluster-operation` 명령의 출력은 다음 JSON 예제와 같습니다.

   ```
   {
       "ClusterOperationInfo": {
           "ClientRequestId": "62cd41d2-1206-4ebf-85a8-dbb2ba0fe259",
           "ClusterArn": "arn:aws:kafka:us-east-1:012345678012:cluster/exampleClusterName/abcdefab-1234-abcd-5678-cdef0123ab01-2",
           "CreationTime": "2021-03-11T20:34:59.648000+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_IN_PROGRESS",
           "OperationSteps": [
               {
                   "StepInfo": {
                       "StepStatus": "IN_PROGRESS"
                   },
                   "StepName": "INITIALIZE_UPDATE"
               },
               {
                   "StepInfo": {
                       "StepStatus": "PENDING"
                   },
                   "StepName": "UPDATE_APACHE_KAFKA_BINARIES"
               },
               {
                   "StepInfo": {
                       "StepStatus": "PENDING"
                   },
                   "StepName": "FINALIZE_UPDATE"
               }
           ],
           "OperationType": "UPDATE_CLUSTER_KAFKA_VERSION",
           "SourceClusterInfo": {
               "KafkaVersion": "2.4.1"
           },
           "TargetClusterInfo": {
               "KafkaVersion": "2.6.1"
           }
       }
   }
   ```

   `OperationState` 값이 `UPDATE_IN_PROGRESS`인 경우, 잠시 기다린 다음 `describe-cluster-operation` 명령을 다시 실행합니다. 작업이 완료되면 `OperationState`의 값이 `UPDATE_COMPLETE`가 됩니다. Amazon MSK가 작업을 완료하는 데 걸리는 시간은 다양하므로 작업이 완료될 때까지 반복해서 확인해야 할 수 있습니다.

**API를 사용하여 Apache Kafka 버전 업그레이드**

1. 클러스터를 업그레이드할 수 있는 Apache Kafka 버전 목록을 가져오려면 [GetCompatibleKafkaVersions](https://docs.aws.amazon.com//msk/1.0/apireference/compatible-kafka-versions.html#GetCompatibleKafkaVersions) 작업을 호출합니다.

1. 호환되는 Apache Kafka 버전 중 하나에 클러스터를 업그레이드하려면 [UpdateClusterKafkaVersion](https://docs.aws.amazon.com//msk/1.0/apireference/clusters-clusterarn-version.html#UpdateClusterKafkaVersion) 작업을 호출합니다.