이전 KCL 버전으로 롤백 - Amazon Kinesis Data Streams

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

이전 KCL 버전으로 롤백

이 주제에서는 소비자를 이전 버전으로 롤백하는 단계를 설명합니다. 롤백해야 하는 경우 2단계 프로세스가 있습니다.

  1. KCL 마이그레이션 도구 를 실행합니다.

  2. 이전 KCL 버전 코드를 재배포합니다(선택 사항).

1단계: KCL 마이그레이션 도구 실행

이전 KCL 버전으로 롤백해야 하는 경우 KCL 마이그레이션 도구를 실행해야 합니다. KCL 마이그레이션 도구는 두 가지 중요한 작업을 수행합니다.

  • DynamoDB 의 임대 테이블에서 작업자 지표 테이블 및 글로벌 보조 인덱스라는 메타데이터 테이블을 제거합니다. 이 두 아티팩트는 KCL 3.x에서 생성되지만 이전 버전으로 롤백할 때는 필요하지 않습니다.

  • 모든 작업자가 KCL 2.x와 호환되는 모드에서 실행하고 이전 KCL 버전에서 사용되는 로드 밸런싱 알고리즘을 사용하기 시작합니다. KCL 3.x의 새 로드 밸런싱 알고리즘에 문제가 있는 경우 문제를 즉시 완화합니다.

중요

DynamoDB의 조정자 상태 테이블이 있어야 하며 마이그레이션, 롤백 및 롤포워드 프로세스 중에 삭제해서는 안 됩니다.

참고

소비자 애플리케이션의 모든 작업자가 지정된 시간에 동일한 로드 밸런싱 알고리즘을 사용하는 것이 중요합니다. KCL Migration Tool을 사용하면 KCL 3.x 소비자 애플리케이션의 모든 작업자가 KCL 2.x 호환 모드로 전환하여 롤링 결제 중에 모든 작업자가 이전 KCL 버전으로 동일한 로드 밸런싱 알고리즘을 실행할 수 있습니다.

KCL GitHub 리포지토리 의 스크립트 디렉터리에서 KCL 마이그레이션 도구를 다운로드할 수 있습니다. 스크립트는 코디네이터 상태 테이블에 쓰고, 작업자 지표 테이블을 삭제하고, 임대 테이블을 업데이트하는 데 필요한 권한이 있는 작업자 또는 호스트에서 실행할 수 있습니다. 스크립트를 실행하는 데 IAM KCL 소비자 애플리케이션에 필요한 권한 필요한 IAM 권한은 섹션을 참조하세요. 스크립트는 KCL 애플리케이션당 한 번만 실행해야 합니다. 다음 명령을 사용하여 KCL 마이그레이션 도구를 실행할 수 있습니다.

python3 ./KclMigrationTool.py --region <region> --mode rollback [--application_name <applicationName>] [--lease_table_name <leaseTableName>] [--coordinator_state_table_name <coordinatorStateTableName>] [--worker_metrics_table_name <workerMetricsTableName>]

Parameters

  • --region: 를 <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 버전의 코드를 작업자에게 재배포합니다.