個人開発は、公開まで行かないと学びが止まりやすい
Railsで小さなアプリを作るところまでは、AIの力もあって進めやすくなりました。
ただ、そこで終わってしまうことが多々あります。
ローカルでは動く。
でも公開していない。
誰にも見せられない。
自分でも毎日使わない。
この状態だと、せっかく作ったものが「動いたデモ」で終わりやすいです。
個人開発で大事なのは、まず公開まで持っていくことだと思っています。完璧なインフラを組むより、まずURLで触れる状態にする。そこまで行くと、使いながら直す流れが作れます。
その入口として、RenderのようなPaaSは使いやすい選択肢です。
Renderを使う理由
Railsアプリを公開しようとすると、考えることが一気に増えます。
- Webサーバー
- データベース
- 環境変数
- デプロイ
- 独自ドメイン
- SSL
- ログ
AWSでしっかり組むのも良いですが、個人開発の最初の一歩としては少し重いことがあります。
Renderは、GitHubリポジトリと連携して、Webサービスやデータベースを比較的簡単に作れます。公式ドキュメントでも、RailsアプリをRenderへデプロイする手順が用意されています。
参考: Deploy a Ruby on Rails App - Render Docs
自分が個人開発で最初に欲しいのは、インフラの学習を全部やり切ることではなく、作ったアプリを人に見せられる状態にすることでした。
1人1サーバーのすゝめ でも書いたように、公開できる場所があると、作ったものが資産になりやすいです。
Renderが向いているケース
Renderが向いているのは、次のようなケースだと思います。
- 個人開発のRailsアプリをまず公開したい
- 小さな検証アプリを人に見せたい
- GitHub push をきっかけに自動デプロイしたい
- 最初からAWSを細かく組むほどではない
- インフラよりアプリ改善に時間を使いたい
特に個人開発では、「公開までの摩擦を減らす」ことに価値があります。
公開して初めて、
- 表示が遅い
- スマホで使いにくい
- エラーが出る
- URLを共有しづらい
- 本番環境の設定が足りない
といった実運用の課題が見えてきます。
AWSとRenderは役割が違う
AWSを学ぶこと自体は大切です。
VPC、EC2、RDS、S3、ALB、Route 53 などを理解すると、インフラの見え方が変わります。
ただ、個人開発で最初に目指したいのが「まず公開する」なら、RenderのようなPaaSを使うのは現実的です。
AWS:
細かく設計できる
本格運用に向いている
学ぶことが多い
Render:
公開までが速い
個人開発に向いている
細かい制御はAWSほど多くない
どちらが上というより、目的が違います。
まず公開して使うならRender。
インフラも含めて深く学ぶならAWS。
そう分けて考えると、選びやすいです。
RailsアプリをRenderに出すときに見るポイント
RenderにRailsアプリを出すときは、最低限このあたりを確認したいです。
- Rubyのバージョン
- build command
- start command
RAILS_MASTER_KEYDATABASE_URL- assets precompile
- migrationの実行
- production環境のログ
特に credentials を使っている場合、RAILS_MASTER_KEY の扱いは忘れたくないです。
RubyでOpenAI APIをアプリに組み込むときに見ること でも触れていますが、本番環境ではAPIキーやsecretを雑に置かないようにしたいです。
まず公開することに価値がある
ローカルで動いているだけだと、分からないことがあります。
公開すると、
- 画像の保存先
- 本番DBの扱い
- 環境変数の不足
- ログの見方
- 独自ドメインの設定
などが見えてきます。
これは面倒ですが、学びになります。
画像をDBに保存するという選択 も、実際にRenderで運用してみたから見えた課題でした。
公開することで、初めて現実の問題に触れられます。
明日からできること
Railsアプリを公開したいなら、まずは小さく進めるのがよさそうです。
- GitHubにアプリをpushする
- RenderのRailsドキュメントを読む
- Web Serviceを作る
- 環境変数を設定する
- DBとmigrationを確認する
- URLで開ける状態まで持っていく
最初から完璧なインフラを目指さなくてもよいと思います。
まず公開する。
使ってみる。
困ったところから学ぶ。
この順番のほうが、個人開発は続きやすいです。
まとめ
Railsアプリを個人で公開するなら、Renderは使いやすい選択肢です。
AWSを学ぶことも良いですが、最初から全部やろうとして公開までたどり着かないのはもったいないです。
個人開発では、まず公開して、使って、直す流れを作ることが大切だと思います。
そのための入口として、Renderのようなサービスをうまく使っていきたいです。