💻

完全無料(クレジット登録なし)でWebアプリ開発しよう!

2024/12/31に公開

はじめに

この記事を読んでいただきありがとうございます!
これまで個人でWebアプリ開発を行う中で得た知見を共有していきたいと思います。

まだまだ未熟な点も多いですが、
このブログを通じて学んだことを発信し、誰かの助けになれば幸いです。

拙い文章ですが、どうぞよろしくお願いいたします。🙇‍♀️

この記事はこんな人におすすめ!

  • 開発経験があまりない人
  • 個人でお金をかけずにWebアプリ開発をしたい人
  • 無料のWebサイトホスティングやサーバが知りたい人

概要

  • Webアプリ開発に使える、完全無料のサービスの紹介
  • サービスの制限と使い分け方を解説

完全無料とは

このブログでの「完全無料」とは、以下2点の条件に当てはまることを指します。

  • 設計・開発・保守: PC本体や電気代以外は一切料金がかからない
  • 運用: 料金が一切発生しない(PC本体や電気代もかからない)

完全無料での開発方針

完全無料の定義を踏まえて、以下のような設計方針を立てました。

必須

  1. アプリ開発は全て無料で行う。
    AzureやAWSのように、クレジット登録が必要で、
    無料枠を超えたら課金されてしまうサービスは使用しない。
  2. アプリのユーザは少人数で良い。
  3. 無料であるならば、ある程度の労力は許容する。
  4. SNSやマッチングアプリのように、
    ユーザが少ないと価値が減少してしまうアプリは作りたくない。
    1、2人でも価値が生まれるアプリが作りたい。

推奨

  1. 既に洗練されたアプリがあるのであれば、わざわざ作る必要はないと思う。
    ある程度新しいアイデアであるか、付加価値のあるアプリにしたい。
  2. 面白いアプリであることも重要だが、
    実用性がある程度あり、継続的に使用してもらえそうなアプリか、
    インパクトが大きいアプリだと嬉しい。

これらの開発方針を満たすには、完全無料で利用できるサービスを使用することが必須です。
まずは、完全無料で利用できるサービスについて調査しました。

完全無料で利用できるサービス

完全無料で利用できるサービスには以下のようなものがあります。

基本アーキテクチャ

プレゼンテーション層

サービス名 リクエスト数(件 / 日) 帯域幅制限(GB / 月) ファイルサイズ(MB / ファイル)
Cloudflare Pages 10万 無制限 25
GitHub Pages 無制限 100 100

Cloudflare Pagesはリクエスト数、GitHub Pagesは帯域幅制限で、それぞれアクセス制限があります。
1ファイルのサイズ制限はCloudflare Pagesの方が厳しいです。

⚡ Cloudflare Pages

制限詳細
  • リクエスト数:10万 件 / 日
  • ビルド数:500 件 / 月
  • 同時ビルド数:1 件
  • プロジェクト数:100 件
  • ファイル数:2万 件 / プロジェクト
  • ファイルサイズ:25 MB / ファイル

https://zenn.dev/kinakokyoryu/articles/ee93e3e8b24826

🐙 GitHub Pages

制限詳細
  • 帯域幅制限:100 GB / 月
  • ビルド数:10 / 時間
  • デプロイのタイムアウト:10 分
  • ファイルサイズ:1 GB / プロジェクト
  • ファイルサイズ:100 MB / ファイル

アプリケーション層

サービス名 リクエスト数(件 / 日) ファイルサイズ(MB) 実行時間( / 件) 定期実行予約数(件)
Cloudflare Workers 10万 3 10ms(待機時間を除く) 5
Google Apps Script(GAS) 無制限 無制限 6min 20

Cloudflare Workersはリクエスト数やファイルサイズ、CPU処理時間の制限がかなり厳しいです。
一方、GASはHTTPリクエストの制限が2万/ 日なので、HTTPリクエストを多量に行う場合は適しません。

トリガー実行の場合も、Cloudflare Workersは定期実行予約数の制限が厳しいです。
一方、GASは定期実行の合計時間が90 分/ 日なので、定期実行の回数が多い場合は適しません。

Cloudflare Workersは、Pages Functionsを使用すれば、Cloudflare Pagesのサイト以外からはアクセスできないので、安全性が高いです。

🔶 Cloudflare Workers(Pages Functions)

制限詳細
  • リクエスト数:10万 件 / 日、1000 件 / 分
  • 定期実行(Cronトリガー)予約数:5 件
  • プロジェクト数:100 件
  • ファイルサイズ:3 MB / プロジェクト
  • CPU処理時間:10 ms / リクエスト
  • メモリ:128 MB

https://zenn.dev/kinakokyoryu/articles/0331fed1df7504

⛽ Google Apps Script(GAS)

制限詳細
  • 実行時間:6 分 / 件
  • 同時実行数:30 / ユーザ、1000 / 件
  • HTTPリクエスト:2万 件 / 日
  • 定期実行の合計時間:90 分/ 日
  • 定期実行予約数:20 件

https://zenn.dev/kinakokyoryu/articles/6251e4edb37273

データ層

サービス名 読み書き回数の制限 容量制限 セキュリティ
Cloudflare D1Cloudflare KV あり あり 高め
Google Sheets 無し ほぼ無し 低め

Google SheetsはGoogle Drive上に保存するため、誤って共有や削除をしてしまうリスクがあり、セキュリティ上の問題が生じる可能性があります。

セキュリティリスクを減らしたい場合は、
Cloudflare D1やCloudflare KVを使用することを検討してください。

🗄️ Cloudflare D1

制限詳細
  • データベース:10 件
  • 最大列数:100 件 / プロジェクト
  • 最大行数:無制限
  • SQL実行時間:30 秒
  • アカウント容量:5 GB
  • データベース容量:500 MB / プロジェクト
  • 行容量;2 MB

📁 Cloudflare KV

制限詳細
  • Read:10万 件 / 日
  • Write:1000 件 / 日
  • Delete:1000 件 / 日
  • List:1000 件 / 日
  • 異なるキーへのWrite:1000 件 / 日
  • 同じキーへのWrite:1 件 / 秒
  • 名前空間:200 件
  • キー数:無制限
  • 容量:1 GB
  • 名前空間容量:1 GB
  • キー容量:512 B
  • バリュー容量:25 MB

📈 Google Sheets

制限詳細
  • セル数:1000万 件
  • 列数:1万8278 件

サービスの使い分け まとめ

No. プレゼンテーション層 アプリケーション層 データ層 採用基準
1 GitHub Pages GAS Google Sheets 基本の構成
2 Cloudflare Pages Cloudflare Workers Cloudflare D1、KV 機密情報を扱う場合

機密情報を使う場合や、Cloudflareだけで完結させたい場合はNo.2の構成を採用、そうでない場合は基本的にNo.1を採用する。

その他の完全無料サービス

  • Cloudflare Workers AI
    • 文章生成リクエスト数:300 件 / 分
    • 画像生成リクエスト数:720 件 / 分

https://zenn.dev/kinakokyoryu/articles/21176e575a6ad7

API・オープンデータはこちら

https://zenn.dev/kinakokyoryu/articles/16b80acb2bf525

さいごに

最後まで読んでいただきありがとうございます。
他に完全無料で使用できるサービスをご存じでしたら、ぜひ教えていただけると幸いです!

今後は、具体的なWebアプリの開発例や、そのソースコードを投稿していく予定です!

Discussion