🌟
Webアプリのデプロイ方法を検討する
本記事の作成背景
個人開発したアプリをデプロイする方法が無数にある感じがしており、今回はどのやり方を選択するのが良いか検討したくなったため、本調査記事を作成しました。
X(Twitter)でCloudflare や Firebase を使うとほぼ無料でデプロイできるという話を見て、もっと詳しく知りたいと思っていたのと、
「AWS ECS を使ってみたい…!」「AWS の RDS とか S3 とか組み合わせて作ってみたい…!」という気持ちが混在する中、
まずはどんなサービスがあって、どんな構成がメジャーなのかを整理してみました。
デプロイ時に使えるサービス
UI / API / DB それぞれデプロイ時に使えるサービスがいろいろあるようです(下表参照)。
- 左列は「無料または格安で簡単に始められる」構成
- 右列は「商用・チーム開発にも耐える AWS」構成
- どちらも UI / API / DB という 3 層で整理すると、後から Cloudflare → AWS へ段階的に移行しやすい
表 1 UI / API / DB デプロイ時に使えるサービス
層 | 無料・低コストサービス(個人開発向け) | 有料・AWS 構成(本格運用向け) |
---|---|---|
UI(フロントエンド) | - Cloudflare Pages(静的サイト配信) - Vercel(Next.js 特化) - Firebase Hosting(SPA 向け) |
- S3 + CloudFront(静的ホスティング) - Amplify Hosting(CI/CD つき) |
API(バックエンド) | - Cloudflare Workers(軽量サーバーレス) - Render / Railway(FastAPI など対応) - Firebase Functions(Node.js) |
- AWS App Runner(Docker 対応 PaaS) - AWS ECS on Fargate(CaaS 構成) - AWS Lambda + API Gateway(サーバーレス構成) |
DB(データベース) | - Supabase(PostgreSQL 互換) - Cloudflare D1(SQLite ベース) - Firebase Firestore(NoSQL) |
- Amazon RDS(MySQL/PostgreSQL) - Aurora Serverless(スケール自動化) - DynamoDB(NoSQL) |
今回の個人開発で選択した方法
とりあえず以下のようにしてみます。
-
まずは業務で使いそうな AWS ECS on Fargate を習得したいと考えているので、AWS のサービスをメインに開発を行っていく。
↓ ある程度 AWS 上での開発が分かったら…
-
個人開発したアプリは今後も自分で使っていきたいと考えているため、維持費の少ない Cloudflare に移行していく。
Discussion