「Firebase」「Amplify」とは?機能比較やどちらを使うべきかの判断基準も紹介

「Firebase」「Amplify」とは?機能比較やどちらを使うべきかの判断基準も紹介

Hiroyuki Kikuchi

Hiroyuki Kikuchi

テクニカルディレクターの菊池です。

現代のアプリケーション開発において、バックエンドの構築やデータ管理、ユーザー認証などの機能を効率的に実装することが求められます。このようなニーズに応えるために、多くの開発者がAmplifyやFirebaseといったクラウドベースの開発プラットフォームを利用しています。

しかしながら、どちらのプラットフォームがプロジェクトに適しているかを判断するのは容易ではありません。そこで本記事では、AmplifyとFirebaseの特徴や利点を比較し、それぞれのプラットフォームが適しているシーンについて解説します。

Amplifyとは

AWS(Amazon Web Service)が提供しているサービスで、Webサイト、Webアプリ、モバイルアプリケーションの構築、デプロイ、およびホストのためのフルスタック開発フレームワークです。BasS(Backend as as Service)または、MBaaS(Mobile Backend as a Service)として機能が提供されており、AWSやBackendの構築を簡易に実現するためのサービスです。

Firebaseとは

Googleが提供するモバイルおよびWebアプリケーションのためのBasS(Backend as as Service)または、MBaaS(Mobile Backend as a Service)です。同様にGoogle社が提供しているFlutterではFirebaseを正式にサポートされております。

提供機能比較

では、実際にはどのような機能が提供されているのでしょうか。Amplifyとして提供されている機能は以下の通りです。

機能名 機能内容 Amplify Firebase 備考
ホスティング 構築したWebアプリを所定ドメインに展開する 両方ともカスタムドメインの設定ができる
Figma to code 作成したコンポーネントをコードへ変換 Amplifty Studioは、Hooksなどのビジネスロジックまではコード化できない
非同期処理要求 FEからBEの非同期関数をキックすることができる Amplifyについては厳密にはFE->API gateway -> Lambdaの順でキックしている
ID+PW認証 IDとパスワード入力による認証機能提供 Amplifyはタグとして認証画面のコンポーネントも提供しており、編集することも可能
API Cloud上で定義されたDBに対してREST APIでCRUD
Cloud strage 各種ファイル用のストレージファイル
Realtime database JSONデータをユーザー間でリアルタイム共有 具体例としてはチャットアプリなどで利用
クラッシュレポート iOSやAndroidのクラッシュした内容をサーバーに送信
Analytics 各ユーザーのアクセス状況について分析

AmplifyとFirebaseどちらを使うべきか

AmplifyもFirebaseとも基本的に提供されているサービスはほぼ一緒であるため、どちらを使用してもアプリを構築することが可能です。

ですが、その時々のシチュエーションによって、AmplifyとFirebaseのどちらを使うべきかは異なります。そこで、「Amplifyを使ったほうが良い場合」と「Firebaseを使ったほうが良い場合」をそれぞれ解説します。

Amplifyを使ったほうが良い場合

Amplifyは以下のような条件での使用をおすすめします。

構築したAWSサービスをカスタマイズしたい場合 Amplifyで開発された各種サービスは基本的にはすべてAWS上に展開されます。つまり、構築されたインフラやバックエンドの内容が可視化された状態となります。そのため、構築されたインフラの設定を開発自身でカスタマイズすることが可能です。例えばセキュリティグループの設定など、Amplifyだけでは構築しきれなかった部分について補足対応したい場合は、Amplifyを使うことが適しているのではないかと考えます。
AWSシステムと連携したい場合 Amplifyで生成した各種サービスはすべてAWS上に展開されます。つまりAmplifyで構築したサービスと別のサービスを連携したい場合は、スムーズな連携が期待できます(例えば、Amplifyで構築したWebアプリ上において、AWS上においてデータ分析を実施したいやMLをしたい場合など)。またAmplifyで構築されたインフラ自体がホワイトボックス化されており、連携自体も容易に実現できます。
ローコードでWebアプリやWebサイトを開発したい場合 Amplify Studioという機能を使うことで、プログラム初心者であったとしても、FigmaからReactのコンポーネントをコード化やコンポーネント定義できたり、BaaS部分の各種機能をノーコードで設定することも可能です。その結果として、WebアプリならびにWebサイトの初心者であっても、簡単にWebアプリやモバイルアプリ、Webサイトの構築を実施することが可能です(ただしフロントエンドの部分はReactで一部コーディングが必要)。

Firebaseを使ったほうが良い場合

Firebaseは以下のような条件での使用をおすすめします。

Flutterを使ったハイブリッドアプリと連携したい場合 FlutterにおいてはFirebaseを正式にサポートされており、Firebaseとの連携するためのライブラリやSDKがFlutter上において提供されております。ハイブリットアプリ且つMBaaSを使ったモバイルアプリケーション開発をする際においては、Firebaseを使うことが適しているのではないかと考えます。
Googleのサービスを利用する場合 FirebaseはGoogleエコシステムとの親和性が高いため、Google Cloud Platform(GCP)を利用している場合や、Googleのサービスと連携させたいプロジェクトには、Firebaseが適しています。

Amplifyの方がインフラを可視化されているため、構築したインフラを再利用したり、カスタマイズしたい場合はAmplifyの方が適していると考えます。

一方でハイブリッドアプリやGoogleの各種サービスと連携させたい場合は、Firebaseを使った方が良いのではないかと考えます。

さいごに

AmplifyとFirebaseは、どちらもウェブやモバイルアプリケーションの開発を容易にする優れたプラットフォームです。しかし、どちらを選択するかは、プロジェクトの要件、開発チームのスキルセット、および既存のインフラストラクチャに大きく依存します。ですので、それぞれのプラットフォームが提供する機能や利点を慎重に比較検討し、プロジェクトに最適な選択肢を見つけることが重要です。

この記事のシェア数

2004年大学卒業後に大手SIerにて組み込み系エンジニアとして10年従事。一度はIT業界から足を洗う形にはなるものの、2016年からSES企業にてサイドエンジニアとしてチャレンジ。2020年からLIGにジョインし、様々な案件のテクニカルディレクター並びにプロジェクトマネージャーとして参加する。

このメンバーの記事をもっと読む