本記事では、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 install
node 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を用意しておくことで、任意のコンテナでアプリケーションを実行させることもできます。