AWS Elastic Beanstalkへデプロイした.NET CoreアプリをIDEを使わずに、Azure App Service on Linuxへ移動する

2021.09.07

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

いわさです。

先日、App Service on LinuxからElastic BeanstalkへWebサイトの移行を行いました。

今回は逆で、BeanstalkからApp Serviceへのファイル移行を行ってみたいと思います。

移行元(Elastic Beanstalk)環境の作成

Windows環境にて Visual Studio 2019 で ASP.NET Core のWebアプリケーションを作成します。
アプリケーションは AWS Toolkit for Visual Studio を使ってElastic Beanstalkへデプロイを行います。

AWS Toolkit for Visual Studioについては以下を参照してください。

すぐに移行元環境が作成出来ました。

移行モジュールを取得する

Elastic Beanstalkではデプロイされたアプリケーションバージョン毎にモジュールを保持しています。
対象のバージョンのソースを選択するとZipアーカイブをダウンロードすることが出来ます。

App Serviceアプリケーションの作成

以前にMacからApp Service on Linuxへの手動デプロイを試しましたが、環境の問題でZipアップロードではなくFTPアップロードを試しました。
今回も同じようにFTPアップロードを行います。

AzureポータルからFTP視覚情報を取得して、FTPクライアントでアップロードしました。

アップロードモジュールのProcfileを開いてください。

web: dotnet exec ./AwsToAzure.dll

これはdotnetアプリケーションの起動コマンドです。
Elastic Beanstalkではこのファイルを使ってアプリケーションを起動する場合があります。

今回は上記コマンドをコピーしてAzureポータルからスタートアップコマンドに設定しましょう。

無事起動されました。

まとめ

Webサーバー単体ではこれで完了ですが、実際には移行後に環境変数やネットワーク設定など必要になると思います。
Azureへ移行後はAzureのマネージド機能を利用可能ですので、それらの活用も忘れないようにしましょう。

本日は、Elastic BeanstalkからはZipファイルでモジュールダウンロードが可能であること。
そして、そのファイルを使ってそのままプラットフォームの移行を行うことを出来ることが確認出来ました。
Procfileなど、一部Elastic Beanstalkに特化した仕様を把握しておけば柔軟に対応することが出来そうです。