環境を Managed Airflow(第 3 世代)に移行する(移行スクリプト)

Managed Airflow(Gen 3) | Managed Airflow(Gen 2) | Managed Airflow(レガシー Gen 1)

このページでは、移行スクリプトを使用して、 既存の Managed Airflow(Gen 2)環境から新しい Managed Airflow(Gen 3)環境 に DAG、データ、構成を移行する方法について説明します。

移行元 移行先 メソッド ガイド
Managed Airflow(Gen 3)、Airflow 2 マネージド Airflow(Gen 3)、Airflow 3 並列処理、手動転送 手動移行ガイド
マネージド Airflow(Gen 2) マネージド Airflow(Gen 3) 並列処理、移行スクリプトを使用 このガイド
マネージド Airflow(Gen 2) マネージド Airflow(Gen 3) 並列処理、スナップショットを使用 スナップショット移行ガイド
Managed Airflow(以前の Gen 1)、Airflow 2 マネージド Airflow(Gen 3) 並列処理、スナップショットを使用 スナップショット移行ガイド
Managed Airflow(以前の Gen 1)、Airflow 2 マネージド Airflow(Gen 2) 並列処理、スナップショットを使用 スナップショット移行ガイド
Managed Airflow(以前の Gen 1)、Airflow 2 マネージド Airflow(Gen 2) 並列処理、手動転送 手動移行ガイド
Managed Airflow(以前の Gen 1)、Airflow 1 Managed Airflow(Gen 2)、Airflow 2 並列処理、スナップショットを使用 スナップショット移行ガイド
Managed Airflow(以前の Gen 1)、Airflow 1 Managed Airflow(Gen 2)、Airflow 2 並列処理、手動転送 手動移行ガイド
Managed Airflow(以前の Gen 1)、Airflow 1 Managed Airflow(以前の Gen 1)、Airflow 2 並列処理、手動転送 手動移行ガイド

移行スクリプトについて

移行スクリプトは、並列移行用の Python スクリプトで、Managed Airflow(Gen 2)から Managed Airflow(Gen 3)への移行プロセスを自動化します。 環境のスナップショットを使用して、環境の 構成を新しい環境に転送します。

スクリプトは次の処理を行います。

  1. Managed Airflow(Gen 2)環境の構成を取得します。

  2. 取得した構成と一致する構成でマネージド Airflow(Gen 3)環境を作成します。

    マネージド Airflow(Gen 3)環境は アーキテクチャが異なるため、違いに合わせて 一部のパラメータが調整されることがあります。環境のほとんどのパラメータは後で調整することもできます。

  3. マネージド Airflow(Gen 2)環境内のすべての DAG を 1 つずつ一時停止します。後で一時停止が解除されるのは、マネージド Airflow(Gen 2)環境で一時停止が解除された DAG のみです。

  4. 移行元の Managed Airflow(Gen 2)環境のスナップショットを保存します。スナップショットは、スナップショットのデフォルトの場所である Managed Airflow(Gen 2)環境のバケットに保存されます。

  5. スナップショットを Managed Airflow(Gen 3)環境に読み込みます。

    スクリプトは、カスタム PyPI パッケージ、環境変数、Airflow 構成オプションのオーバーライドと Managed Airflow(Gen 3)環境との互換性を確認しません。

    競合が発生した場合、スナップショットの読み込み中にマネージド Airflow(Gen 3)環境が作成された後に移行が失敗します。この場合、Managed Airflow(Gen 2)環境の構成を調整して競合を解決するか、 移行スクリプトを使用せずに移行し、 スナップショットの読み込み時にカスタム PyPI パッケージ、環境変数、 Airflow 構成のオーバーライドの読み込みをスキップします。

  6. Managed Airflow(第 3 世代)環境で DAG の一時停止を解除します。スクリプトを実行する前に一部の DAG が一時停止していた場合、それらは一時停止したままになります。

