
本記事では、AWSから2021年5月にリリースされたApp Runnerを使ってアプリケーションをリリースする方法を説明します。
App Runnerを利用することで、開発者は爆速で自分が作ったウェブアプリケーションを、最小のインフラ管理コストでリリースさせることができます。今回は、App Runnerに最初から用意されているNode.jsのコンテナを利用して、アプリケーションをリリースする手順を説明します。
アプリケーションのコンテナ起動に数分かかりますが、それを除けば本当に数分で自分が作ったアプリを公開できてしうので、一度試してみてください!!
githubにリポジトリを作る
githubにprivateリポジトリを作成します。今回は210522_MyFirstAppRunnerという名前で作成しました。
リポジトリにはmainブランチにそれぞれ以下の内容でindex.jsと、package.jsonの名前でファイルを作成します。

const express = require('express');
const app = express();
const port = 3000;
app.get('/', (req, res) => {
res.send('Hello World!');
});
app.listen(port, () => {
console.log(`Example app listening at http://localhost:${port}`);
});
{
"name": "my_first_apprunner_example",
"version": "1.0.0",
"description": "",
"main": "index.js",
"dependencies": {
"express": "^4.17.1"
},
"devDependencies": {},
"author": "",
"license": "ISC"
}
ローカルで動作確認する
もし、手元の環境にnode.js、npmがインストールされていれば、下記のコマンドでこのプログラムを動作確認できます。
$ npm install
$ node index.js
nodeでコマンドを実行後、別のターミナルからhttp://localhost:3000/にアクセスすると、メッセージが表示されます。
$ curl http://localhost:3000/
Hello World
App Runnerでアプリケーションを作る
AWS consoleにログインし、下記のURLでAWS App Runnerのページにアクセスします。
- https://console.aws.amazon.com/apprunner/home
右上にあるApp Runnerサービスを作成を選択します。

ソース及びデプロイの画面が表示されるので、ソースコードリポジトリを選択します。

ここでgithubのアカウントと接続します。まず、AWS側での接続名を指定し、次へをクリックします。

githubの画面に遷移しますので、Only select repositoriesを選択肢、先程作ったリポジトリに対するアクセス権を付与し、installをクリックします。

AWSの方の画面に戻り、先程作った接続名、リポジトリ、ブランチを指定します。mainブランチにpushされたら自動でデプロイできるよう、デプロイトリガーを自動にします。
設定したら、次へをクリックします。

次にコンテナの環境設定をします。
App Runnerでは、apprunnter.yamlファイルで設定を書いておくこともできますが、ここではGUIで設定します。
ランタイムにはNodejs 12を指定し、ローカル環境で確認したように構築コマンド、開始コマンド、ポート番号をそれぞれ下記の値にします。
npm installnode index.js- ポート3000

サーバのスペックを指定します。
今回は最小構成の1vCPU,メモリ2GBにします。オートスケール以降の設定はデフォルトのままでOKです。デフォルトだと1〜25台の間でオートスケールするので、コストを気にする場合は最大値を小さめに設定しても良いです。最小値は0にすることはできず1台がミニマムです。

設定はこれだけで終わりです。設定を確認して作成とデプロイをクリックします。


ステータスがOperation in progressからRunningになるまでしばらく待ちます。

Runningになったら、デフォルトドメインにかかれているURLにアクセスし、作ったアプリケーションがどうさすることを確認します。最初の起動時はDNSの関係で、該当ドメイン名でアクセスできるまで数分かかる場合があります。

ログを見る
アプリケーションのログは、ログのタブで確認できます。もちろんCloud Watch Logsから確認することもできます。

アプリケーションのドメイン名を変更する
カスタムドメインのタブでは、お名前.comなどのサービスで独自のドメインを取得し、このアプリケーションにアクセスさせることもできます。

作ったアプリケーションを削除する
App Runnerではアプリケーションの作成もかんたんですが、削除も簡単です。
アプリケーションは、サービス画面の右上にあるアクションにある削除を選択します。


Githubとの接続も削除したい場合は、左メニューの"Github接続"から、該当の接続を選択し、"削除"をクリックします。


まとめ
ここまで、AWSで新しくリリースされたApp Runnerのサービスを使ってアプリケーションをリリースしました。
App Runnerでは、ECRやfargateの設定を行うことすらなく、githubにコードを置くだけで、非常に簡単な手順でアプリケーションをリリースできます。
今回の例ではAWSが用意しているNodejsのコンテナを利用しましたが、RubyやPHPなど他の言語を使いたい場合は、ECRにDocker imageを用意しておくことで、任意のコンテナでアプリケーションを実行させることもできます。