baas

BaaS (Backend as a Service) 技術比較

BaaSとは

BaaS (Backend as a Service) は、アプリケーションのバックエンド機能(データベース、認証、ストレージ、APIなど)をクラウド上で提供するサービスです。開発者はサーバー管理やインフラ構築をせずに、バックエンド機能を利用できます。

BaaSの主な特徴:

  • サーバー管理の負担を軽減
  • 迅速な開発とプロトタイピング
  • スケーラビリティの自動対応
  • リアルタイム機能の簡単な実装
  • 多様な認証方法のサポート
  • サーバーレス機能

詳細は topics/glossary.md の「BaaS」を参照。

主要なBaaSサービス一覧

サービスプロバイダー設立年データベースオープンソースセルフホスティング
FirebaseGoogle2011年NoSQL (Firestore)一部のみ不可
SupabaseSupabase Inc.2020年PostgreSQL完全OSS可能
AWS AmplifyAWS2017年DynamoDB, RDS, Aurora一部のみ不可
AppwriteAppwrite Inc.2019年MariaDB, MySQL, PostgreSQL完全OSS可能
HasuraHasura Inc.2018年PostgreSQL, MySQL, SQL Server完全OSS可能

BaaSサービス比較

総合比較表

項目FirebaseSupabaseAWS AmplifyAppwriteHasura
データベースNoSQL (Firestore)PostgreSQLDynamoDB, RDS, AuroraMariaDB, MySQL, PostgreSQLPostgreSQL, MySQL, SQL Server
API形式REST/リアルタイムREST/GraphQLREST/GraphQLRESTGraphQL
リアルタイム機能ありありありありGraphQL Subscription
認証充実充実Cognito統合充実外部認証統合
ストレージありありS3ありなし
FunctionsCloud FunctionsEdge FunctionsLambdaCloud FunctionsActions
オープンソース一部のみ完全OSS一部のみ完全OSS完全OSS
セルフホスティング不可可能不可可能(Docker)可能
SQLクエリ不可可能可能(RDS使用時)可能可能
ベンダーロックイン高い低い(PostgreSQL標準)高い(AWS依存)低い低い
学習曲線緩やか緩やかやや高め(AWS知識)緩やかGraphQL知識必要
コスト従量課金従量課金従量課金(AWS料金)セルフホスティングなら無料従量課金
成熟度高い中程度高い中程度中程度
コミュニティ大きい成長中大きい成長中成長中

技術選定の判断基準

RDB(リレーショナルデータベース)重視の場合

大切なデータを管理し、RDBにこだわる場合の定番:

  1. Supabase(最推奨)

    • PostgreSQLベースの標準的なRDB
    • 完全なSQLクエリが可能
    • トランザクション、外部キー制約、ストアドプロシージャなど、RDBの標準機能をフル活用可能
    • セルフホスティング可能でベンダーロックインが低い
    • オープンソースで透明性が高い
    • データの移行が容易(PostgreSQL標準)
  2. AWS Amplify + RDS/Aurora

    • エンタープライズレベルの要件がある場合
    • 既存のAWSインフラとの統合が必要
    • 高い可用性とスケーラビリティが必要
    • AWS知識が必要
  3. Appwrite

    • セルフホスティングを重視する場合
    • データの完全なコントロールが必要
    • PostgreSQL、MySQL、MariaDBから選択可能
  4. Hasura

    • 既存のPostgreSQLデータベースがある場合
    • GraphQL APIが必要な場合
    • リアルタイムSubscriptionが必要

RDB重視の場合の注意点:

  • Firebase(Firestore)はNoSQLのため、RDBの標準機能(JOIN、トランザクション、外部キー制約など)が使えない
  • データの整合性やトランザクションが重要な場合は、RDB対応のBaaSを選ぶべき

Firebaseを選ぶべき場合:

  • 迅速な開発とプロトタイピング
  • Googleエコシステムとの統合
  • 充実したドキュメントとコミュニティ
  • リアルタイム機能の簡単な実装
  • 小規模〜中規模のアプリケーション
  • 複雑なクエリや集計処理が不要
  • RDBは不要な場合

Supabaseを選ぶべき場合:

  • SQLクエリやリレーショナルデータが必要
  • PostgreSQLの標準機能を活用したい
  • オープンソース重視
  • ベンダーロックインを避けたい
  • セルフホスティングの可能性を残したい
  • Firebaseの代替として検討している
  • RDBにこだわりたい場合(最適)

AWS Amplifyを選ぶべき場合:

  • 既存のAWSインフラとの統合
  • AWSの他のサービス(EC2、RDS、Lambdaなど)と組み合わせたい
  • 高いカスタマイズ性が必要
  • エンタープライズレベルの要件

