お金をかけないでプロダクトを開発していく

なんとなく浮かんだアイデアがあったり、覚えた技術をアウトプットしたい時に、サーバーにアップしたいけど、AWSやGCPといったサービスにデプロイすれば当然お金がかかります。
すぐにお金になるとわかるわけでもないし、お試しとして作ったもの程度のものにいちいちお金をかけたくない場合はどうすれば良いか。
当然、無料のサービスを利用します。
しかし、無料のサービスはどこか不便であったり、本格的な運用を目指そうと思った時にすぐ以降しづらいような壁がいくつかあったりします。
もしそこまでアクセスがなかったり、使われて無ければランニングコストは当然0円であり、ユーザーがそれなりに利用しており、本格的にお金になりそうだと確信すれば、サーバーをスケールしたり、容量を増やしたりしていってコストをかけていくというやり方がベストです。
この記事ではお金を一切かけずに無料で本格的なサービスを作るためのサービスをいくつか調べまとめてみました。
スタートアップでまずは仮説検証をするためにも最小限機能実装(MVP)のプロダクトを開発したりする必要がありますが、儲かるかわからないものにコストをかけたくない方はたくさんいると思います。
そういったスタートアップを立ち上げようしている方でも同じようなやり方ができるかと思います。
同じような考えを持った人として以下の記事もあり参考にさせていただきました。

インスタンス
プロダクトを公開するには、アプリケーションをデプロイするためのサーバーを確保する必要があります。
無料で動かせるものをいくつかまとめてみました。
Heroku
代表格の一つです。Hobby
プランであれば、1dyno(1インスタンス)
を一月550~1000時間使用できます。
料金の情報はこちらを参照
Render.com
Herokuライクなサービス
Netlify
静的ページを公開する場合はこちらのサービスが最適です。
残念ながらLaravel、Django、Railsといったようなサーバーサイドの動的なアプリケーションをデプロイすることはできません。
Next.jsやNuxt.jsといったものもSSRとしてのデプロイもできません。
ただし、AWS LambdaにあたるようなNetlify Functions
や、認証機能であるNetlify Identify
なども提供されています。
プランにはStarter、Pro、Businessがあり、無料枠はStarterになります。
Vercel
無料で始められるWebのホスティングサービスであり、GitHubリポジトリと連携することで簡単にアプリケーションをデプロイすることができます。GitHubリポジトリの特定ブランチがコミットされたタイミングで、デプロイが自動的に開始されます。
個人的にはこの中で一番のサービスです。
あらゆるフレームワークに対応していますが、特にNext.jsとは相性がかなり良いです。
有料プランであれば、1メンバーあたり$20/月額かかります。
ちなみにVercelの規約では無料プランであれば、商用利用が禁止されています。
無料プランでサービスを運用していき、お金をかけていけると思った所で有料プランにして商用利用をしようしていくという切り替えができると思います。

データベース
DBはどうすれば良いでしょうか。
HerokuにあるPostgresqlも考えましたが、流石に以下のスペックでは厳しいかと考えられます。全てのテーブルを合わせて1万行であり、仮にテーブルが2つしかなかったとして、userテーブルが100個あって、それぞれが100のコンテンツを持っただけで全て使い尽くしてしまいます。
- 行数:1 万
- 同時接続数:20
- 1 か月あたりのダウンタイム:最大 4 時間
- Heroku CLI 経由のアクセス
- PGBackups:2 つまで保持
- Dataclips
- ロールバック:0 秒
そこで、更に凄いデータベースとしてPlanetScaleを使います。
料金形態を見ても無料枠でも充分使えるかと思います。
- 5GBのストレージ
- 10億行の読み取り/月
- 1000万行の書き込み/月
- 1つの生産支店
- 1つの開発ブランチ
- コミュニティサポート

キャッシュ
セッション管理やキャッシュとしてもRedisは使いたい所です。
そこでUpstashというサービスがあります。
1日に10000までのコマンドなら無料枠で利用が可能です。

CDN/DNS
CDNとしては上記のVercelやNetlifyが標準で搭載されているものも充分強力ですが、CDN+DNSとしての機能もあるCloudflare
もかなり良いサービスです。
特に一番良い点としてはウェブサイトを無料でHTTPSにできることです。
ドメインの設定をCloudFlareですることで、SSL証明書が無料で発行されます。
他にもWorkers
といった機能にも無料プランがあります。

ストレージ
画像アップロード機能を作りたい場合として、S3のようなストレージが必要になります。
CloudflareがBeta版として最近リリースしたストレージしてCloudflare R2があります。
無料枠であれば10GBが提供されます。
また以下のような制限があります。
- 更新(クラスA操作) : 1,000,000/月 + 追加の 1,000,000 操作につき $4.50
- 読み込み(クラスB操作) : 10,000,000/月 + 追加の 1,000,000 操作につき $0.36
それぞれ制限を超えた場合に従量課金をされれていく仕組みです。
10 GB
のストレージ (1月あたり) + 各月における追加の 1 GB ストレージにつき $0.015

メールサーバー
GCPなどを使っている方であればSendGridを知っている方は多いかと思います。
無料プランであれば、12,000通/月
で使用できます。
他にもmailchimpもあり、こちらも無料枠であれば10,000通/月
で使用できます。