AWS Toolkit for VS Code に App Runner管理機能が追加されたのでためしてみた
いわさです。
Visual Studio Code では、AWS Toolkit for Visual Sutdio Codeという拡張機能が提供されていますが、今回こちらにAWS App Runnerの統合機能が追加されました。
App Runnerをスルーしていたなーと思っていたので、良い機会ですし触ってみました。
Webアプリ用意
まずは、Webアプリを用意します。
App Runnerではコードからデプロイする機能とコンテナをデプロイする機能があるようで、コードランタイムはPythonとNode.jsのみ現時点では対応しているようです。
皆さんASP.NETを使いたいだろうと思いますので、今回はコンテナイメージから用意したいと思います。
ASP.NET CoreのMVCテンプレートにDockerFileを追加したものをデプロイに使います。
dotnetコマンドでスケルトンを作成し、Docker拡張機能でASP.NET Core用のDockerFileを追加しただけです。
これだけで取り敢えず動くコンテナ環境がクイックに作れるので楽ですね。
iwasa.takahito@HOGE iwasaweb % dotnet new mvc テンプレート "ASP.NET Core Web App (Model-View-Controller)" が正常に作成されました。 このテンプレートには、Microsoft 以外のパーティのテクノロジが含まれています。詳しくは、https://aka.ms/aspnetcore/5.0-third-party-notices をご覧ください。 作成後の操作を処理しています... /Users/iwasa.takahito/src/iwasaweb/iwasaweb.csproj で ' dotnet restore ' を実行しています... 復元対象のプロジェクトを決定しています... /Users/iwasa.takahito/src/iwasaweb/iwasaweb.csproj を復元しました (63 ms)。 正常に復元されました。
動きました。
Visual Studio Codeの拡張機能は本当にすごい。
App Runner操作
さて、ここから本題のApp Runnerの操作をしていきたいと思います。
AWS Tookkit for VS Codeはインストール済みで、アカウントの接続および、Amazon Elastic Container Registry (ECR) へコンテナイメージを登録済みとします。
ECRへの登録方法ですが、マネジメントコンソールでECRリポジトリを参照するとコンテナのビルド、タグ付け、プッシュまでのコピペで使えるコマンドが載っているので参考にしてください。
App Runnnerサービスの作成
Visual Studio Code上で App Runnner サービスの作成が可能です。
現時点で選択可能な作成ソースは、ECRかGitHubリポジトリの二択です。
マネジメントコンソールと同じですね。
今回はECRを選択します。
操作を進めていけば迷うところはほぼ無いので割愛しますが、途中でデプロイに使うサービスロールを指定(作成も可能)するのと、サービス名とスペックを指定することが出来ます。
このあたりもマネジメントコンソールと同様です。
マネジメントコンソールを一切触らずに難なくデプロイが完了しました。
ブラウザで開く操作もVisual Studio Codeからシームレスに可能です。
マネジメントコンソールからも作成されていることが確認出来ました。
更新とデプロイ
開発中にコンテナイメージの更新が発生すると思いますが、クイックに再デプロイすることが可能です。
画面の文言を修正したとします。
Dockerイメージのビルドとプッシュも済んでいたとします。
Start Deployment
を選択すると、デプロイ操作が開始されます。
ステータスがDeploying
になります。
マネジメントコンソール上でも処理中になっていますね。
Webサイトが更新されました。
更新についてもマネジメントコンソールの操作は不要です。
ログストリーム
サービスとアプリケーションのログストリームをVisual Studio Code上から確認することが可能です。
更新中のファイルを表示することが出来て、更新差分の受信も出来ます。
これはかなり便利。
まとめ
リモート環境へのデプロイってローカル実行に比べてやはり若干のリードタイムが気になるところだと思いますが、今回の拡張機能への追加によって、開発チームがよりクイックに環境の作成や更新を行うことが出来るようになったのではないかと思います。
App Runnerを使って開発している方は是非試してみてください。