Open7

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

shimakaze_softshimakaze_soft

なんとなく浮かんだアイデアがあったり、覚えた技術をアウトプットしたい時に、サーバーにアップしたいけど、AWSやGCPといったサービスにデプロイすれば当然お金がかかります。

すぐにお金になるとわかるわけでもないし、お試しとして作ったもの程度のものにいちいちお金をかけたくない場合はどうすれば良いか。

当然、無料のサービスを利用します。
しかし、無料のサービスはどこか不便であったり、本格的な運用を目指そうと思った時にすぐ以降しづらいような壁がいくつかあったりします。

もしそこまでアクセスがなかったり、使われて無ければランニングコストは当然0円であり、ユーザーがそれなりに利用しており、本格的にお金になりそうだと確信すれば、サーバーをスケールしたり、容量を増やしたりしていってコストをかけていくというやり方がベストです。

この記事ではお金を一切かけずに無料で本格的なサービスを作るためのサービスをいくつか調べまとめてみました。

スタートアップでまずは仮説検証をするためにも最小限機能実装(MVP)のプロダクトを開発したりする必要がありますが、儲かるかわからないものにコストをかけたくない方はたくさんいると思います。
そういったスタートアップを立ち上げようしている方でも同じようなやり方ができるかと思います。


同じような考えを持った人として以下の記事もあり参考にさせていただきました。

https://zenn.dev/imah/articles/3c587fb6d29eb7

shimakaze_softshimakaze_soft

インスタンス

プロダクトを公開するには、アプリケーションをデプロイするためのサーバーを確保する必要があります。
無料で動かせるものをいくつかまとめてみました。

Heroku

https://jp.heroku.com

代表格の一つです。Hobbyプランであれば、1dyno(1インスタンス)を一月550~1000時間使用できます。

料金の情報はこちらを参照

https://jp.heroku.com/pricing

Render.com

Herokuライクなサービス

https://render.com/pricing

Netlify

静的ページを公開する場合はこちらのサービスが最適です。

残念ながらLaravel、Django、Railsといったようなサーバーサイドの動的なアプリケーションをデプロイすることはできません。
Next.jsやNuxt.jsといったものもSSRとしてのデプロイもできません。

https://www.netlify.com/

ただし、AWS LambdaにあたるようなNetlify Functionsや、認証機能であるNetlify Identifyなども提供されています。

プランにはStarter、Pro、Businessがあり、無料枠はStarterになります。

Vercel

無料で始められるWebのホスティングサービスであり、GitHubリポジトリと連携することで簡単にアプリケーションをデプロイすることができます。GitHubリポジトリの特定ブランチがコミットされたタイミングで、デプロイが自動的に開始されます。

個人的にはこの中で一番のサービスです。

https://vercel.com

あらゆるフレームワークに対応していますが、特にNext.jsとは相性がかなり良いです。

有料プランであれば、1メンバーあたり$20/月額かかります。

ちなみにVercelの規約では無料プランであれば、商用利用が禁止されています。
無料プランでサービスを運用していき、お金をかけていけると思った所で有料プランにして商用利用をしようしていくという切り替えができると思います。

shimakaze_softshimakaze_soft

データベース

DBはどうすれば良いでしょうか。
HerokuにあるPostgresqlも考えましたが、流石に以下のスペックでは厳しいかと考えられます。全てのテーブルを合わせて1万行であり、仮にテーブルが2つしかなかったとして、userテーブルが100個あって、それぞれが100のコンテンツを持っただけで全て使い尽くしてしまいます。

  • 行数:1 万
  • 同時接続数:20
  • 1 か月あたりのダウンタイム:最大 4 時間
  • Heroku CLI 経由のアクセス
  • PGBackups:2 つまで保持
  • Dataclips
  • ロールバック:0 秒

https://jp.heroku.com/free

そこで、更に凄いデータベースとしてPlanetScaleを使います。

https://planetscale.com/

料金形態を見ても無料枠でも充分使えるかと思います。

  • 5GBのストレージ
  • 10億行の読み取り/月
  • 1000万行の書き込み/月
  • 1つの生産支店
  • 1つの開発ブランチ
  • コミュニティサポート

https://planetscale.com/pricing

shimakaze_softshimakaze_soft

キャッシュ

セッション管理やキャッシュとしてもRedisは使いたい所です。

そこでUpstashというサービスがあります。

https://upstash.com/redis

1日に10000までのコマンドなら無料枠で利用が可能です。

shimakaze_softshimakaze_soft

CDN/DNS

CDNとしては上記のVercelやNetlifyが標準で搭載されているものも充分強力ですが、CDN+DNSとしての機能もあるCloudflareもかなり良いサービスです。

https://www.cloudflare.com/ja-jp/

特に一番良い点としてはウェブサイトを無料でHTTPSにできることです。
ドメインの設定をCloudFlareですることで、SSL証明書が無料で発行されます。

https://dev.classmethod.jp/articles/end-to-end-ssl-with-cloudflare/

他にもWorkersといった機能にも無料プランがあります。

shimakaze_softshimakaze_soft

ストレージ

画像アップロード機能を作りたい場合として、S3のようなストレージが必要になります。

CloudflareがBeta版として最近リリースしたストレージしてCloudflare R2があります。

https://developers.cloudflare.com/r2/platform/pricing/

無料枠であれば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

https://dev.classmethod.jp/articles/cloudflare-r2-storage/