FirebaseベースのプロジェクトとWebサイト
Firebaseを利用してWebホスティングをするにはFirebaseのプロジェクトを作る必要があります。 一つのFirebaseのプロジェクトで複数のWebサイトのホスティングも可能です。
この記事では、Firebaseのホスティングをする際にどのようにプロジェクトを作成したらよいのかを解説しています。
基本は一つのFirebaseプロジェクトで!
Firebaseのプロジェクトで複数のWebサイトのホスティングを設定する事が可能です。 これは、一般的なWebホスティングのサービスより柔軟性の高いサービスと言えます。 特に、低価格のWebホスティングのサービスの場合、作成可能な「サブドメイン」が制限されている場合も多く、魅力的なサービスと言えます。Webサイトで扱う機能や分類ごとにサブドメインを設定する事ができます。同じドメインでフォルダで分類しなくてもよいので、見やすく使いやすいWebサイトの実現が容易になります。
サイトの管理も余り多くのFirebaseプロジェクトを作るよりは、一つのFirebaseのプロジェクトで管理した方が全体の見通しもよくなります。
別のサイトをホスティングするには?
同じプロジェクト内で別のサイトを追加するのは簡単です! Firebaseコンソールで「ホスティング(Hosting)」の設定に行って「別のサイトを追加(Add another site)(Add another site)」をクリックして設定するだけです。
あとは、最初のサイト以外ではfirebase.jsonに2つ目以降のサイト名を明記します。
{
"hosting": {
"site": "firebase-web-sample-xxxxx",
"public": "public",
...
}
}
のように追記します。
また、デプロイする際にコマンドラインで指定することもできます。
$ firebase deploy --only hosting:firebase-web-sample-xxxxx
のようにします。
こうした、サイト名を特定する以外の設定は最初のWebサイトのホスティングと同様です。
Firebaseのプロジェクトを別にする理由は?
もちろん、別のFirebaseプロジェクトを作れば当然別のサイトのホスティングは可能です。 では、どのような場合にFirebaseプロジェクトを分けるかという疑問がわいてきますよね?
それにはいくつかのポイントがあります。
Firebaseの利用料金を抑えるために分ける!
Firebaseの利用料金の無料枠はFirebaseのプロジェクトごとに設定されます。 つまり、人気のサイトが複数ある場合、同じプロジェクトの場合、アクセス数や使用要領は全てのサイトの累計で計算されます。この方式の場合、人気のサイトを複数お持ちの場合は、Firebaseのプロジェクトを分けた方が利用料金を抑えられる場合があります。
こうした場合には、ホスティングを別のFirebaseプロジェクトに分散させるメリットがあります。
共通のデータベースやストレージ、アカウント情報を共有したい場合
アクセスを分散させるという点ではFirebaseのプロジェクトを分けるメリットは大きいと思います。 しかし、Firebaseのプロジェクトのデータベースの情報やストレージデータ、アカウントの情報を共有したい場合は、Firebaseのプロジェクトを分けるのは余り得策ではありません。
データベースやストレージ、ユーザーの認証は基本的にFirebaseのプロジェクト毎に設定されるので、同じプロジェクトに別のサイト、別のアプリを追加して管理した方が便利です。
こうすることで、セキュリティルールも一元管理ができますし、運用上も便利な場合が多いです。
Firebaseプロジェクトの運用事例
私自身の運用例では
* 趣味のサイト:tomonorihirai.com
* ビジネスのサイト:sv-sw.com
* 旧サイト:siliconvalleysw.com
を運営していますが、それぞれ別のFirebaseプロジェクトに分けて管理しています。 それぞれの、サイトに、公開用の一般サイトと記事を投稿したりする管理サイト(非公開)で別のサイトを設定しています。管理サイトを公開すると、インターネット上で記事の投稿などが可能になります。現在は、特に必要性を感じないため管理サイトは公開していません。この方法の方がセキュリティ上は安全です。
そのほかにも、テストを行うためのプロジェクトなどは別に設けています。これは稼働中のサイトでデータベースやストレージのデータを変更すると実際の稼働中のサービスに影響を与える場合も多いので、テストは同じ情報をコピーして別の環境で行ったうえで、稼働中のサイトを更新するようにしています。
また実験用や、ブログの記事の実装例を公開したりする場合も、別のFirebaseを利用しています。
テスト用のFirebaseのプロジェクトはいろいろなテストをするためのプロジェクトに!
テスト用のプロジェクトはテスト項目ごとには特に分けていません。 同じFirebaseプロジェクトの中に複数のアプリを登録して、いろいろなテストの実装の実験に使っています。 この方法だと、テストの度に新しいFirebaseのプロジェクトを作成する必要はありません。
まとめ
一つのFirebaseのプロジェクトで複数のWebサイトのホスティングが可能です。 独自のドメインをお持ちの場合はサブドメインに割り当てると、わかりやすいサイトの管理が比較的簡単にできます。 多くの場合は、データベースやストレージのデータ、アカウント情報などがサイト間で共有可能ため、一つのプロジェクトで運営した場合が便利です。
しかし、アクセス数の多い人気サイトを複数運営している場合、Firebaseのプロジェクトを分けると、無料枠の設定がFirebaseのプロジェクト毎になっているため、利用料金を多少抑制できる可能性があります。こうしたケースで、データベースやストレージのデータ、アカウント情報を共有する必要がない場合は検討の価値があると言えます。
利用形態によって、Firebaseプロジェクトの割り当てを柔軟にできるのもFirebaseを利用するメリットです。