- リージョンは統一すべき。統一しないと遅延やコストが増加。
- 日本ユーザーが多いなら、リージョンを
asia-northeast1
に設定。 - 統一方法は簡単。以下のコード例で対応できます。
なぜリージョンを統一すべき?
1. パフォーマンスの向上
異なるリージョン間で通信すると、物理的な距離やネットワークの影響で遅延が発生します。
例:
-
us-central1
(アメリカ)とasia-northeast1
(日本)の通信には 200ms 程度の遅延。 - 同じリージョン内なら遅延は 数ms。
-
us-central1
にfunction、asia-northeast1
にdatabaseでやりとりして通知の送信とかやると余裕で3秒とか4秒遅延します。
2. コスト削減
リージョン間の通信には追加料金が発生する場合があります。同一リージョン内の通信は 無料。
3. 信頼性の向上
リージョンが分散していると通信エラーが発生しやすくなります。同一リージョン内に統一することでシステム全体が安定。
Firebase のリージョンを統一する方法
必要な設定
1. Firebase Functions のリージョン設定
Functions を特定のリージョンにデプロイするには、functions.region
を使用します。
以下のコードは、リージョンを asia-northeast1
に設定した例です。
const functions = require("firebase-functions");
// "asia-northeast1" にデプロイ
exports.myFunction = functions.region("asia-northeast1").https.onCall(async (data, context) => {
// 関数の処理内容
return { message: "Hello from asia-northeast1!" };
});