

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

# 애플리케이션을 새로운 Apache Flink 버전으로 업그레이드
<a name="upgrading-application-new-version"></a>

[UpdateApplication](https://docs.aws.amazon.com/managed-flink/latest/apiv2/API_UpdateApplication.html) 작업을 사용하여 Flink 애플리케이션을 업그레이드할 수 있습니다.

`UpdateApplication` API는 다음과 같은 여러 가지 방식으로 직접적으로 호출할 수 있습니다.
+  AWS Management Console의 기존 **구성** 워크플로를 사용합니다.
  +  AWS Management Console에서 앱 페이지로 이동합니다.
  + **구성**을 선택합니다.
  + 새 런타임과 복원 구성이라고도 하는 시작하려는 스냅샷을 선택합니다. 최신 스냅샷에서 앱을 시작하려면 최신 설정을 복원 구성으로 사용합니다. Amazon S3에 있는 새로 업그레이드된 애플리케이션 JAR/zip 파일을 지정합니다.
+ the AWS CLI [update-application](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/kinesisanalyticsv2/update-application.html) 작업을 사용합니다.
+  CloudFormation (CFN)을 사용합니다.
  + [RuntimeEnvironment](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kinesisanalyticsv2-application.html#cfn-kinesisanalyticsv2-application-runtimeenvironment) 필드를 업데이트합니다. 이전에는에서 애플리케이션을 CloudFormation 삭제하고 새 애플리케이션을 생성하여 스냅샷 및 기타 앱 기록이 손실되었습니다. 이제 RuntimeEnvironment CloudFormation 를 업데이트하고 애플리케이션을 삭제하지 않습니다.
+  AWS SDK를 사용합니다.
  + 원하는 프로그래밍 언어의 SDK 설명서를 참조하세요. [UpdateApplication](https://docs.aws.amazon.com/managed-flink/latest/apiv2/API_UpdateApplication.html) 섹션을 참조하세요.

애플리케이션이 `RUNNING` 상태이거나 `READY` 상태로 중지된 경우 업그레이드를 수행할 수 있습니다. Amazon Managed Service for Apache Flink는 원래 런타임 버전과 대상 런타임 버전 간의 호환성을 확인하기 위해 검증을 수행합니다. 이 호환성 검사는 `RUNNING` 상태에서 [UpdateApplication](https://docs.aws.amazon.com/managed-flink/latest/apiv2/API_UpdateApplication.html)을 수행할 때 실행되며 `READY` 상태에서 업그레이드한 경우에는 다음 [StartApplication](https://docs.aws.amazon.com/managed-flink/latest/apiv2/API_StartApplication.html) 시점에 실행됩니다.

## `RUNNING` 상태에서 애플리케이션 업그레이드
<a name="upgrading-running"></a>

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

```
            
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` 상태에서 멈춘 경우 정상 상태로 복구하려면 [애플리케이션 업그레이드 롤백](rollback.md) 섹션의 지침을 따르세요.

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

![\[다음 다이어그램은 실행 중인 상태에서 애플리케이션을 업그레이드할 때 권장되는 워크플로를 나타냅니다. 애플리케이션이 상태 저장 상태이고 스냅샷을 활성화했다고 가정합니다. 이 워크플로에서는 업데이트 시 Amazon Managed Service for Apache Flink가 업데이트 전에 자동으로 생성한 최신 스냅샷에서 애플리케이션을 복원합니다.\]](http://docs.aws.amazon.com/ko_kr/managed-flink/latest/java/images/in-place-update-while-running.png)


## **READY** 상태에서 애플리케이션 업그레이드
<a name="upgrading-ready"></a>

다음 예제는 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 호환성 표](https://nightlies.apache.org/flink/flink-docs-master/docs/ops/upgrading/#compatibility-table)를 기반으로 수행되는 기본 호환성 검사입니다. 스냅샷이 생성된 Flink 버전과 대상 Flink 버전만 확인합니다. 선택한 스냅샷의 Flink 런타임이 앱의 새 런타임과 호환되지 않으면 시작 요청이 거부될 수 있습니다.

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

![\[다음 다이어그램은 준비 상태에서 애플리케이션을 업그레이드할 때 권장되는 워크플로를 나타냅니다. 애플리케이션이 상태 저장 상태이고 스냅샷을 활성화했다고 가정합니다. 이 워크플로에서는 업데이트 시 Amazon Managed Service for Apache Flink가 애플리케이션이 중단될 때 자동으로 생성한 최신 스냅샷에서 애플리케이션을 복원합니다.\]](http://docs.aws.amazon.com/ko_kr/managed-flink/latest/java/images/in-place-update-while-ready.png)
