Apache Flink のインプレースバージョンアップグレードを使用してアプリケーションをアップグレードする - Managed Service for Apache Flink

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

Apache Flink のインプレースバージョンアップグレードを使用してアプリケーションをアップグレードする

開始する前に、「In-Place Version Upgrades」の動画を見ることをお勧めします。

Apache Flink のインプレースバージョンアップグレードを実行するには、AWS CLI、AWS CloudFormation、AWS SDK、または AWS マネジメントコンソールを使用できます。この機能は、READY または RUNNING 状態の Managed Service for Apache Flink と組み合わせて使用する既存のアプリケーションで使用できます。UpdateApplication API を使用して、Flink ランタイムを変更する機能を追加します。

アップグレード前: Apache Flink アプリケーションを更新する

Flink アプリケーションを記述するときに、それらを依存関係とともにアプリケーション JAR にバンドルし、その JAR を Amazon S3 バケットにアップロードします。そこから、Amazon Managed Service for Apache Flink は、選択した新しい Flink ランタイムでジョブを実行します。アップグレード先の Flink ランタイムとの互換性を実現するために、アプリケーションの更新が必要になる場合があります。Flink バージョン間に不整合がある可能性があり、その場合はバージョンのアップグレードが失敗する原因になります。最も一般的には、ソース (イングレス) または送信先 (シンク、エグレス) と Scala の依存関係のコネクタを使用します。Managed Service for Apache Flink の Flink 1.15 以降のバージョンは Scala に依存しないため、JAR には使用する予定の Scala のバージョンが含まれている必要があります。

アプリケーションを更新するには

  1. 状態ありのアプリケーションのアップグレードに関する Flink コミュニティからのアドバイスをお読みください。「Upgrading Applications and Flink Versions」を参照してください。

  2. 既知の問題と制限のリストをお読みください。「アプリケーションのアップグレードに関する注意事項と既知の問題」を参照してください。

  3. 依存関係を更新し、アプリケーションをローカルでテストします。通常、これらの依存関係は次のとおりです。

    1. Flink ランタイムと API。

    2. 新しい Flink ランタイムに推奨されるコネクタ。これらは、更新する特定のランタイムのリリースバージョンで確認できます。

    3. Scala – Apache Flink は、Flink 1.15 以降は Scala に依存しません。使用する Scala の依存関係をアプリケーション JAR に含める必要があります。

  4. zip ファイルに新しいアプリケーション JAR をビルドし、Amazon S3 にアップロードします。前の JAR/zip ファイルとは異なる名前を使用することをお勧めします。ロールバックする必要がある場合は、この情報を使用します。

  5. ステートフルアプリケーションを実行している場合は、現在のアプリケーションのスナップショットを作成することを強くお勧めします。これにより、アップグレード中またはアップグレード後に問題が発生した場合に、ステートフルにロールバックできます。