Firebase Hosting は、Cloud Functions for Firebase や Cloud Run などのサーバーレス コンピューティング オプションと統合されています。これらのオプションで Firebase Hosting を使用すると、HTTPS リクエストを送信して関数とコンテナ化されたアプリをトリガーし、管理された安全な環境で実行することで、マイクロサービスをホストできます。
Cloud Functions for Firebase : 特定のトリガーに応答するバックエンド コードである関数を作成してデプロイします。次に、Firebase Hosting を使用して、HTTPS リクエストを送信し、関数の実行をトリガーできます。
Cloud Run : コンテナ イメージにパッケージ化されたアプリケーションを作成してデプロイします。次に、Firebase Hosting を使用して、HTTPS リクエストを送信し、コンテナ化されたアプリの実行をトリガーできます。
ユースケース
Firebase Hosting でサーバーレス コンピューティング オプションをどのように使用できますか?
動的コンテンツの提供 — ホスティング サイトで静的コンテンツを提供するだけでなく、サーバー側のロジックを実行している関数またはコンテナー化されたアプリから動的に生成された応答を提供できます。
たとえば、URL パターン (
/blog/<blog-post-id>
など) を、URL のブログ投稿 ID パラメーターを使用してデータベースからコンテンツを動的に取得する関数にポイントすることができます。REST API の構築— 関数を使用してマイクロサービス API を作成できます。
たとえば、関数は Web サイトのサインイン機能を処理できます。 Web サイトが
/
でホストされている間、/api
へのすべてのリクエストはマイクロサービス API にリダイレクトされます。例として、このオープンソースのサンプルを確認してください。動的コンテンツのキャッシュ— グローバル CDN で動的コンテンツのキャッシュを構成できます。
たとえば、関数が定期的にのみ新しいコンテンツを生成する場合、生成されたコンテンツを少なくとも短期間キャッシュすることでアプリを高速化できます。トリガーされた関数やコンテナー化されたアプリではなく、CDN からコンテンツが提供されるため、実行コストを削減できる可能性もあります。
シングルページ アプリの事前レンダリング— 動的な
meta
タグを作成することで、SEO を改善し、さまざまなソーシャル ネットワークでの共有を最適化できます。詳細については、このビデオを見るか、このオープンソースのサンプルを確認してください。
サーバーレス オプションの選択
Cloud Functions for FirebaseとCloud Runは両方とも Firebase Hosting と統合され、完全に管理された自動スケーリングの安全なサーバーレス環境を提供しますが、この 2 つのオプションは、さまざまなユース ケースや必要なレベルのカスタマイズされた構成に利用できます。
次の表では、Cloud Functions for Firebase と Cloud Run の使用に関する基本的な考慮事項について説明します。クォータ、制限、指標の完全なリストについては、各製品の詳細なドキュメント ( Cloud Functions for FirebaseまたはCloud Run ) を参照してください。
考慮 | Cloud Functions for Firebase | クラウドラン |
---|---|---|
設定 | Firebase CLI は、初期化からビルド、デプロイまで、複数のタスクを 1 つのコマンドにまとめます。 | コンテナーはよりカスタマイズ可能なオプションを提供するため、セットアップ、ビルド、およびデプロイのタスクには個別のステップが含まれます。 |
実行時環境 | Node.js が必要ですが、使用する Node.js のバージョンを指定できます。 | コンテナをビルドするときに、ランタイム環境を指定します。 |
言語とフレームワークのサポート | JavaScript と TypeScript Express.js などの Web フレームワークがサポートされています。 | Go、Node.js、Python、Java など、 Dockerfiles がサポートするすべての言語 各言語の Web フレームワークがサポートされています。 |
ホスティング リクエストのタイムアウト | 60 秒 (以下の注を参照) | 60 秒 (以下の注を参照) |
同時実行 | 関数インスタンスごとに 1 つのリクエスト (インスタンスごとの同時実行なし) | コンテナ インスタンスあたり最大 1,000 の同時リクエスト |
請求する | Cloud Functions の使用 使用量割り当ては無料ですが、 Cloud 請求先アカウントが必要です。 Firebase FAQを参照してください。 | Cloud Run の使用量+ Container Registry ストレージ 使用量割り当ては無料ですが、 Cloud 請求先アカウントが必要です |