애플리케이션을 새로운 Apache Flink 버전으로 업그레이드 - Managed Service for Apache Flink

Amazon Managed Service for Apache Flink(Amazon MSF)는 이전에 Amazon Kinesis Data Analytics for Apache Flink로 알려져 있었습니다.

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

애플리케이션을 새로운 Apache Flink 버전으로 업그레이드

UpdateApplication 작업을 사용하여 Flink 애플리케이션을 업그레이드할 수 있습니다.

UpdateApplication API는 다음과 같은 여러 가지 방식으로 직접적으로 호출할 수 있습니다.

  • AWS Management 콘솔의 기존 구성 워크플로를 사용합니다.

    • AWS Management 콘솔에서 앱 페이지로 이동합니다.

    • 구성을 선택합니다.

    • 새 런타임과 복원 구성이라고도 하는 시작하려는 스냅샷을 선택합니다. 최신 스냅샷에서 앱을 시작하려면 최신 설정을 복원 구성으로 사용합니다. Amazon S3에 있는 새로 업그레이드된 애플리케이션 JAR/zip 파일을 지정합니다.

  • AWS CLI update-application 작업을 사용합니다.

  • CloudFormation(CFN)을 사용합니다.

    • RuntimeEnvironment 필드를 업데이트합니다. 이전에는 CloudFormation이 애플리케이션을 삭제한 뒤 새로 생성하여 스냅샷과 기타 앱 기록이 손실되었습니다. 이제 CloudFormation이 RuntimeEnvironment를 인플레이스 방식으로 업데이트하며 애플리케이션을 삭제하지 않습니다.

  • AWS SDK를 사용합니다.

    • 원하는 프로그래밍 언어의 SDK 설명서를 참조하세요. UpdateApplication 섹션을 참조하세요.

애플리케이션이 RUNNING 상태이거나 READY 상태로 중지된 경우 업그레이드를 수행할 수 있습니다. Amazon Managed Service for Apache Flink는 원래 런타임 버전과 대상 런타임 버전 간의 호환성을 확인하기 위해 검증을 수행합니다. 이 호환성 검사는 RUNNING 상태에서 UpdateApplication을 수행할 때 실행되며 READY 상태에서 업그레이드한 경우에는 다음 StartApplication 시점에 실행됩니다.

다음 예제는 AWS CLI를 사용하여 RUNNING 상태의 UpgradeTest 앱을 미국 동부(버지니아 북부) 리전에서 Flink 1.18로 업그레이드하고 최신 스냅샷에서 업그레이드된 앱을 시작하는 방법을 보여줍니다.

aws --region us-east-1 kinesisanalyticsv2 update-application \ --application-name UpgradeTest --runtime-environment-update "FLINK-1_18" \ --application-configuration-update '{"ApplicationCodeConfigurationUpdate": '\ '{"CodeContentUpdate": {"S3ContentLocationUpdate": '\ '{"FileKeyUpdate": "flink_1_18_app.jar"}}}}' \ --run-configuration-update '{"ApplicationRestoreConfiguration": '\ '{"ApplicationRestoreType": "RESTORE_FROM_LATEST_SNAPSHOT"}}' \ --current-application-version-id ${current_application_version}
  • 서비스 스냅샷을 활성화한 상태에서 최신 스냅샷에서 애플리케이션을 계속 실행하려는 경우 Amazon Managed Service for Apache Flink는 현재 RUNNING 애플리케이션의 런타임이 선택한 대상 런타임과 호환되는지 확인합니다.

  • 대상 런타임을 계속할 스냅샷을 지정한 경우 Amazon Managed Service for Apache Flink는 대상 런타임이 해당 스냅샷과 호환되는지 확인합니다. 호환성 검사에 실패하면 업데이트 요청이 거부되며 애플리케이션은 RUNNING 상태에서 변경되지 않습니다.

  • 스냅샷을 사용하지 않고 애플리케이션을 시작하도록 선택한 경우 Amazon Managed Service for Apache Flink는 호환성 검사를 실행하지 않습니다.

  • 업그레이드된 애플리케이션이 실패하거나 전이적 UPDATING 상태에서 멈춘 경우 정상 상태로 복구하려면 애플리케이션 업그레이드 롤백 섹션의 지침을 따르세요.

실행 중인 상태 애플리케이션의 프로세스 흐름

다음 다이어그램은 실행 중인 상태에서 애플리케이션을 업그레이드할 때 권장되는 워크플로를 나타냅니다. 애플리케이션이 상태 저장 상태이고 스냅샷을 활성화했다고 가정합니다. 이 워크플로에서는 업데이트 시 Amazon Managed Service for Apache Flink가 업데이트 전에 자동으로 생성한 최신 스냅샷에서 애플리케이션을 복원합니다.

다음 예제는 AWS CLI를 사용하여 READY 상태의 UpgradeTest 앱을 미국 동부(버지니아 북부) 리전에서 Flink 1.18로 업그레이드하는 방법을 보여줍니다. 애플리케이션이 실행되고 있지 않기 때문에 앱을 시작할 스냅샷이 지정되어 있지 않습니다. 애플리케이션 시작 요청을 보낼 때 스냅샷을 지정할 수 있습니다.

aws --region us-east-1 kinesisanalyticsv2 update-application \ --application-name UpgradeTest --runtime-environment-update "FLINK-1_18" \ --application-configuration-update '{"ApplicationCodeConfigurationUpdate": '\ '{"CodeContentUpdate": {"S3ContentLocationUpdate": '\ '{"FileKeyUpdate": "flink_1_18_app.jar"}}}}' \ --current-application-version-id ${current_application_version}
  • READY 상태에서는 애플리케이션의 런타임을 어떤 Flink 버전으로도 업데이트할 수 있습니다. Amazon Managed Service for Apache Flink는 애플리케이션이 시작되기 전까지 어떤 검사도 실행하지 않습니다.

  • Amazon Managed Service for Apache Flink는 앱 시작 시 선택한 스냅샷에 대해서만 호환성 검사를 실행합니다. 이는 Flink 호환성 표를 기반으로 수행되는 기본 호환성 검사입니다. 스냅샷이 생성된 Flink 버전과 대상 Flink 버전만 확인합니다. 선택한 스냅샷의 Flink 런타임이 앱의 새 런타임과 호환되지 않으면 시작 요청이 거부될 수 있습니다.

준비 상태 애플리케이션의 프로세스 흐름

다음 다이어그램은 준비 상태에서 애플리케이션을 업그레이드할 때 권장되는 워크플로를 나타냅니다. 애플리케이션이 상태 저장 상태이고 스냅샷을 활성화했다고 가정합니다. 이 워크플로에서는 업데이트 시 Amazon Managed Service for Apache Flink가 애플리케이션이 중단될 때 자동으로 생성한 최신 스냅샷에서 애플리케이션을 복원합니다.