

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# アプリケーションのアップグレードをロールバックする
<a name="rollback"></a>

アプリケーションに問題がある場合、または Flink バージョン間でアプリケーションコードに不整合がある場合は、 AWS CLI、、 AWS SDK AWS CloudFormation、または を使用してロールバックできます AWS マネジメントコンソール。次の例は、さまざまな障害シナリオでのロールバックの例を示しています。

## ランタイムのアップグレードは成功し、アプリケーションが `RUNNING` 状態だが、ジョブが失敗し、再起動を繰り返している
<a name="succeeded-restarting"></a>

米国東部 (バージニア北部) で、`TestApplication` という名前のステートフルアプリケーションを Flink 1.15 から Flink 1.18 にアップグレードしようとしているとします。しかし、アップグレードされた Flink 1.18 アプリケーションは、アプリケーションが `RUNNING` 状態であるのに、起動に失敗するか、再起動を繰り返しています。これはよくある障害シナリオです。ダウンタイムがこれ以上発生しないようにするために、アプリケーションを以前に実行していたバージョン (Flink 1.15) にすぐにロールバックし、その後で問題を診断することをお勧めします。

アプリケーションを以前の実行中のバージョンにロールバックするには、[rollback-application](https://docs.aws.amazon.com/cli/latest/reference/kinesisanalyticsv2/rollback-application.html) AWS CLI コマンドまたは [RollbackApplication](https://docs.aws.amazon.com/managed-flink/latest/apiv2/API_RollbackApplication.html) API アクションを使用します。この API アクションは、最新バージョンになった変更をロールバックします。次に、最後に成功したスナップショットを使用してアプリケーションを再起動します。

アップグレードを試みる前に、既存のアプリケーションが含まれたスナップショットを作成することを強くお勧めします。そうすることで、データ損失やデータの再処理が必要になる事態を回避できます。

この障害シナリオでは、 CloudFormation はアプリケーションをロールバックしません。CloudFormation テンプレートを更新して、以前のランタイムと以前のコードをポイントし、CloudFormation でアプリケーションを強制的に更新するようにする必要があります。そうしない場合、CloudFormation はアプリケーションが `RUNNING` 状態に移行したときに更新されていると想定します。

## `UPDATING` でスタックしているアプリケーションをロールバックする
<a name="stuck-updating"></a>

アップグレードの試行後にアプリケーションが `UPDATING`または `AUTOSCALING`状態でスタックした場合、Amazon Managed Service for Apache Flink は [rollback-applications](https://docs.aws.amazon.com/cli/latest/reference/kinesisanalyticsv2/rollback-application.html) AWS CLI コマンド、またはアプリケーションをスタック`UPDATING`または `AUTOSCALING`状態になる前のバージョンにロールバックできる [RollbackApplications](https://docs.aws.amazon.com/managed-flink/latest/apiv2/API_RollbackApplication.html) API アクションを提供します。この API は、アプリケーションが `UPDATING` 状態または過渡的な `AUTOSCALING` 状態でスタックする原因となった変更をロールバックします。