AWS App RunnerでRubyアプリを動かす(2)

はじめに

先日からAWS App RunnerでRubyアプリを動かすことをやっています。先週はSinatraでアプリを動かしてみました。

miyohide.hatenablog.com

今回は、Railsアプリを動かすことにします。

Code-based? Image-based?

App RunnerはGitHub上にあるソースコードを読み込むか、Amazon Elastic Container Registry上にあるイメージを読み込むかの2パターンあります。前回はソースコードを読み込む形で進めましたが、今回はAmazon Elastic Container Registry上にイメージを格納して、それを読み込むことをやります。理由は、ソースコードを読み込む形でやってみましたが、webpackのセットアップがうまくできずに諦めました。

Railsアプリの修正

Railsアプリは普通に作れば良いかと思います。AWS App Runnerで動かすためには、ActionDispatch::HostAuthorizationの設定が必要になります。

railsguides.jp

今回は、config/application.rbに対してconfig.hostsに値を追加します。値は東京リージョンのAWS App Runnerを動かすので、以下のように記述しました。

config.hosts << ".ap-northeast-1.awsapprunner.com"

コンテナイメージの作成

コンテナイメージの作成は、Cloud Native Buildpacksを使って作成することにしました。やり方は以前ブログに書いたのでそれをトレースします。

miyohide.hatenablog.com

miyohide.hatenablog.com

ちなみに、M2 Macbook Air上でやろうとしたら、Downloading Node.js 20.5.1から一向に進まなくなったので、Cloud9上でpackコマンドをインストールして実行することにしました。

デプロイ

AWS App Runnerの作成はコンソールに従って必要項目を埋めていけばOK。ちょっと時間はかかりますが、数分でデプロイは完了します。

無事デプロイが完了すると、アプリケーションが動いています。今回は特にテーブルも用意せずに単純なWelcomeページを表示させています。

ソース

ここまでのソースは以下に置きました。

github.com