[アップデート] AWS Elastic Beanstalk で Windows Server 2022 が利用可能になったので、Windows 2019 環境からブルー/グリーンデプロイでアップグレードしてみた

2024.02.24

いわさです。

先日の AWS Elastic Beanstalk のアップデートでプラットフォームブランチに Windows Server 2022 が選択出来るようになりました。

EC2 で Windows AMI が使用可能になったのが 2021 年 9 月、Amazon WorkSpaces で使えるようになったのが 2023 年 10 月です。
少し遅れて Elastic Beanstalk でも採用出来るようになりました。

本日は .NET on Windows Server プラットフォームで Windows 2019 から Windows 2022 へアプリケーションを更新してみましたので紹介します。

.NET on Windows Server のプラットフォームブランチに Windows Server 2022 が追加

Elastic Beanstalk のプラットフォームブランチで次のように Windows Server 2022 と Windodws Server Core 2022 が追加されています。

今月のアップデートから初登場したので、プラットフォームバージョンは 2.14.0 のみです。

Elastic Beanstalk アプリケーションを 2019 から 2022 に更新してみる

上記を選択して環境を作成すれば Windows Server 2022 が使われるというだけです。
本日は Windows Server 2019 で実行中のアプリケーションを Windows Server 2022 へアップグレードしてみましたので手順を紹介したいと思います。

次のように Windows Server 2019 のひとつ古いプラットフォームバージョンの環境へ ASP.NET Web Forms アプリケーションをデプロイ済みです。

既存環境のバージョンをインプレースアップグレードする機能があります。
ただし、互換性のあるプラットフォームでのみ可能で、.NET on Windows Server の場合はプラットフォームバージョンの変更時にのみ利用可能です。

よって今回のように Windows Server バージョンが変わる場合は環境 URL スワップ機能を使ったブルー/グリーンデプロイを行う必要があります。

ブルー/グリーンデプロイしてみる

対象アプリケーションから新しい環境を作成します。
すでに Windows Server 2019 環境が存在することがわかります。

プラットフォームはアップグレードターゲットである Windows Server 2022 を選択します。
デプロイ済みのアプリケーションバージョンを利用することが出来るので、アプリケーションコードで「既存のバージョン」を選択します。
今回は ASP.NET Web Forms アプリケーションなのでおそらくデプロイ済みの旧アプリケーションをそのまま利用しても問題ないでしょう。

しばらく経つと新しい環境が立ち上がります。
2 つの環境でプラットフォームバージョンが異なっていることがわかりますね。

旧環境から「環境ドメインをスワップ」を選択します。

ここでスワップ対象に新しく作成した環境(Windows Server 2022)を選択します。
スワップなので環境 URL が入れ替わる形となります。

スワップ操作が完了すると、今まで使っていた環境 URL が新しい環境割り当てられていることがわかります。

DNS による切り替えなので確認出来るようになるまで少しキャッシュ期間の影響がありますが、切り替わると次のように今まで使っていた URL で新しい環境にアクセス出来ていることが確認出来ました。

さいごに

本日は AWS Elastic Beanstalk で Windows Server 2022 が利用可能になったので、Windows 2019 環境からブルー/グリーンデプロイでアップグレードしてみました。

Elastic Beanstalk で実行するアプリケーションで、Windows Server 2022 が使えないと困るというケースは少ないような気がしますが、いずれ Windows Server 2019 のサポートも終了するので計画的にアップデートされると良いのではないでしょうか。

ブルー/グリーンデプロイが必要という点を覚えておきましょう。