- モバイルアプリを構築したいけど、AWS AmplifyとFirebaseのどちらを選べば良いかわからない
- AWS AmplifyとFirebaseには、どんな違いがあるのか知りたい
- 立ち上げたいアプリがあるけど、AWS AmplifyとFirebaseのどちらを利用すると便利なの?
このようなお悩みはないでしょうか?

この記事では、AmplifyとFirebaseのそれぞれの特徴や違いについて比較して解説します。
AWS AmplifyとFirebaseは、どちらもアプリに必要なバックエンドやインフラを提供するプラットフォームです。
アプリ開発においてAmplifyとFirebaseそれぞれを選んだときのメリットについても解説します。
AmplifyとFirebaseでどちらを使うか決めきれない方は、ぜひ最後までお読みください。
AWS Amplifyとは
AWS Amplifyは、モバイルおよびWebアプリケーションを効率的に開発するためのフレームワークです。
AWS発のアプリ開発を簡単でスムーズにするためのオープンソースのライブラリとして公開されています。
ライブラリやUIコンポーネント、CLIなどが組み合わさっており、アプリケーションのバックエンド側の構築を支えてくれます。
AWSの様々なサービスを使用し、クラウドサービス上で安全かつ簡単にアプリケーションを開発することが可能です。
AWS AmplifyとFirebaseはどちらもアプリ開発に必要なバックエンドを提供し、アプリ開発者を手助けしてくれます。
提供される機能は後にも紹介しますが、例えばユーザー認証機能やホスティング、データベース機能などです。
AWS Amplifyを利用するとサーバーやミドルウェアの運用をAWSに任せられ、開発者はフロントエンド開発に集中できます。
AWS AmplifyとFirebaseどちらでも実現できること
AWS AmplifyとFirebaseで共通して実現できることは、以下の機能が挙げられます。
- ホスティング
- ユーザー認証
- ユーザーのエンゲージメント解析
- リアルタイム更新
- スケーラブルなアーキテクチャ
- NoSQL データベース
このように、どちらにもスマホアプリ・Webアプリに必要なバックエンド機能が揃っています。
一般的なバックエンド開発には、フロントエンド開発と同等かそれ以上に工数が必要です。
例えば高いセキュリティが求められるユーザー認証機能や、リアルタイム更新機能の実装などを1から実装するのは骨が折れます。
そのためAWS AmplifyまたはFirebaseを利用することでアプリ開発にかかる時間とコストが大幅に削減できます。
手の込んだアプリでない限りは、AWS AmplifyやFirebaseを利用すると得られるメリットは大きいでしょう。
AWS Amplifyのメリット
AWS Amplifyのメリットは主に次の4つです。
- AWSの各種サービスと簡単に組み合わせて利用できる
- 大量アクセスにも耐えられる構成ができる
- GraphQLだけでなくREST APIを使用した開発もできる
- NoSQLデータベースだけでなくRDBも利用できる
順番に解説します。
AWSの各種サービスと簡単に組み合わせて利用できる
AWSの各種サービスはスケーラブル(自動で必要な分の拡張をしてくれる)なことが多いです。
利用した分だけの料金が請求されるため、余計なコストもかかりません。
インフラの管理をする手間やストレスが最小限になり、フロントエンドの開発に専念できます。
AWS AmplifyはDynamoDB、Lambda、S3などの多くのAWS各種サービスと連携できます。
例えば、AWS Amplifyと連携して開発を進めると便利なサービスに、AWS AppSyncがあります。
AWS AppSyncは、フルマネージドなサーバーレス GraphQL サービスです。
GraphQLとは、アプリからサーバーサイドにAPIで必要な情報を取得する際に用いられるAPIのために作られた言語です。
一般的にアプリケーションのAPI開発において、複数のエンドポイントを開発する必要があります。
AppSyncを使うと、シンプルに1つのAPIエンドポイントをGraphQLで操作が可能なため、開発のスピードが早くなります。
DynamoDBやLambdaなどの他のAWSのサービスともシームレスなアクセスを実現します。
また圏外などオフラインになった際のデータもオンライン復帰後に自動で送受信できる機能も備えています。
大量アクセスにも耐えられる構成ができる
AWS AmplifyはAmazonS3やAmazon CloudFrontと自動的に組み合わさり、高負荷に強いサイト構築が可能です。
通常サーバーはアクセスが集中するとサーバーに負荷がかかり、コンテンツ配信に時間がかかるようになります。
Amazon CloudFrontは、コンテンツをキャッシュサーバーに配置して高速に配信するサービスです。
そのため大量アクセスにも耐えられ、安定したアプリケーションが配信できます。
GraphQLだけでなくREST APIを使用した開発もできる
AWS Amplifyは、AppSyncを用いたGraphQLでの開発だけでなくREST APIにも対応しています。
開発者がGraphQLに慣れていなくてもREST APIでアプリ開発が可能です。
AWS Amplifyでは、AWS内でGraphQLとREST APIのどちらにも対応できます。
FirebaseでGraphQLでの開発をする場合、Apollo ClientというGraphQL APIのクライアントライブラリの導入が必要です。
NoSQLデータベースだけでなくRDBも利用できる
Firebaseで利用できるデータベースは、NoSQLデータベースのCloud Firestoreです。
一方、AWS AmplifyはDynamoDBとAmazon Auroraを利用できます。
DynamoDBはNoSQLデータベースで、Amazon AuroraはRDBです。
アプリの設計上、どうしてもRDBを利用したい場合はAWS Amplifyを選ぶとAmazon Auroraが使えます。
NoSQLデータベースではアプリに要求される課題が解決できなければ、AWS Amplifyを検討するのも良いでしょう。
Firebaseのメリット
次にAWS AmplifyではなくFirebaseを選ぶメリットを紹介します。主に次の3つです。
- 無料枠が大きく規模が小さいアプリは無料枠内でカバーできる
- AWS Amplifyより日本語の情報が多い
- AWS Amplifyより学習コストが低い
順番に説明します。
無料枠が大きく規模が小さいアプリは無料枠内でカバーできる
Firebaseは無料枠が大きいのが特徴です。
小規模アプリであれば、サーバーサイドは無料枠内で収まってしまうことも珍しくありません。
またアプリの規模が大きくなっても、無料枠を使い切ってはみ出た分が課金対象となるので、無駄が少なくなります。
AWS Amplifyも同様に無料枠からはみ出た分の従量課金です。
FirebaseではなくAWS Amplifyを選んだ場合も、通信量によっては料金が比較的小さく収まるケースも多いです。
事前に料金を知りたいなら、使用料がどれくらいになりそうか担当のエンジニアに相談するのが良いでしょう。
AWS Amplifyより日本語の情報が多い
日本ではAWS AmplifyよりもFirebaseの方が利用率が高いため、日本語の情報源が多いです。
AWS Amplifyでは欲しい情報を探しても英語や海外の記事でないと見つからないこともあります。
またFirebaseを使い慣れているエンジニアは多くいますが、AWS Amplifyはそうではありません。
AWS Amplifyを選択する場合、担当するエンジニアの学習コストや調査に時間がかかる可能性もあるでしょう。
アプリを開発する際は、FirebaseまたはAWS Amplifyでの開発に慣れているか依頼する開発会社に確認しておきましょう。
AWS Amplifyより学習コストが低い
AWS Amplifyを使うとAWSの各種サービスと統合できるメリットはあります。
しかし統合するサービスの特徴や利用方法など、そのサービス自体の知識や経験が求められることを忘れてはいけません。
例えば、アプリのDBでDynamoDBを使いたいと考えた際、DynamoDBの使い方をある程度は理解する必要があります。
そしてAWS AmplifyではDynamoDBをどう扱えばいいのかを学ばなければなりません。
一方でバックエンドやインフラ、AWS構築に慣れているエンジニアがいれば、AWS Amplifyを有効に活用できます。
AWS Amplifyでバックエンドを構築できると、多様な他のサービスとの統合により細部に手が届く実装が可能です。
以下ではfirebaseの特徴やアプリ開発でFirebaseを使うと実現できることを解説しています。ご覧ください。
