Heroku以外にRailsアプリをデプロイしてみた
自作アプリ作る作る詐欺をしている永元です。
Herokuの無料枠が廃止されてから1年以上たちました。
今更ながら
「とりあえずRailsアプリをデプロイするためのプラットフォームを試そう」
と思い立ったので、実際に手を動かしていくつかのプラットフォームを試してみました。
選定基準
次の前提をもとにプラットフォームを選びました。
- https://github.com/rails/docked で構築した簡単なRailsアプリをデプロイする
- リポジトリはGitHubで管理し、そこから容易にデプロイできると望ましい
- 東京(あるいはアジア・オセアニア)に利用可能なリージョンがある
デプロイを試したアプリは下記に公開しています。
候補プラットフォーム
今回デプロイまで行ったのは次の3つです。
Railway
Koyeb
Render
他にはFly.ioも有名で評判が良いようです。
デプロイの準備
公開しているこのアプリは にサンプルとして記載されているアプリを同じ手順で作成しました。
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
公式サイトにチュートリアルまで整備されています。
CLIでの操作にも対応していますが、今回はWEBアプリのUIからデプロイを試してみました。
からデプロイ設定ができます。おおまかな手順は次のとおりです。- デプロイ方法を選ぶ
- デプロイするリポジトリを選ぶ
- 環境変数設定を行う(スキップ可能ですが、環境変数RAILS_MASTER_KEYの設定は必要です)
Railwayにはシンガポールリージョンがあるようです。
Koyeb
こちらのページに記載されている通りの手順で滞りなくデプロイできました。
からデプロイ設定ができます。おおまかな手順は次のとおりです。
- デプロイ方法を選ぶ(GitHub or Docker)
- インポートするプロジェクトを選ぶ(GitHubならリポジトリ選択)
- 各種設定を行う(環境変数RAILS_MASTER_KEYの設定は必要)
有料アカウントであれば日本リージョンを選択できそうです。
Render
こちらのページに記載されている通りの手順で滞りなくデプロイできました。
からデプロイ設定ができます。おおまかな手順は次のとおりです。
- デプロイ方法を選ぶ(Gitリポジトリ or image)
- インポートするプロジェクトを選ぶ(GitHubならリポジトリ選択)
- 各種設定を行う(環境変数RAILS_MASTER_KEYの設定は必要)
最初からシンガポールリージョンを選べるのがいいです。
個人的にダッシュボードはRenderが一番わかりやすかったです。
所感
どのプラットフォームも、アカウントを作成してGitHub連携をすれば、わずかな設定のみで簡単にデプロイができました。おかげで特にアドバイスもなく、この記事の内容が薄くなりました。
いくつかのプラットフォームにシンガポールリージョンがある中で、日本リージョンがないことにわずかながら悔しさを覚えました。実際のところ、シンガポールリージョンであれば遅延はだいたい気にしないですむのでありがたい限りです。
また、プラットフォームを選ぶ際に、無料枠やリージョン、DBを追加する場合の料金やその他もろもろの拡張性なども含めて調べるとキリがなさそうでした。プレイベートなちょっとしたアプリもAWSにデプロイしていいんじゃないかな?と感じました。
なんてときにちょうどいい記事が弊ブログにあるのでこちらの記事もどうぞ!
Rails7.1アプリをAWS Copilot CLIでAWS Fargateにデプロイする
参考文献
We Are Hiring!
クラッソーネに少しでも興味を持っていただけたら、気軽にご連絡ください。