📝

APIアーキテクチャ選定の比較:個人開発で検証した6構成の技術評価まとめ

に公開
2025/12/18

個人開発における API アーキテクチャ比較

個人開発を進める中で、当初はアプリ単体で完結する構成を想定していたが、
データ共有・ユーザー認証・マルチアプリ展開の必要性が高まり、
バックエンド(API)およびサーバレス基盤を選定する必要が生じた。
https://zenn.dev/bysontech/articles/1df1a63fbda98a
Swift / Firebase / FastAPI / Supabase 直結 / Next.js など複数構成を検証した結果、
最終的に React Native × Hono × Cloudflare Workers × Supabase が最適構成であると判断した。

本記事では、各構成の特徴と、技術的な採用 / 不採用理由を客観的に整理する。


1. 技術選定の前提条件

API アーキテクチャ選定は以下の前提条件を基準とした。

■ 機能要件

  • iOS / Android から利用できる API
  • ゲスト・通常アカウント両対応の認証
  • データ永続化(RDB 必須)
  • 小規模アプリ複数から共通 API を利用する構成

■ 非機能要件

  • 個人開発でも継続運用できるコスト
  • API レベルでの不正アクセス対策
  • マルチテナント化 / SaaS 化を見据えた拡張性
  • 保守運用コストの低さ
  • サーバーレス構成の優先検討

2. 検討した構成の比較

以下では検討した構成を順に整理し、要件適合度を基準に採否を評価する。


2-1. Swift(iOS 単体)

■ 概要

Swift のみでネイティブアプリを構築。必要データはローカル保存。

■ 評価

● 利点

  • UI を迅速に構築可能
  • ネイティブ特化でパフォーマンスが高い

● 不採用理由(要件不一致)

  • Android 非対応 → クロスプラットフォーム要件を満たさない
  • RDB / API を内包できない → データ共有要件を満たさない
  • セキュリティをアプリのみで完結させることは不適切

➡ 要件不適合のため不採用


2-2. Swift + Firebase

■ 概要

Firebase Authentication / Firestore をバックエンドとして利用。

■ 評価

● 利点

  • 学習コストが低く開発速度が速い
  • SDK による統合が容易

● 不採用理由(データ要件不一致)

  • Android 非対応
  • Firestore は RDB 要件を満たさない(JOIN / 正規化が困難)
  • セキュリティルール運用が複雑で破綻リスクが高い

➡ RDB 必須要件・拡張性要件を満たさず不採用


2-3. React Native + Firebase

■ 概要

React Native を利用し、Firebase Authentication / Firestore に接続。

■ 評価

● 利点

  • クロスプラットフォーム対応
  • 開発速度が非常に速い

● 不採用理由(API 要件不一致)

  • RDB 不可 → Firestore は要件に合致しない
  • クライアント直接アクセスとなり、API ロジック層を構築できない
  • 監査ログ / 署名 / 追加のセキュリティロジックを API 側で実現できない

➡ セキュリティ面で必要な要件と合致せず不採用


2-4. React Native + FastAPI + AWS

■ 概要

FastAPI(Python)を API とし、AWS RDS / Lambda / VPC を中心に構築。

■ 評価

● 利点

  • 企業向けシステム並みに強固なセキュリティ設計
  • 柔軟なビジネスロジックを構築可能
  • PostgreSQL / MySQL / Aurora など選択肢が広い

● 不採用理由(コスト要件不一致)

  • RDS・VPC・監視を含めると個人開発には過剰
  • 運用コストが高く、固定費が発生しやすい
  • サーバレス構成でも CloudWatch / API Gateway などの費用積み上げが大きい

➡ 費用対効果の観点から不採用


2-5. React Native + Supabase(クライアント直結)

■ 概要

Supabase(PostgreSQL + RLS)に React Native から直接アクセス。

■ 評価

● 利点

  • RDB 利用が可能
  • RLS により一定のセキュリティを担保

● 不採用理由(サーバ層不在)

  • クライアント直結では API 層のロジックを提供できない
  • 秘密鍵の管理をクライアント側に寄せる構造になりやすい
  • 複数アプリで共通ロジックを扱う基盤として不十分

➡ セキュリティ面で必要な要件と合致せず不採用


2-6. React Native + Next.js(Vercel)+ Supabase

■ 概要

Next.js API Routes + Vercel Edge(KV)で API を構築する構成。

■ 評価

● 利点

  • Edge Runtime による高速レスポンス
  • KV キャッシュが簡単
  • Web と API を統合しやすい

● 不採用理由(コスト・用途不一致)

  • SSR / RSC の課金体系の影響で無料枠が枯渇しやすい
  • Next.jsを「API 専用」として利用するメリットが薄い
  • Workers に比べると API 特化運用のコスト効率が下がる

➡ コスト効率が低いため不採用


2-7. React Native + Hono + Cloudflare Workers + Supabase(最終構成・採用)

■ 概要

Cloudflare Workers 上で Hono を実行し API 層を構築。
Supabase(RDB+RLS)をデータストアとし、Workers KVを併用。

■ 採用理由(重要)

● 1. セキュリティ要件を満たす

  • API 層で JWT 検証、署名、Rate Limit制御が可能
  • Supabase RLS との二重防御構成
  • Cloudflare WAF を前段に配置可能
  • anon key をアプリに配布しない構成が取れる

● 2. コストが低い

  • Workers は 100k リクエスト程度なら無料枠内
  • KV / キャッシュにより Supabase へのアクセス回数を抑制
  • 固定費ゼロで運用可能

● 3. 拡張性が高い

  • マルチアプリ展開向きの API モジュール構成
  • Hono により Express のような記述で高速実装
  • サーバレスでスケールするため負荷対策を気にしなくてよい

● 4. 実装効率が良い

  • Workers + Hono は API 専用基盤として最適
  • 簡潔なミドルウェア構成
  • Supabase との連携が容易

➡ 技術要件・非機能要件を最も高いレベルで満たすため採用


3. 採用構成のアーキテクチャ図


4. 選定比較表

※ セキュリティ/コスト/拡張性は、あくまで本記事の前提条件に基づく主観評価。

構成 RDB セキュリティ コスト API拡張性 総合評価
Swift × 低 低 低 不採用
Swift + Firebase × 中 低 低 不採用
RN + Firebase × 中 低 中 不採用
RN + FastAPI + AWS ○ 高 高 高 不採用
RN + Supabase直結 ○ 中 低 低 不採用
RN + Next.js + Vercel ○ 中 中 中 不採用
RN + Hono + Workers + Supabase ○ 高 非常に低 高 採用

5. まとめ

本記事では、個人開発プロダクトにおける API 基盤の技術選定を、
各構成の特性と要件適合性の観点から整理した。

最終的に採用した React Native × Cloudflare Workers × Hono × Supabase は、
以下の点で最も優れていた。

  • API 層でのセキュリティ制御
  • RDB(Supabase)と RLS の利用
  • Cloudflare Workers による高いコスト効率
  • サーバレス構成による柔軟なスケーリング
  • マルチアプリ展開に適した構成

Discussion