コンテナだけじゃない。AWS App RunnerでWebアプリをソースコードから簡単デプロイ
オペレーション部の加藤(早)です。
当ブログDevelopersIOにもすでに何件かブログが上がっていますが、
Webアプリケーションを簡単にデプロイできる新サービス AWS App Runner がローンチされましたね!
App Runnerではコンテナイメージを用意することなく、GitHubに置いてあるソースコードも直接デプロイできるようなので試してみました。 感動レベルに簡単操作だったのでよかったらやってみてください。
アプリケーション
GitHubにリポジトリを作成します(今回のサンプルはこちら)。
極めてシンプルなexpressのWebアプリを用意しました。
const express = require('express') const app = express() app.get('/', function (req, res) { res.send('Hello App Runner!!') }) app.listen(80)
AWS App Runnerの設定
- App Runnerのトップページから、「サービスの作成」を選択します。
GitHub接続の作成
- 以下の画面になります。
- 今回は「ソースコードリポジトリ」を選択します。
- GitHubアカウントに「AWS Connector for GitHub」というアプリをインストールするために、「新規接続」をクリックします。
- 小さな別ウィンドウが開きます。
- 初めての場合は任意の接続名を作成し、「別のアプリケーションをインストールする」を選択します。
- GitHub側の画面に転送されます。
- GitHub側でアプリに権限を渡すリポジトリを選択し(今回はAll repositories)、Install をクリックします。
- App RunnerのGitHub接続作成画面に戻るので、作成した接続を選択して「次へ」をクリックします。
ソース設定
- App Runnerの設定に戻ります。
- "ソース"で先ほど作成したGitHub接続を設定し、リポジトリとブランチを選択します。
- "デプロイ設定"で「自動」を選択すると、対象ブランチにコードがpushされた際自動的にデプロイが動くようになります。楽ちん。
ビルド・デプロイの設定
- ソースリポジトリに設定ファイル(apprunner.yaml)を置くやり方もありますが、今回はGUI上で設定をします。
- ランタイム、ビルドコマンド、アプリケーションの開始コマンド、ポートを入力します。
- ランタイムは現在 Python3, Nodejs12 の2択です。
サービスの設定
- サービスのインフラに関する設定を入れます。
- 今回は最小構成にしました。
- AutoScaling, ヘルスチェック、セキュリティ(IAMロールとKMS)、タグに関する設定は今回はデフォルトにします。
最終確認
- 最後にここまでの入力項目を確認して、「作成とデプロイ」をクリックすればOKです。
- デプロイが終わると、コンソールでURLが確認できます。
動作確認
- デプロイされました!
自動デプロイ
- ソースコードをpushすると、新しいコードが自動デプロイされていました。
const express = require('express') const app = express() app.get('/', function (req, res) { res.send('自動デプロイだよ!!') }) app.listen(80)
まとめ
興奮のあまり画像がジャギジャギになってしまいました。お見苦しくてすみません。
ほとんどソースコードを用意するだけでWebアプリがデプロイができるすごいサービスです。
個人的には、デフォルトでデプロイログやアプリケーションログ、メトリクスが取得されている点も素晴らしいと思いました。よかったら試してみてくださいね!