アプリケーションのアップグレードをロールバックする - Managed Service for Apache Flink

Amazon Managed Service for Apache Flink (Amazon MSF) は、以前は Amazon Kinesis Data Analytics for Apache Flink と呼ばれていました。

アプリケーションのアップグレードをロールバックする

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

ランタイムのアップグレードは成功し、アプリケーションが RUNNING 状態だが、ジョブが失敗し、再起動を繰り返している

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

アプリケーションを以前に実行していたバージョンにロールバックするには、rollback-application AWS CLI コマンドまたは RollbackApplication API アクションを使用します。この API アクションは、最新バージョンになった変更をロールバックします。次に、最後に成功したスナップショットを使用してアプリケーションを再起動します。

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

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

UPDATING でスタックしているアプリケーションをロールバックする

アップグレードの試行後にアプリケーションが UPDATING または AUTOSCALING 状態でスタックした場合、Amazon Managed Service for Apache Flink はアプリケーションをスタックした UPDATING または AUTOSCALING 状態になる前のバージョンにロールバックできる rollback-applications AWS CLI コマンド、または RollbackApplications API アクションを提供しています。この API は、アプリケーションが UPDATING 状態または過渡的な AUTOSCALING 状態でスタックする原因となった変更をロールバックします。