🥳

無料で使うための個人開発技術スタック

に公開

最近Zenn上で無料縛りの個人開発技術スタックの記事がいくつか挙がっていましたので、便乗します。

また、以下の記事に「案4」Google Cloudがねぇーじゃねーか!と思ったので、この記事を書いています。

https://zenn.dev/tak720/articles/bac40312c25c06

その他の無料縛りの個人開発技術スタックの記事

https://zenn.dev/m4gnett/articles/a20971c41ad789

https://zenn.dev/expkit/articles/9d4e2f192646a8

それでは、よろしくお願いします!

前提

  • インフラはサーバレスがいい!
  • コンテナ使いたい

提案:CloudRunがいいんです〜

CloudRunとは?

  • Google Cloudにおけるコンテナ型PaaS
  • マネージドサービス
  • 最小インスタンスを0に設定すれば永年無料で利用可能

言語/フレームワーク

  • コンテナベースなので、なんでも使用可能
    • Next.jsのSSRも使用可能
  • バックエンドを構築するなら、比較的コンテナと相性がいいされるGo・Rustなどバイナリにコンパイルされる言語がおすすめ

DB

  • 無料で使用可能なRDBはない
  • Firestoreが無料で利用可能

DB/リアルタイム/認証/認可

  • 認証
    • FirebaseAuth
      • Googleが提供する認証サービス
      • メールアドレス/パスワード認証、SNS連携など多様な認証方式に対応
  • リアルタイム
    • Firebase Realtime Databaseが使用可能
      • JSON形式のデータをリアルタイムに同期するNoSQLデータベー
      • チャットやリアルタイム通知など、リアルタイム性が求められる機能に適している
      • Firestoreと比較してシンプルなデータ構造に向いている

GoogleCloudに寄せるメリットまとめ

メリット

  • CloudRunの無料枠: 最小インスタンス0設定により、トラフィックが少ない間は無料で利用できるため、個人開発やPoCに最適です。
  • Firebaseの統合: 認証、DB(Firestore, Realtime Database)、ストレージなど、個人開発に必要な機能がFirebaseに揃っており、連携が容易です。
  • スケーラビリティ: CloudRunやFirebaseはスケーラビリティが高く、サービスが成長しても容易に対応できます。
  • 開発体験の向上: コンテナを活用することで、開発環境と本番環境の差異を少なくでき、開発効率が向上します。
  • サーバーレスの恩恵: サーバーの管理から解放され、開発に集中できます。

デメリット

  • 無料枠の制限: CloudRunやFirestoreなどの無料枠には上限があり、トラフィックやデータ量が増えると費用が発生します。
  • RDBの無料選択肢が少ない: 無料で利用できるRDBはTiDB Serverlessの無料枠に限られます。
  • Firebaseの学習コスト: Firebase独自の概念やAPIを習得する必要があります。
  • Google Cloud全体の複雑さ: 多様なサービスが存在するため、全体像を把握するのに時間がかかる場合があります。

ぼくのかんがえるさいつよのぎじゅつせんてい

  • フロントエンド
    • Next.Js
    • TailwindCSS
  • バックエンド
    • Go
  • インフラ
    • CloudRun: アプリケーションの実行環境
    • Cloudflare Workers: 静的コンテンツ配信、API Gateway、エッジコンピューティングなどに活用
  • オブジェクトストレージ
    • Cloudflare R2: 低コストで高速なオブジェクトストレージ
  • DB
    • TiDB Serverless: RDBが必要な場合
    • Firestore: NoSQLで十分な場合やリアルタイム性が重要な場合

まとめ

今回は、無料にこだわる個人開発技術選定にがZenn上で流行っていそうなので、完全・完璧個人的知見を記事にしました。
個人で、PoCで、スモールスタートのするならCloudRunが最強だと思っているので、ぜひ、まだ、使ったことがない方は使ってみてください!
CloudRunの柔軟性とFirebaseの統合により、個人開発でもスケーラブルで高機能なアプリケーションを比較的容易に構築できると考えています。TiDB ServerlessやCloudflareのサービスを組み合わせることで、より多様なニーズに対応できるでしょう。
ただし、クラウドサービスなので課金設定やアラートを設定してたくさんのお金が飛ぶことはないように気をつけましょう!

PS.

Cloudflare Containersが出てきたら、変わるかもしれないので楽しみです!

Discussion