スクリプトには次の制限があります。

  • スクリプトは常に新しい Managed Airflow(Gen 3)環境を作成します。既存の Managed Airflow(Gen 3)環境にスナップショットを読み込むことはできません。これを行うには、移行スクリプトを使用せずにスナップショットを使用して 移行します

  • スクリプトは、Managed Airflow(Gen 2)環境と同じリージョンとプロジェクトにのみ Managed Airflow(Gen 3)環境を作成します。

  • スナップショットの読み込みは、同じバージョンまたはそれ以降のバージョンの Airflow に対してのみ実行できます。たとえば、Airflow 2.10.2 から Airflow 2.9.3 にスナップショットを読み込むことはできません。

  • 移行スクリプトを使用して移行できるのは、Managed Airflow(Gen 2)環境のみです。

始める前に

  • 移行スクリプトは環境を作成し、スナップショットを保存して読み込むため、移行プロセスに 1 時間以上かかることがあります。

  • スクリプトはスナップショットを使用します。スナップショットは、

  • マネージド Airflow(Gen 2)バージョン 2.0.9 以降でサポートされています。

  • アカウントには、環境の作成、スナップショットの保存、スナップショットの読み込みができる IAM ロールが必要です。

  • スナップショットをサポートする Airflow データベースの最大サイズは 20 GB です。環境のデータベースが 20 GB を超える場合は、Airflow データベースのサイズを縮小します。

  • スナップショットを作成するには、環境のバケット内の /dags/plugins/data フォルダ内のオブジェクトの合計数が 100,000 未満にする必要があります。

  • XCom メカニズムを使用してファイルを転送する場合は、Airflow のガイドラインに従って使用するようにしてください。XCom を使用して大きなファイルや大量のファイルを転送すると、Airflow データベースのパフォーマンスに影響し、スナップショットの読み込みや環境のアップグレード時に障害が発生する可能性があります。大量のデータを転送するには、Cloud Storage などの代替手段の使用を検討してください。

マネージド Airflow(Gen 3)に移行する

このセクションでは、移行スクリプトを使用した移行プロセスについて説明します。

マネージド Airflow(Gen 2)とマネージド Airflow(Gen 3)の違いを確認する

違いのリストを確認します マネージド Airflow (Gen 2)とマネージド Airflow (Gen 3)の間の

環境で Managed Airflow(Gen 3)でまだ利用できない機能が使用されていないこと、Managed Airflow(Gen 3)固有の機能の使用方法と構成を理解していることを確認します。

DAG が Managed Airflow(Gen 3)と互換性があることを確認する

次の推奨事項に沿って、DAG が Managed Airflow(Gen 3)と互換性があることを確認します。

  • マネージド Airflow(Gen 3)環境のパッケージのリストは、マネージド Airflow(Gen 2)環境のリストと異なる場合があります。これが、DAG と Managed Airflow(Gen 3)の互換性に影響する可能性があります。

  • マネージド Airflow(Gen 3)では、環境のクラスタ はテナント プロジェクトに配置されています。DAG がこの変更と互換性があることを確認してください。特に、 KubernetesPodOperator ワークロードは 環境から独立してスケーリングされるようになり、また、Pod アフィニティ構成を使用できなくなりました。

構成の互換性を確認する

アップグレード チェックを実行して、 Managed Airflow(Gen 2)環境の構成が Managed Airflow(Gen 3)と互換性があるかどうかを確認できます。移行を開始する前に、このチェックで報告されたすべてのブロッキング競合を解決することをおすすめします。

スクリプトの依存関係をインストールする

  • スクリプトには Python バージョン 3.8 以降が必要です。

  • 移行スクリプトは、gcloud CLI と curl ユーティリティを使用します。両方のユーティリティがパソコンにインストールされていることを確認してください。

スクリプトをダウンロードする

GitHub のリポジトリから移行スクリプト(composer_migrate.py)をダウンロードします。

gcloud CLI で承認する

gcloud CLI で承認します。

gcloud auth login

新しい環境のパラメータをプレビューする

