はじめに
先日からAWS App RunnerでRubyアプリを動かすことをやっています。先週はSinatraでアプリを動かしてみました。
今回は、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
の設定が必要になります。
今回は、config/application.rb
に対してconfig.hosts
に値を追加します。値は東京リージョンのAWS App Runnerを動かすので、以下のように記述しました。
config.hosts << ".ap-northeast-1.awsapprunner.com"
コンテナイメージの作成
コンテナイメージの作成は、Cloud Native Buildpacksを使って作成することにしました。やり方は以前ブログに書いたのでそれをトレースします。
ちなみに、M2 Macbook Air上でやろうとしたら、Downloading Node.js 20.5.1
から一向に進まなくなったので、Cloud9上でpack
コマンドをインストールして実行することにしました。
デプロイ
AWS App Runnerの作成はコンソールに従って必要項目を埋めていけばOK。ちょっと時間はかかりますが、数分でデプロイは完了します。
無事デプロイが完了すると、アプリケーションが動いています。今回は特にテーブルも用意せずに単純なWelcomeページを表示させています。
ソース
ここまでのソースは以下に置きました。