Amazon Managed Streaming for Apache Kafka(Amazon MSK) 클러스터를 업그레이드할 때 문제를 해결해야 합니다.
해결 방법
참고: AWS Command Line Interface(AWS CLI) 명령을 실행할 때 오류가 발생하면 AWS CLI의 오류 해결을 참조하십시오. 또한 최신 AWS CLI 버전을 사용하고 있는지 확인하십시오.
고려 사항 및 모범 사례
Amazon MSK 클러스터를 업그레이드하기 전에 다음 모범 사례를 검토하십시오.
-
클러스터의 복제 인수를 3 이상으로 설정합니다. 복제 인수가 1이면 롤링 업데이트 중에 오프라인 파티션이 발생할 수 있습니다. 복제 인수가 2이면 데이터가 손실될 수 있습니다.
-
최소 동기화 복제본(minISR)을 복제 인수 - 1 이하의 값으로 설정합니다. minISR 값이 복제 인수와 같으면 롤링 업데이트 중에 클러스터 프로덕션이 차단될 수 있습니다. minISR이 2이면 하나의 복제본이 오프라인 상태일 때 3방향으로 복제된 주제를 사용할 수 있습니다.
-
클러스터 구성을 업데이트하기 전에 클러스터가 활성 상태인지 확인합니다.
-
새 Amazon MSK 클러스터를 만들 때는 권장 Apache Kafka 버전을 사용합니다.
-
클라이언트 문자열에 각 가용 영역의 브로커를 하나 이상 포함합니다. 클라이언트의 연결 문자열에 여러 브로커가 있으면 특정 브로커가 업데이트를 위해 오프라인 상태가 될 때 장애 조치할 수 있습니다.
-
주제 관리에는 Apache Kafka AdminClient 버전 2.8.0 이상을 사용합니다.
-
연결 클라이언트를 권장 버전 이상으로 업그레이드합니다. 클라이언트 업그레이드에는 Amazon MSK 클러스터 Kafka 버전의 수명 종료(EOL) 날짜가 적용되지 않습니다.
참고: Apache Kafka는 양방향 클라이언트 호환성 정책을 제공합니다. 이를 통해 이전 클라이언트는 새 클러스터에서 작동하고 새 클라이언트는 이전 클러스터에서 작동할 수 있습니다. 자세한 내용은 Apache Kafka 웹 사이트에서 호환성을 참조하십시오.
-
트래픽이 적은 시간에 클러스터를 업그레이드합니다. Apache Kafka 버전을 업그레이드하는 데 필요한 시간은 클러스터의 브로커 수에 따라 다릅니다.
참고: 클러스터 버전을 업그레이드하면 버전 업그레이드가 완료될 때까지 다른 업데이트를 수행할 수 없습니다. 그러나 업그레이드 중에도 클러스터에서 생성하고 사용할 수 있습니다.
참고: 인스턴스 유형을 업데이트할 때 클러스터 버전은 자동으로 업그레이드되지 않습니다.
자세한 내용은 버전 업그레이드 모범 사례를 참조하십시오.
업그레이드 모니터링
Amazon MSK 클러스터를 만들 때 클러스터에 필요한 Apache Kafka 버전을 지정할 수 있습니다. 클러스터를 만든 후 최신 버전의 Apache Kafka로 클러스터를 업데이트할 수도 있습니다.
Amazon MSK 콘솔의 클러스터 작업 탭에서 업데이트 진행 상황을 모니터링할 수 있습니다. 업그레이드가 **17%**에 도달하면 업그레이드가 완료되는 데 몇 시간이 걸릴 수 있습니다.
참고: Amazon MSK는 롤링 재시작 프로세스에서 업그레이드를 수행합니다. Amazon MSK는 한 번에 하나의 브로커를 클러스터에서 제거하고 Kafka 버전을 업그레이드합니다. 업그레이드된 브로커가 클러스터에 다시 연결되고 Amazon MSK가 다음 브로커를 제거합니다. 이 프로세스는 Amazon MSK가 마지막 브로커를 새 Kafka 버전으로 업그레이드할 때까지 계속됩니다.
클러스터의 업그레이드 진행 상황을 모니터링하려면 AWS CLI를 통해 describe-cluster-operations 명령을 실행합니다.
aws kafka describe-cluster-operation —cluster-operation-arn ClusterOperationArn
작업이 미완료 또는 실패 상태인 경우 AWS Support에 문의하십시오.
오류 해결
브로커의 파티션 작업은 많은 양의 시스템 리소스를 사용합니다. 파티션 수가 권장 제한보다 많으면 클러스터에서 사용 가능한 리소스에 부담을 줄 수 있습니다. 클러스터 리소스에 부담이 가중되면 클러스터 구성, 클러스터의 Apache Kafka 버전을 업데이트하거나 클러스터를 더 작은 브로커 유형으로 업데이트할 수 없습니다. 브로커당 파티션 수가 권장 값을 초과하면 다음 오류 중 하나가 발생합니다.
"Error updating cluster configuration There was a problem updating cluster configuration. If the problem persists, contact AWS Support. The number of partitions per broker is above the recommended limit. Add more brokers and rearrange the partitions per broker to be below the recommended limit, then retry the request."
-또는-
"Upgrade is stuck in the stage 'Initializing upgrade'"
위 오류를 해결하려면 다음 작업을 수행하십시오.