移行する前に、Managed Airflow(Gen 3)環境のパラメータをプレビューできます。これを使用して、Managed Airflow(Gen 2)環境の構成が Managed Airflow(Gen 3)にどのように対応するかを確認できます。

Airflow 構成オプションのオーバーライド、カスタム PyPI パッケージ、環境変数は環境のスナップショットから読み込まれ、プレビューには表示されません。

展開

次のコマンドを実行します。

python3 composer_migrate.py \
    --project PROJECT_ID \
    --location LOCATION \
    --source_environment COMPOSER_2_ENV \
    --target_environment COMPOSER_3_ENV \
    --target_airflow_version COMPOSER_3_AIRFLOW_VERSION \
    --dry_run

次のように置き換えます。

  • PROJECT_ID: プロジェクト ID
  • COMPOSER_2_ENV: マネージド Airflow(Gen 2)環境の名前。
  • LOCATION: Managed Airflow(Gen 2)環境が配置されているリージョン。Managed Airflow(Gen 3)環境は同じリージョンに作成されます。
  • COMPOSER_3_AIRFLOW_VERSION: Managed Airflow(Gen 3)環境の Airflow のバージョン。このバージョンは、 マネージド Airflow(Gen 2)環境と同じバージョンまたはそれ以降のバージョンである必要があり、Managed Airflow(Gen 3)で使用可能な バージョンのいずれかである必要があります。

例:

python3 composer_migrate.py \
    --project example-project \
    --location us-central1 \
    --source_environment example-composer-2-environment \
    --target_environment example-composer-3-environment \
    --target_airflow_version 2.10.2

環境の健全性を確認する

移行する Managed Airflow(Gen 2)環境が正常であることを確認します。

環境が正常でない場合、スナップショットを作成できないため、新しいマネージド Airflow(Gen 3)環境の作成後に移行プロセスが失敗します。

環境の健全性とデータベースの健全性を確認する方法について詳しくは、モニタリング ダッシュボードを使用するをご覧ください。

移行スクリプトを実行する

次のコマンドを実行します。

python3 composer_migrate.py \
    --project PROJECT_ID \
    --location LOCATION \
    --source_environment COMPOSER_2_ENV \
    --target_environment COMPOSER_3_ENV \
    --target_airflow_version COMPOSER_3_AIRFLOW_VERSION

次のように置き換えます。

  • PROJECT_ID: プロジェクト ID
  • COMPOSER_2_ENV: マネージド Airflow(Gen 2)環境の名前。
  • LOCATION: Managed Airflow(Gen 2)環境が配置されているリージョン。Managed Airflow(Gen 3)環境は同じリージョンに作成されます。
  • COMPOSER_3_AIRFLOW_VERSION: Managed Airflow(Gen 3)環境の Airflow のバージョン。このバージョンは、 マネージド Airflow(Gen 2)環境と同じバージョンまたはそれ以降のバージョンである必要があり、Managed Airflow(Gen 3)で使用可能な バージョンのいずれかである必要があります。

DAG エラーを確認する

  1. Airflow ウェブ インターフェースで、[DAG] に移動し、報告された DAG 構文エラーを確認します。

  2. DAG 実行が正しい時間にスケジュール設定されていることを確認します。

  3. マネージド Airflow(Gen 3)環境で DAG の実行が発生するのを待ち、成功したかどうかを確認します。DAG の実行が成功した場合は、Managed Airflow(Gen 2)環境で一時停止を解除しないでください。解除すると、Managed Airflow(Gen 2)環境で同じ日時に DAG が実行されます。

  4. 特定の DAG の実行が失敗した場合は、 DAG のトラブルシューティングを Managed Airflow(Gen 3)で正常に 実行されるまで行います。

Managed Airflow(Gen 3)環境をモニタリングする

マネージド Airflow(Gen 3)環境で、潜在的な問題、失敗した DAG 実行、環境全体の健全性をモニタリングします。

マネージド Airflow(Gen 3)環境が、十分な時間、問題なく動作している場合は、マネージド Airflow(Gen 2)環境の削除を検討してください。

次のステップ