Header image

クラッソーネの開発者がエンジニアリングに関することもそうでないことも綴っています!

Heroku以外にRailsアプリをデプロイしてみた

Heroku以外にRailsアプリをデプロイしてみた

自作アプリ作る作る詐欺をしている永元です。
Herokuの無料枠が廃止されてから1年以上たちました。
今更ながら
「とりあえずRailsアプリをデプロイするためのプラットフォームを試そう」
と思い立ったので、実際に手を動かしていくつかのプラットフォームを試してみました。

選定基準

次の前提をもとにプラットフォームを選びました。

  • https://github.com/rails/docked で構築した簡単なRailsアプリをデプロイする
  • リポジトリはGitHubで管理し、そこから容易にデプロイできると望ましい
  • 東京(あるいはアジア・オセアニア)に利用可能なリージョンがある

デプロイを試したアプリは下記に公開しています。
https://github.com/nagamoto/weblog

候補プラットフォーム

今回デプロイまで行ったのは次の3つです。
Railway
Koyeb
Render

他にはFly.ioも有名で評判が良いようです。

デプロイの準備

公開しているこのアプリ
https://github.com/rails/docked
にサンプルとして記載されているアプリを同じ手順で作成しました。

docked rails new weblog
cd weblog
docked rails generate scaffold post title:string body:text
docked rails db:migrate
docked rails server

これでlocal環境での起動が確認できます。
作成したアプリをGitHub上にリポジトリにpushして準備完了です。

プラットフォームごとのデプロイ

Railway

公式サイトにチュートリアルまで整備されています。
https://docs.railway.app/tutorials/getting-started

CLIでの操作にも対応していますが、今回はWEBアプリのUIからデプロイを試してみました。
https://railway.app/new
からデプロイ設定ができます。おおまかな手順は次のとおりです。

  1. デプロイ方法を選ぶ
  2. デプロイするリポジトリを選ぶ
  3. 環境変数設定を行う(スキップ可能ですが、環境変数RAILS_MASTER_KEYの設定は必要です)

環境変数設定画面

Railwayにはシンガポールリージョンがあるようです。
https://docs.railway.app/reference/deployment-regions

Koyeb

https://www.koyeb.com/docs/deploy/ruby-on-rails
こちらのページに記載されている通りの手順で滞りなくデプロイできました。

https://app.koyeb.com/apps/new
からデプロイ設定ができます。おおまかな手順は次のとおりです。

  1. デプロイ方法を選ぶ(GitHub or Docker)
  2. インポートするプロジェクトを選ぶ(GitHubならリポジトリ選択)
  3. 各種設定を行う(環境変数RAILS_MASTER_KEYの設定は必要)

settingページ

有料アカウントであれば日本リージョンを選択できそうです。

Render

https://docs.render.com/deploy-rails
こちらのページに記載されている通りの手順で滞りなくデプロイできました。

https://dashboard.render.com/create?type=web
からデプロイ設定ができます。おおまかな手順は次のとおりです。

  1. デプロイ方法を選ぶ(Gitリポジトリ or image)
  2. インポートするプロジェクトを選ぶ(GitHubならリポジトリ選択)
  3. 各種設定を行う(環境変数RAILS_MASTER_KEYの設定は必要)

各種設定画面

最初からシンガポールリージョンを選べるのがいいです。
個人的にダッシュボードはRenderが一番わかりやすかったです。

所感

どのプラットフォームも、アカウントを作成してGitHub連携をすれば、わずかな設定のみで簡単にデプロイができました。おかげで特にアドバイスもなく、この記事の内容が薄くなりました。

いくつかのプラットフォームにシンガポールリージョンがある中で、日本リージョンがないことにわずかながら悔しさを覚えました。実際のところ、シンガポールリージョンであれば遅延はだいたい気にしないですむのでありがたい限りです。

また、プラットフォームを選ぶ際に、無料枠やリージョン、DBを追加する場合の料金やその他もろもろの拡張性なども含めて調べるとキリがなさそうでした。プレイベートなちょっとしたアプリもAWSにデプロイしていいんじゃないかな?と感じました。
なんてときにちょうどいい記事が弊ブログにあるのでこちらの記事もどうぞ!
Rails7.1アプリをAWS Copilot CLIでAWS Fargateにデプロイする

参考文献

We Are Hiring!

クラッソーネに少しでも興味を持っていただけたら、気軽にご連絡ください。

https://www.crassone.co.jp/recruit/engineer/


スプラトゥーンへの愛情には定評がある。ウデマエは崖っぷちX。