Amazon MWAAのインプレースアップグレードを試してみた

Amazon MWAAのアップグレードはこれまで環境の再作成が必要でしたが、インプレースアップグレードがサポートされました。
2023.06.28

こんにちは。サービス部の武田です。

Amazon MWAA(Managed Workflows for Apache Airflow)は、AWSマネージドなApache Airflowサービスです。Airflowクラスターを自分たちで管理することなく利用できます。

実はこれまで、MWAAのバージョンをアップグレードするには、一度環境を削除して再作成するしかありませんでした。そんな中、先日、MWAAのインプレースアップグレードが発表されました。

やってみた

そんなわけで、実際にアップグレードを試してみました。

まずはアップグレード前の環境を用意します。今回はAirflow v2.2.2を作成しました。

無事作成できました。

この時点で変数を定義したりDAGを実行したりしました。インプレースアップグレードですので、それらのデータがアップグレード後も残っているかの確認です。

アップグレードは、環境の詳細を開き、「編集」ボタンを選択します。

「環境の詳細」の中にAirflowのバージョンを選択するプルダウンがあります。ここでアップグレードするバージョンを選択します。

ちなみに、実はインプレースアップグレードがサポートされる前から、このプルダウンは存在していました。しかしバージョンを変えて保存しようとしてもエラーになって変更できませんでした。

現在のバージョンより低いバージョンもUI的には選択できますが、実際は保存時にエラーとなります。そのため、あくまでも サポートされているのはアップグレードで、ダウングレードはできません

またマイナーバージョンのアップグレードしかできません。つまり、1.xから2.xにはアップグレードできないので注意しましょう。

今回は2.5.1を選択しました。選択すると次のような警告メッセージが表示されました。最大2時間のダウンタイムがあるようです。

When you select a new Apache Airflow minor version to upgrade your environment to, the update procedure can take up to 2 hours. Your environment will be unavailable while Amazon MWAA creates a backup of your data, updates Apache Airflow, and restores each component of the environment.

スナップショットを取り始め、アップグレードが開始されました。終わるまでしばらく待ちましょう。

アップグレードが終わりました。Airflow バージョンが2.5.1に変わっています。

アップグレード後、データを確認してみましたが、変数やDAG実行履歴はきちんと保持されていました。いいですね!

まとめ

これまでMWAAをアップグレードするには一度環境を作り直す必要がありました。その場合変数などはすべて設定し直しになりますし、DAG実行履歴もリセットされます。今回インプレースアップグレードがサポートされたことで、それらを維持したままアップグレードが可能になりました。

アップグレードを妨げる要因が履歴等のリセットであったのであれば、今回のアップデートで解消されたでしょう。ぜひ検討してみてください。