完全無料(クレジット登録なし)でWebアプリ開発しよう!
はじめに
この記事を読んでいただきありがとうございます!
これまで個人でWebアプリ開発を行う中で得た知見を共有していきたいと思います。
まだまだ未熟な点も多いですが、
このブログを通じて学んだことを発信し、誰かの助けになれば幸いです。
拙い文章ですが、どうぞよろしくお願いいたします。🙇♀️
この記事はこんな人におすすめ!
- 開発経験があまりない人
- 個人でお金をかけずにWebアプリ開発をしたい人
- 無料のWebサイトホスティングやサーバが知りたい人
概要
- Webアプリ開発に使える、完全無料のサービスの紹介
- サービスの制限と使い分け方を解説
完全無料とは
このブログでの「完全無料」とは、以下2点の条件に当てはまることを指します。
- 設計・開発・保守: PC本体や電気代以外は一切料金がかからない
- 運用: 料金が一切発生しない(PC本体や電気代もかからない)
完全無料での開発方針
完全無料の定義を踏まえて、以下のような設計方針を立てました。
必須
- アプリ開発は全て無料で行う。
AzureやAWSのように、クレジット登録が必要で、
無料枠を超えたら課金されてしまうサービスは使用しない。 - アプリのユーザは少人数で良い。
- 無料であるならば、ある程度の労力は許容する。
- SNSやマッチングアプリのように、
ユーザが少ないと価値が減少してしまうアプリは作りたくない。
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 / ファイル
🐙 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
⛽ Google Apps Script(GAS)
制限詳細
- 実行時間:6 分 / 件
- 同時実行数:30 / ユーザ、1000 / 件
- HTTPリクエスト:2万 件 / 日
- 定期実行の合計時間:90 分/ 日
- 定期実行予約数:20 件
データ層
サービス名 | 読み書き回数の制限 | 容量制限 | セキュリティ |
---|---|---|---|
Cloudflare D1、Cloudflare 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 件 / 分
- LINE 公式アカウント
- Firebase
- Supabase
- GitLab
API・オープンデータはこちら
さいごに
最後まで読んでいただきありがとうございます。
他に完全無料で使用できるサービスをご存じでしたら、ぜひ教えていただけると幸いです!
今後は、具体的なWebアプリの開発例や、そのソースコードを投稿していく予定です!
Discussion