Appwriteを選ぶべき場合:

  • 完全にセルフホスティングしたい
  • データの完全なコントロールが必要
  • オンプレミスやプライベートクラウドでの運用
  • コストを完全にコントロールしたい

Hasuraを選ぶべき場合:

  • GraphQL APIが必要
  • 既存のPostgreSQLデータベースがある
  • リアルタイムSubscriptionが必要
  • フロントエンドとの統合を柔軟にしたい

各サービスの詳細

Firebase

Googleが提供するモバイルおよびウェブアプリケーション開発のためのプラットフォーム。バックエンドサービス、SDK、UIライブラリを通じて、開発者が迅速かつ効率的にアプリケーションを構築できるよう支援する。

主な特徴:

  • サーバー管理の負担を軽減
  • リアルタイム同期機能
  • スケーラビリティ
  • 多様な認証方法のサポート
  • サーバーレス機能

詳細な使い方: Firebase特有の詳細な使い方やコマンドについては topics/firebase.md を参照。

Supabase

概要: オープンソースのFirebase代替。PostgreSQLベースのリアルタイムデータベース。2020年設立(Firebaseより後発)。

主な特徴:

  • PostgreSQLベースのリレーショナルデータベース
  • 完全オープンソース
  • セルフホスティング可能
  • SQLクエリが可能
  • ベンダーロックインが低い(PostgreSQL標準)

選定のポイント:

  • SQLクエリやリレーショナルデータが必要な場合に適している
  • オープンソースでセルフホスティング可能なため、ベンダーロックインを避けたい場合に有利
  • Firebaseはより成熟しており、エコシステムが大きい

AWS Amplify

概要: AWSが提供するフルスタック開発プラットフォーム。2017年リリース。

主な特徴:

  • AWSエコシステムとの統合
  • 高いカスタマイズ性
  • DynamoDB、RDS、Auroraなど複数のデータベース選択肢
  • AWS知識が必要

選定のポイント:

  • 既存のAWSインフラとの統合が容易
  • AWSの他のサービス(EC2、RDS、Lambdaなど)と組み合わせやすい
  • Firebaseはよりシンプルで学習コストが低い

Appwrite

概要: オープンソースのセルフホスティング可能なバックエンドプラットフォーム。2019年設立。

主な特徴:

  • 完全オープンソース
  • Dockerによるセルフホスティング
  • 複数のデータベース対応(MariaDB, MySQL, PostgreSQL)
  • データの完全なコントロール

選定のポイント:

  • 完全にセルフホスティングしたい場合
  • オンプレミスやプライベートクラウドでの運用
  • データの完全なコントロールが必要

Hasura

概要: GraphQLエンジンを提供するバックエンドプラットフォーム。2018年設立。

主な特徴:

  • GraphQL API
  • PostgreSQL、MySQL、SQL Server対応
  • GraphQL Subscriptionによるリアルタイム機能
  • セルフホスティング可能

選定のポイント:

  • GraphQL APIが必要
  • 既存のPostgreSQLデータベースがある場合に適している
  • フロントエンドとの統合を柔軟にしたい

料金・無料枠比較

Firebase(Spark プラン - 無料枠)

  • Firestore: 読み取り 50,000回/日、書き込み 20,000回/日
  • Storage: 5GB保存、1GB/日ダウンロード
  • Hosting: 10GB保存、360MB/日転送
  • Functions: 125,000回/月、40,000GB秒/月
  • Authentication: 無料(制限なし)

Supabase(無料枠)

  • データベース: 500MB、2GB転送/月
  • 認証: 50,000 MAU(Monthly Active Users)
  • ストレージ: 1GB、2GB転送/月
  • Edge Functions: 500,000回/月

AWS Amplify

  • 無料枠あり(AWS Free Tier)
  • 従量課金(AWS料金体系)
  • 各サービス(Lambda、DynamoDB、S3など)の料金が個別に発生

Appwrite

  • セルフホスティングなら無料(インフラコストのみ)
  • クラウド版は有料プランあり

Hasura

  • 無料枠あり(Cloud版)
  • セルフホスティングなら無料(インフラコストのみ)

注意点:

  • 無料枠を超えると従量課金になるサービスが多い
  • 本番運用前に料金を確認すること
  • トラフィック増加に伴いコストが急増する可能性があるため、コスト監視が重要
  • セルフホスティング可能なサービスは、インフラコストのみで運用可能

参考リンク

Firebase

Supabase

AWS Amplify

Appwrite

Hasura