[アップデート] AWS Elastic Beanstalk の .NET on Linux プラットフォームで .NET 9 がサポートされました
いわさです。
AWS Elastic Beanstalk では .NET 環境が Windows と Linux の両プラットフォームで提供されています。
プラットフォームは定期的にアップデートされているのですが、先日のアップデートで Linux 環境の .NET が 9 をサポートしました。
前回 .NET 8 の時は Windows プラットフォームに遅れる形で Linux 側もサポートされた[1]のですが、今回は Linux が先行リリースされましたね。
.NET 8 長期サポート (LTS) リリース、.NET 9 は標準期間サポート (STS) リリースです。
.NET の最新機能を活用していきたいという環境など、.NET 9 を採用されるケースもあると思います。
.NET 9.0.0 自体は 2024 年 11 月 12 日にリリースされており、その後 2025 年 1 月 14 日にセキュリティパッチが適用された .NET 9.0.1 がリリースされています。
Web アプリケーションを更新してバージョン確認してみる
実際に .NET アプリケーションをデプロイしてバージョンを確認してみます。
.NET 8 で試した際の記事では、なぜか IIS 用にパッケージしたものをアップロードして確認[2]できているようだったのですが、改めて試したところ失敗しました。
dotnet publish -o site
してそのまま Zip 化したものでアップロード、動作確認が出来ましたので、もし試される方はご注意ください。
まずはローカルでアプリケーションを作成して確認します。
実行環境の .NET バージョンを出力するだけのものです。
% dotnet --version
9.0.102
% dotnet run
Using launch settings from /Users/iwasa.takahito/work/hoge0131dotnet/Properties/launchSettings.json...
Building...
info: Microsoft.Hosting.Lifetime[14]
Now listening on: http://localhost:5003
info: Microsoft.Hosting.Lifetime[0]
Application started. Press Ctrl+C to shut down.
info: Microsoft.Hosting.Lifetime[0]
Hosting environment: Development
info: Microsoft.Hosting.Lifetime[0]
Content root path: /Users/iwasa.takahito/work/hoge0131dotnet
:
% curl http://localhost:5003
9.0.1
続いて Elastic Beanstalk を作成します。
プラットフォームに .NET Core on Linux を選択し、ブランチは .NET 9 running on 64bit Amazon Linux 2023 を選択します。
各バージョンの詳しい内容は以下の公式ドキュメントで履歴をご確認ください。
上記から確認出来ますが本日時点で Windows Server + IIS のほうは .NET 8 までしかサポートされていません。
まずはデフォルトデプロイしたものを確認します。サンプルアプリケーションが動いています。
.NET アプリケーションパッケージを作成してデプロイ
先ほどローカルで作成したアプリケーションをパッケージ化してデプロイします。
% dotnet publish -o site
Restore complete (0.4s)
hoge0131dotnet succeeded (0.4s) → site/
hoge0131dotnet succeeded with 1 warning(s) (0.0s)
/usr/local/share/dotnet/sdk/9.0.102/Current/SolutionFile/ImportAfter/Microsoft.NET.Sdk.Solution.targets(36,5): warning NETSDK1194: The "--output" option isn't supported when building a solution. Specifying a solution-level output path results in all projects copying outputs to the same directory, which can lead to inconsistent builds.
Build succeeded with 1 warning(s) in 1.0s
% cd site
iwasa.takahito@HL01200 site % zip ../site.zip *
updating: appsettings.Development.json (deflated 28%)
updating: appsettings.json (deflated 26%)
updating: hoge0131dotnet (deflated 78%)
updating: hoge0131dotnet.deps.json (deflated 51%)
updating: hoge0131dotnet.dll (deflated 58%)
updating: hoge0131dotnet.pdb (deflated 49%)
updating: hoge0131dotnet.runtimeconfig.json (deflated 49%)
updating: hoge0131dotnet.staticwebassets.endpoints.json (deflated 9%)
updating: web.config (deflated 37%)
adding: aws-windows-deployment-manifest.json (deflated 49%)
site.zip をアップロードして、デプロイ成功後にアクセスしてみます。
% curl http://hoge0131dotnet9-env.eba-r2uq2xp9.ap-northeast-1.elasticbeanstalk.com/
9.0.1
最新の .NET 9.0.1 が動作していることが確認できました。
さいごに
本日は AWS Elastic Beanstalk の .NET on Linux プラットフォームで .NET 9 がサポートされたのでアプリケーションをデプロイして確認してみました。
Elastic Beanstalk のランタイムバージョンは継続的に更新され続けており良いですね。
本日時点では Windows + IIS がまだ使えないので注意しましょう。いつもの流れではもうすぐ使えるようになるのではと思いますが。