이전 KCL 버전으로 롤백
이 주제에서는 소비자를 이전 버전으로 롤백하는 단계를 설명합니다. 롤백해야 하는 경우 2단계 프로세스는 다음과 같습니다.
-
KCL 마이그레이션 도구
를 실행합니다. -
이전 KCL 버전 코드를 재배포합니다(선택 사항).
1단계: KCL 마이그레이션 도구 실행
이전 KCL 버전으로 롤백해야 하는 경우 KCL 마이그레이션 도구를 실행해야 합니다. KCL 마이그레이션 도구는 두 가지 중요한 작업을 수행합니다.
-
DynamoDB의 리스 테이블에서 워커 지표 테이블이라고 하는 메타데이터 테이블과 글로벌 보조 인덱스를 제거합니다. 이러한 두 아티팩트는 KCL 3.x에서 생성되지만 이전 버전으로 롤백하는 경우 필요하지 않습니다.
모든 워커가 KCL 2.x와 호환되는 모드로 실행되고 이전 KCL 버전에서 사용된 로드 밸런싱 알고리즘을 사용하도록 합니다. KCL 3.x의 새 로드 밸런싱 알고리즘에 문제가 있는 경우 해당 문제를 즉시 완화합니다.
중요
DynamoDB의 조정자 상태 테이블은 반드시 존재해야 하며 마이그레이션, 롤백, 롤포워드 프로세스 중에 삭제되어서는 안 됩니다.
참고
소비자 애플리케이션의 모든 워커가 지정된 시간에 동일한 로드 밸런싱 알고리즘을 사용하는 것이 중요합니다. KCL 마이그레이션 도구를 사용하면 KCL 3.x 소비자 애플리케이션의 모든 워커가 KCL 2.x 호환 모드로 전환되므로 이전 KCL 버전으로 배포를 롤백하는 동안 모든 워커가 동일한 로드 밸런싱 알고리즘을 실행하게 됩니다.
KCL GitHub 리포지토리
python3 ./KclMigrationTool.py --region <region> --mode rollback [--application_name <applicationName>] [--lease_table_name <leaseTableName>] [--coordinator_state_table_name <coordinatorStateTableName>] [--worker_metrics_table_name <workerMetricsTableName>]
파라미터
-
--리전:
<region>을 해당 AWS 리전으로 바꿉니다. -
--application_name: 이 파라미터는 DynamoDB 메타데이터 테이블(리스 테이블, 조정자 상태 테이블, 워커 지표 테이블)의 기본 이름을 사용하는 경우 필요합니다. 이러한 테이블에 사용자 지정 이름을 지정한 경우 이 파라미터를 생략할 수 있습니다.
<applicationName>을 실제 KCL 애플리케이션 이름으로 바꿉니다. 이 도구는 사용자 지정 이름이 제공되지 않은 경우 이 이름을 사용하여 기본 테이블 이름을 파생합니다. -
--lease_table_name(선택 사항): 이 파라미터는 KCL 구성에서 리스 테이블에 사용자 지정 이름을 설정한 경우에 필요합니다. 기본 테이블 이름을 사용하는 경우 이 파라미터를 생략할 수 있습니다.
leaseTableName을 리스 테이블에 지정한 사용자 지정 테이블 이름으로 바꿉니다. -
--coordinator_state_table_name(선택 사항): 이 파라미터는 KCL 구성에서 조정자 상태 테이블에 사용자 지정 이름을 설정한 경우에 필요합니다. 기본 테이블 이름을 사용하는 경우 이 파라미터를 생략할 수 있습니다.
<coordinatorStateTableName>을 조정자 상태 테이블에 지정한 사용자 지정 테이블 이름으로 바꿉니다. -
--worker_metrics_table_name(선택 사항): 이 파라미터는 KCL 구성에서 워커 지표 테이블에 사용자 지정 이름을 설정한 경우에 필요합니다. 기본 테이블 이름을 사용하는 경우 이 파라미터를 생략할 수 있습니다.
<workerMetricsTableName>을 워커 지표 테이블에 지정한 사용자 지정 테이블 이름으로 바꿉니다.
2단계: 이전 KCL 버전으로 코드 재배포(선택 사항)
롤백을 위해 KCL 마이그레이션 도구를 실행하면 다음 메시지 중 하나가 표시됩니다.
-
메시지 1: “롤백이 완료되었습니다. KCL 애플리케이션이 KCL 2.x 호환 모드로 실행되고 있었습니다. 회귀 문제가 완화되지 않는다면 이전 KCL 버전의 코드를 재배포하여 이전 애플리케이션 바이너리로 롤백하세요.”
-
필요한 작업: 이는 워커가 KCL 2.x 호환 모드로 실행 중이었음을 의미합니다. 문제가 지속되면 이전 KCL 버전으로 워커에 코드를 재배포합니다.
-
-
메시지 2: “롤백이 완료되었습니다. KCL 애플리케이션이 KCL 3.x 기능 모드로 실행되고 있었습니다. 문제가 5분 이내에 완화되지 않는 경우를 제외하고 이전 애플리케이션 바이너리로 롤백할 필요가 없습니다. 문제가 지속되면 이전 KCL 버전의 코드를 재배포하여 이전 애플리케이션 바이너리로 롤백하세요.”
-
필요한 작업: 이는 워커가 KCL 3.x 모드로 실행 중이었고 KCL 마이그레이션 도구가 모든 워커를 KCL 2.x 호환 모드로 전환했음을 의미합니다. 문제가 해결되면 이전 KCL 버전으로 코드를 재배포할 필요가 없습니다. 문제가 지속되면 이전 KCL 버전으로 워커에 코드를 재배포합니다.
-