本日、AWS は、次のインプレース バージョン アップグレードが利用可能になったことを発表します。 ApacheAirflowのAmazonマネージドワークフロー (アマゾンMWAA)。 この機能強化により、ワークフローの実行履歴と環境構成を保持しながら、既存の Apache Airflow バージョン 2.x 環境を利用可能な新しいバージョンにシームレスにアップグレードできるようになります。 まったく新しい Amazon MWAA 環境を作成しなくても、Apache Airflow プラットフォームの最新機能を利用できるようになりました。
これまで、Amazon MWAA 環境を別の Apache Airflow バージョンにアップグレードする場合は、次の手順に従う必要がありました。 Amazon MWAA 環境の移行 手順。 これには、新しい Amazon MWAA 環境を作成し、すべての設定を移行する必要がありました。 有向非巡回グラフ (DAG)それに。 DAG 実行の履歴も保存する必要がある場合は、メタデータ データベースのバックアップを作成し、そのバックアップを新しく作成した環境に復元する必要がありました。 このプロセスはエラーが発生しやすく手動であり、新しいものを検証して古いものを廃止できるまで XNUMX つの別々の Amazon MWAA 環境を維持するための追加コストがかかりました。
この投稿では、インプレース バージョン アップグレード機能の概要を示し、適用可能な使用例を検討し、使用手順を詳しく説明し、その機能に関する追加のガイダンスを提供します。
ソリューションの概要
Amazon MWAA によって新たに導入されたインプレース バージョン アップグレードにより、既存の Apache Airflow バージョン 2.x ベースの環境から、利用可能な新しい Apache Airflow バージョンへの合理的な移行が可能になります。 Amazon MWAA は、新しい Apache Airflow バージョンのプロビジョニングからメタデータ データベースのアップグレードに至るまで、アップグレード プロセス全体を管理します。 アップグレードが失敗した場合、Amazon MWAA は、関連するメタデータ データベースのスナップショットを使用して、以前の安定したバージョンにロールバックするように設計されています。
Amazon MWAA 上の既存の環境のアップグレードは簡単なプロセスです。 Amazon MWAA API を使用して、Amazon MWAA コンソールで数回クリックするだけで、Amazon MWAA 上の既存の Apache Airflow 2.0 以降の環境をアップグレードできます。 AWSコマンドラインインターフェイス (AWS CLI)、または次のようなツールを使用します。 AWS CloudFormation AWSクラウド開発キット (AWS CDK)、または テラフォーム。 この機能は、現在サポートされているすべての Amazon MWAA リージョンで利用できます。
Amazon MWAA コンソールで、環境を編集し、既存の環境の現在のバージョンよりも新しい、利用可能な Apache Airflow バージョンを選択するだけです。 を使用することもできます。 環境の更新 API を使用して、新しい Apache Airflow バージョンを指定して、アップグレード プロセスをトリガーします。 インプレース バージョン アップグレードの詳細については、次を参照してください。 Apache Airflow バージョンのアップグレード Amazon MWAA ドキュメントより。
アップグレード中、Amazon MWAA はまず既存環境のメタデータ データベースのスナップショットを作成し、それが新しいデータベースの基礎として機能します。 その後、すべての Apache Airflow コンポーネント (Web サーバー、スケジューラ、ワーカー) がアップグレードされます。 最後に、新しく作成されたメタデータ データベースがアップグレードされ、新しい環境への移行が事実上完了します。
適用可能なユースケース
既存のワークフローが変更に対応でき、ユースケースに合わせた機能や改善点を備えた新しいバージョンが利用できる場合は、Amazon MWAA で Apache Airflow バージョンのアップグレードを検討する必要があります。 アップグレードすることで、Apache Airflow プラットフォームの最新機能を活用し、データ駆動型のスケジューリングや新しい Amazon プロバイダー パッケージなどの新機能やベスト プラクティスとの互換性を維持できます。 Apache Airflow 2.4.3 でリリース。 アップグレード プロセスには、環境の規模に応じて完了までに最大 2 時間かかる環境のダウンタイムが含まれますが、オンデマンドで最適な時間に実行できます。 既存の環境が頻繁に使用されており、ダウンタイムを許容できない場合は、代わりに新しい環境を作成することを検討してください。
前提条件
アップグレードの準備をするときは、次の前提条件の手順を必ず完了してください。
- 環境の既存のバージョンと新しいバージョンの間で Apache Airflow が変更されることを確認します。 Apache エアフローを確認する リリースノート ソース バージョンと宛先バージョンの間に行われたすべての中間 Apache Airflow リリースによる新機能、重要な変更、バグ修正の影響を理解するため。
- 既存のものを見直してください
requirements.txt
ファイルを使用して、ターゲット環境に必要な依存関係の正しいセットを確認します。 さらに、次のことを確認してください。requirements.txt
ファイルには、ターゲット環境に一致する正しい制約ファイルがファイルの先頭に追加されています。 Apache Airflow 制約ファイルは、Apache Airflow リリース時に利用可能な依存モジュールとプロバイダーのバージョンを指定します。 制約ファイルを追加すると、互換性のないライブラリが環境にインストールされるのを防ぎます。 次の例では、{Airflow-version}
ターゲット環境のバージョン番号と{Python-version}
お使いの環境と互換性のある Python のバージョンを使用してください。--constraint "https://raw.githubusercontent.com/apache/airflow/constraints-{Airflow-version}/constraints-{Python-version}.txt"
- に記載されている追加の Python ライブラリの互換性を確認してください。
requirements.txt
ファイルをターゲット環境に合わせて変更します。 Apache Airflow v2.4.3 以降では Python v3.10 が使用されますが、それより古い Apache Airflow バージョンでは Python v3.7 が使用されます。 したがって、既存の Apache Airflow v2.0.2/2.2.2 ベースの環境を Apache Airflow v2.4.3 以降にアップグレードしようとしている場合は、追加の Python ライブラリを Python v3.10 に一致するように更新する必要があります。 - Apache Airflow v2.4.3 以降では、Amazon MWAA が環境にデフォルトでインストールするプロバイダー パッケージのリストが変更されました。 プロバイダー パッケージ全体で命名規則を標準化するために、Apache Airflow の新しいプロバイダー パッケージでは一部のインポート名とオペレーター名が変更されていることに注意してください。 比較してください デフォルトでインストールされるプロバイダー パッケージのリスト Apache Airflow v2.2.2 または v2.0.2 で、新しい Apache Airflow v2.4.3 以降の環境に必要な追加パッケージを構成します。
- DAG およびその他のワークフロー リソースが、アップグレード先の新しい Apache Airflow バージョンと互換性があることを確認してください。
- aws-mwaa-ローカルランナー Amazon MWAA にデプロイする前に、既存の DAG、要件、プラグイン、依存関係をローカルでテストするためのユーティリティ。 次を使用して、Amazon MWAA 本番イメージに似たターゲット Apache Airflow 環境をローカルに作成できます。
aws-mwaa-local-runner
Amazon MWAA 環境をアップグレードする前に、すべてのコンポーネントが動作することを確認してください。 さらに、本番環境でアップグレードをロールアウトする前に、開発環境やステージング環境などの下位の Amazon MWAA 環境で新しい環境のアップグレード プロセスをテストしてください。
アップグレード プロセス
アップグレードが開始されると、Amazon MWAA は既存の基盤となる Apache Airflow コンポーネント (ウェブサーバー、スケジューラー、ワーカー) を停止します。 このプロセスは、現在実行中のワーカー タスクを停止します。 この段階での環境のステータスは次のように表示されます。 UPDATING
。 アップグレード プロセスでは、ステータスによってマークされたメタデータ データベースのデータベース スナップショットが作成されます。 CREATING_SNAPSHOT
。 スナップショットが完了すると、環境ステータスは に戻ります。 UPDATING
Amazon MWAA は、バージョンの選択に一致する新しい Apache Airflow 環境の作成をトリガーし、必要なスキーマ変更を既存のメタデータ データベースに適用して、ターゲットの Apache Airflow 環境に合わせます。 このフェーズでは、指定した要件、プラグイン、およびその他の依存関係がインストールされます。
完了すると、新しい環境は次のようにマークされます。 AVAILABLE
、アップグレード プロセスが成功し、環境がテストの準備ができていることを示します。 Apache Airflow UI にログインして、既存の DAG の存在、その実行履歴、構成された接続などを確認できるようになりました。
ただし、指定した要件、プラグイン、依存関係ファイルのインストールに失敗した場合、環境は以前の安定したバージョンへのロールバックを開始します。 このプロセス中、環境のステータスは次のように表示されます。 ROLLING_BACK
。 ロールバックが成功すると、以前の安定した環境が利用可能になり、ステータスが次のように表示されます。 UPDATE_FAILED
新しい更新が試行されて成功するまで。 ロールバックが失敗した場合、ステータスは次のように表示されます。 UNAVAILABLE
、環境が機能していないことを示します。
環境のアップグレード プロセスが失敗した場合、根底にある問題が原因である可能性があります。 Amazon エラスティック コンテナ サービス (アマゾン ECS) AWSファーゲート Apache Airflow コンポーネントのアップグレード後に、要件とプラグインの競合、ネットワークの問題、または DB 移行の問題によってクラスターに安定化の問題が発生しました。 これらの問題を軽減するには、DAG と要件が問題なく動作することを確認します。 aws-mwaa-local-runner
ユーティリティを使用し、理想的にはステージング Amazon MWAA 環境でテストします。
その他の考慮事項
この機能に関する次の追加情報に留意してください。
- アップグレード プロセスはオンデマンドで利用でき、新しいバージョンへの移行に限定されます。 Amazon MWAA のインプレース バージョン アップグレードは、バージョン 1.10.z ではサポートされていません。 メジャー バージョンのアップグレード (たとえば、バージョン 1.yz から 2.yz へ) を実行するには、新しい環境を作成し、リソースを移行する必要があります。
- アップグレードできる該当する上位バージョンのみを選択できます。 下位バージョンへのダウングレードはできません。
- ロールバック プロセスにはさらに時間がかかる場合があります。 Amazon シンプル ストレージ サービス (Amazon S3) バケットのバージョニングが有効になっている場合、Amazon MWAA は、プラグインや要件を含む環境を以前の動作設定に戻すように設計されています。 ただし、DAG に手動で加えた変更は、このプロセス中に元に戻されません。
- アップグレード プロセスが正常に完了し、環境が利用可能になった後、DAG の再試行の構成方法に応じて、アップグレード中に中断された実行中の DAG の再試行がスケジュールされます。 手動でトリガーしたり、次回のスケジュールされた実行を待つこともできます。
- 最初に重要性の低い環境から始めて、環境を繰り返しアップグレードする必要があります。
まとめ
この投稿では、既存の Amazon MWAA 環境を上位の Apache Airflow バージョンにアップグレードできる Amazon MWAA の新機能について説明しました。 この機能は、Apache Airflow 2.x 以降を実行している新規および既存の Amazon MWAA 環境でサポートされています。 この機能を使用して、既存のワークフロー実行履歴と環境構成を保持しながら、Apache Airflow バージョンをアップグレードします。 アップグレードすることで、Apache Airflow プラットフォームの最新機能を活用し、新機能との互換性を維持し、ベスト プラクティスに従うことができます。
Amazon MWAA の詳細とコード例については、次のサイトを参照してください。 Amazon MWAA ユーザーガイド と Amazon MWAA の例 GitHub リポジトリ.
Apache、Apache Airflow、および Airflow は、Apache の登録商標または商標です。 Apache Software Foundation 米国および/または他の国で。
著者について
パルナブ・バサク AWS のソリューションアーキテクトおよびサーバーレススペシャリストです。 彼は、サーバーレス、DevOps、分析などの最新のソフトウェア開発手法を使用して、クラウド ネイティブな新しいソリューションを作成することを専門としています。 Parnab は、分析および統合サービスの分野で緊密に連携し、お客様がワークフロー オーケストレーションのニーズに合わせて AWS サービスを導入できるよう支援しています。
フェルナンド・ガメロ AWS のシニア ソリューション アーキテクト エンジニアであり、通信、銀行から新興企業に至るまで、テクノロジー業界で 25 年以上の経験があります。 彼は現在、顧客によるイベント駆動型アーキテクチャの構築、エッジでの IoT ソリューションの導入、データと機械学習のパイプラインの大規模な変革を支援しています。
シューハム・メタ は、XNUMX 年以上の経験と成功した製品を提供してきた実績を持つ、経験豊富なプロダクト マネージャーです。 AWS のシニアプロダクトマネージャーとしての現在の役割では、Apache Airflow の Amazon Managed Workflows (Amazon MWAA) を監督し、製品の機能をさらに強化するための Apache Airflow オープンソースへの貢献を先頭に立って行っています。
- SEO を活用したコンテンツと PR 配信。 今日増幅されます。
- プラトアイストリーム。 Web3 データ インテリジェンス。 知識増幅。 こちらからアクセスしてください。
- 未来を鋳造する w エイドリエン・アシュリー。 こちらからアクセスしてください。
- PREIPO® を使用して PRE-IPO 企業の株式を売買します。 こちらからアクセスしてください。
- 情報源: https://aws.amazon.com/blogs/big-data/introducing-in-place-version-upgrades-with-amazon-mwaa/
- :持っている
- :は
- :not
- $UP
- 1
- 10
- 100
- 110
- 7
- a
- 私たちについて
- 上記の.
- 対応する
- 越えて
- 非周期的
- 追加されました
- 追加
- NEW
- 追加情報
- さらに
- 付着します
- 採用
- 採用
- 利点
- 後
- 整列する
- すべて
- ことができます
- また
- Amazon
- Apache AirflowのAmazonマネージドワークフロー(Amazon MWAA)
- Amazon Webサービス
- an
- 分析論
- および
- 発表
- どれか
- アパッチ
- API
- 適用可能な
- です
- AS
- 関連する
- At
- 試みた
- 試みる
- 賃貸条件の詳細・契約費用のお見積り等について
- 利用できます
- AWS
- バック
- バックアップ
- バンキング
- 基礎
- BE
- き
- さ
- BEST
- ベストプラクティス
- の間に
- バグ
- 建物
- by
- 缶
- 機能
- 場合
- 例
- 生じました
- 変化する
- 変更
- 変更
- 密接に
- クラウド
- クラウドネイティブ
- コード
- 比較します
- 互換性
- 互換性のあります
- コンプリート
- 記入済みの
- 完了
- 完成
- コンポーネント
- コンポーネント
- 相反する
- Connections
- 検討
- 領事
- 制約
- コンテナ
- 貢献
- 大会
- 正しい
- コスト
- 可能性
- 国
- 作ります
- 作成した
- 作成します。
- 作成
- 創造
- 重大な
- 電流プローブ
- 現在
- Customers
- DAG
- データ
- データ駆動型の
- データベース
- デフォルト
- 配信する
- 需要
- 依存
- によっては
- 展開する
- 設計
- デスティネーション
- 詳細
- 細部
- デベロッパー
- 開発
- DevOps
- 異なります
- ディスプレイ
- ドキュメント
- ダウンタイム
- ドリブン
- 間に
- エッジ(Edge)
- 効果的に
- どちら
- 使用可能
- エンジニア
- 高めます
- 強化
- 確保
- 全体
- 完全に
- 環境
- 環境
- エラー
- エーテル(ETH)
- イベント
- 例
- 例
- 既存の
- 体験
- 経験豊かな
- 探る
- 失敗
- 不良解析
- 特徴
- 特徴
- 少数の
- File
- 最後に
- 名
- フォロー中
- から
- 機能的な
- 機能性
- さらに
- GitHubの
- ガイダンス
- 持っていました
- 持ってる
- 持って
- he
- 重く
- 助け
- より高い
- 彼の
- 歴史的
- history
- HOURS
- しかしながら
- HTML
- HTTP
- HTTPS
- if
- 画像
- 影響
- 輸入
- 改善
- in
- 含めて
- 互換性がない
- 示します
- 産業を変えます
- 情報
- 開始する
- インストールする
- を取得する必要がある者
- 説明書
- 統合
- 中級
- 中断された
- 導入
- 導入
- 関係する
- IOT
- 問題
- IT
- ITS
- JPG
- ただ
- 後で
- 最新の
- LEARN
- 学習
- 最低
- ライブラリ
- ような
- 可能性が高い
- 限定的
- LINE
- リスト
- 局部的に
- ログ
- 機械
- 機械学習
- 製
- 維持する
- 主要な
- make
- マネージド
- マネージャー
- 管理する
- マニュアル
- 手動で
- マークされた
- 一致
- 言及した
- かもしれない
- 移動します
- 移行中
- 移行
- マインド
- 軽減する
- モダン
- モジュール
- 他には?
- 移動する
- しなければなりません
- 名
- 命名
- ネイティブ
- 必要
- 必要
- 必要とされる
- ニーズ
- ネットワーキング
- 新作
- 新機能
- 新しい特徴
- 新しいソリューション
- 新しく
- 次の
- 今
- 数
- of
- 古い
- on
- もの
- の
- オープンソース
- オペレータ
- or
- 編成
- 注文
- その他
- でる
- が
- 概要
- パッケージ
- パッケージ
- 実行する
- 実行
- 相
- プラットフォーム
- プラトン
- プラトンデータインテリジェンス
- プラトデータ
- プラグイン
- ポスト
- プラクティス
- 準備中
- プレゼンス
- を防止
- 前
- プロセス
- プロダクト
- プロダクトマネージャー
- 生産
- 製品
- 実績のある
- 提供します
- プロバイダー
- Python
- 準備
- 記録
- 地域
- 登録された
- リリース
- リリース
- replace
- の提出が必要です
- 要件
- リソース
- リストア
- 保持
- 収益
- 元に戻す
- レビュー
- 職種
- ロール
- 圧延
- ラン
- ランニング
- 規模
- 予定の
- スケジューリング
- シームレス
- 選択
- シニア
- 別
- サーバレス
- 仕える
- サービス
- セッションに
- すべき
- 表示する
- 重要
- 同様の
- 簡単な拡張で
- 単に
- サイズ
- Snapshot
- ソフトウェア
- ソフトウェア開発
- ソリューション
- 一部
- ソース
- スペース
- 専門家
- 専門にする
- 指定の
- 安定した
- ステージ
- ステージング
- 起動
- スタートアップ
- 米国
- Status:
- ステップ
- 停止する
- ストレージ利用料
- 簡単な
- 合理化された
- 続いて
- 成功した
- 首尾よく
- そのような
- サポート
- 取る
- ターゲット
- タスク
- テクノロジー
- 電気通信
- テラフォーム
- test
- テスト
- より
- それ
- アプリ環境に合わせて
- それら
- その後
- そこ。
- したがって、
- ボーマン
- この
- 時間
- 〜へ
- 豊富なツール群
- top
- 追跡する
- 商標
- 変換
- 遷移
- トリガー
- 2
- ui
- 根本的な
- わかる
- ユナイテッド
- 米国
- まで
- アップデイト
- アップグレード
- アップグレード
- アップグレード
- つかいます
- 使用事例
- 中古
- ユーザー
- ユーティリティ
- 確認する
- バージョン
- 訪問
- wait
- wanted
- ました
- 仕方..
- we
- ウェブ
- ウェブサーバー
- Webサービス
- した
- いつ
- which
- while
- 意志
- 無し
- 仕事
- ワーカー
- 労働者
- ワークフロー
- ワークフロー
- ワーキング
- 作品
- X
- 年
- 貴社
- あなたの
- ゼファーネット