Emplacements

Lorsque vous provisionnez une instance Firestore, vous devez choisir un emplacement pour l'instance. Pour réduire la latence et augmenter la disponibilité, stockez vos données à proximité des utilisateurs et des services qui en ont besoin.

Vous pouvez également créer plusieurs bases de données dans votre projet, chacune avec son propre paramètre de localisation.

Sachez qu'une fois que vous avez provisionné une instance de base de données, vous ne pouvez plus modifier son paramètre d'emplacement.

Types de zones

Vous pouvez stocker vos données Firestore dans une zone multirégionale ou régionale.

Zones multirégionales

Sélectionnez une zone multirégionale pour optimiser la disponibilité et la durabilité de votre base de données.

Un emplacement multirégional se compose d'un ensemble défini de régions dans lesquelles sont stockées plusieurs répliques de la base de données. Chaque instance répliquée est soit une instance répliquée en lecture/écriture qui contient toutes les données de la base de données, soit une instance répliquée témoin qui ne conserve pas un ensemble complet de données, mais participe à la réplication.

En répliquant les données entre plusieurs régions, il est possible de continuer à les diffuser même en cas de perte d'une région entière. Au sein d'une région, les données sont répliquées dans les zones afin qu'elles puissent continuer à être diffusées dans cette région, même en cas de perte d'une zone.

Firestore est compatible avec les emplacements multirégionaux suivants :

Nom de l'emplacement multirégional Description de la zone multirégionale Régions de lecture/écriture Région témoin
eur3 Europe europe-west1 (Belgique), europe-west4 (Pays-Bas) europe-north1 (Finlande)
nam5 États-Unis (Centre) us-central1 (Iowa), us-central2 (Oklahoma – région GCP privée) us-east1 (Caroline du Sud)
nam7 États-Unis (Centre et Est) us-central1 (Iowa), us-east4 (Virginie du Nord) us-central2 (Oklahoma – région privée Google Cloud )

Zones régionales

Une zone régionale correspond à une zone géographique spécifique, par exemple la Caroline du Sud. Les données d'une zone régionale sont répliquées dans plusieurs zones d'une même région.

Sélectionnez une zone régionale si vous souhaitez réduire vos coûts, réduire la latence d'écriture si votre application est sensible à la latence, ou co-localiser votre application avec d'autres ressources Google Cloud .

Firestore accepte les zones régionales suivantes pour les ressources :

Nom de la régionDescription de la région
Amérique du Nord
us-west1Oregon
us-west2Los Angeles
us-west3Salt Lake City
us-west4Las Vegas

us-central1

Cet emplacement n'est pas compatible avec App Engine. Si vous prévoyez d'utiliser App Engine, vous devez choisir un autre emplacement.

Iowa
northamerica-northeast1Montréal

northamerica-northeast2

Cet emplacement n'est pas compatible avec App Engine. Si vous prévoyez d'utiliser App Engine, vous devez choisir un autre emplacement.

Toronto

northamerica-south1

Cet emplacement n'est pas compatible avec App Engine. Si vous prévoyez d'utiliser App Engine, vous devez choisir un autre emplacement.

Querétaro
us-east1Caroline du Sud
us-east4Virginie du Nord

us-east5

Cet emplacement n'est pas compatible avec App Engine. Si vous prévoyez d'utiliser App Engine, vous devez choisir un autre emplacement.

Columbus

us-south1

Cet emplacement n'est pas compatible avec App Engine. Si vous prévoyez d'utiliser App Engine, vous devez choisir un autre emplacement.

Dallas
Amérique du Sud

southamerica-west1

Cet emplacement n'est pas compatible avec App Engine. Si vous prévoyez d'utiliser App Engine, vous devez choisir un autre emplacement.

Santiago
southamerica-east1São Paulo
Europe
europe-west2Londres

europe-west1

Cet emplacement n'est pas compatible avec App Engine. Si vous prévoyez d'utiliser App Engine, vous devez choisir un autre emplacement.

Belgique

europe-west4

Cet emplacement n'est pas compatible avec App Engine. Si vous prévoyez d'utiliser App Engine, vous devez choisir un autre emplacement.

Pays-Bas

europe-west8

Cet emplacement n'est pas compatible avec App Engine. Si vous prévoyez d'utiliser App Engine, vous devez choisir un autre emplacement.

Milan

europe-southwest1

Cet emplacement n'est pas compatible avec App Engine. Si vous prévoyez d'utiliser App Engine, vous devez choisir un autre emplacement.

Madrid

europe-west9

Cet emplacement n'est pas compatible avec App Engine. Si vous prévoyez d'utiliser App Engine, vous devez choisir un autre emplacement.

Paris

europe-west12

Cet emplacement n'est pas compatible avec App Engine. Si vous prévoyez d'utiliser App Engine, vous devez choisir un autre emplacement.

Turin

europe-west10

Cet emplacement n'est pas compatible avec App Engine. Si vous prévoyez d'utiliser App Engine, vous devez choisir un autre emplacement.

Berlin
europe-west3Francfort

europe-north1

Cet emplacement n'est pas compatible avec App Engine. Si vous prévoyez d'utiliser App Engine, vous devez choisir un autre emplacement.

Finlande

europe-north2

Cet emplacement n'est pas compatible avec App Engine. Si vous prévoyez d'utiliser App Engine, vous devez choisir un autre emplacement.

Stockholm
europe-central2Varsovie
europe-west6Zurich
Moyen-Orient

me-central1

Cet emplacement n'est pas compatible avec App Engine. Si vous prévoyez d'utiliser App Engine, vous devez choisir un autre emplacement.

Doha

me-central2

Cet emplacement n'est pas compatible avec App Engine. Si vous prévoyez d'utiliser App Engine, vous devez choisir un autre emplacement.

Dammam

me-west1

Cet emplacement n'est pas compatible avec App Engine. Si vous prévoyez d'utiliser App Engine, vous devez choisir un autre emplacement.

Tel Aviv
Asie
asia-south1Mumbai

asia-south2

Cet emplacement n'est pas compatible avec App Engine. Si vous prévoyez d'utiliser App Engine, vous devez choisir un autre emplacement.

Delhi
asia-southeast1Singapour
asia-southeast2Jakarta
asia-east2Hong Kong
asia-east1Taïwan
asia-northeast1Tokyo
asia-northeast2Osaka
asia-northeast3Séoul
Australie
australia-southeast1Sydney

australia-southeast2

Cet emplacement n'est pas compatible avec App Engine. Si vous prévoyez d'utiliser App Engine, vous devez choisir un autre emplacement.

Melbourne
Afrique

africa-south1

Cet emplacement n'est pas compatible avec App Engine. Si vous prévoyez d'utiliser App Engine, vous devez choisir un autre emplacement.

Johannesburg

Contrat de niveau de service de la zone

Votre type de zone Firestore détermine le pourcentage de disponibilité du contrat de niveau de service (SLA) :

Service couvert Pourcentage de disponibilité mensuelle
Firestore multirégional >= 99,999 %
Firestore régional >= 99,99 %

Tarifs par zone

Votre zone Firestore détermine le coût des opérations de la base de données.

Pour obtenir une explication complète des tarifs par région et par type de région, consultez l'article Comprendre la facturation Firestore.

Afficher l'emplacement de vos bases de données

Utilisez l'une des méthodes suivantes pour afficher le paramètre de localisation de vos bases de données :

  • Exécutez la commande gcloud firestore databases list.

  • Ouvrez la liste des bases de données dans la console Google Cloud . L'emplacement de chaque base de données est indiqué dans la colonne "Emplacement".

  • Dans la console Firebase, accédez à l'onglet Données de Firestore pour afficher la liste de vos instances de base de données et de leurs emplacements.

Dépendances d'emplacement possibles en raison de "Emplacement des ressources Google Cloud par défaut"

Le paramètre "Emplacement des ressources Google Cloud par défaut" correspond à l'emplacement de toutes les ressources de projet associées à Google App Engine, y compris les suivantes :

  • Instance de base de données Firestore par défaut
  • bucket Cloud Storage for Firebase par défaut au format *.appspot.com
  • Google Cloud Scheduler utilisé spécifiquement avec les fonctions planifiées de 1re génération

Ce paramètre "Emplacement des ressources Google Cloud par défaut" est immuable. De plus, lorsque vous définissez l'emplacement pour l'une des ressources associées, vous définissez indirectement l'emplacement pour toutes les ressources en raison de leur association commune avec App Engine.

Toutefois, au fil des ans, de nombreux changements ont été apportés à l'écosystème Firebase et Google Cloud , ce qui a modifié les associations de ressources à App Engine. Plus précisément, à partir du 30 octobre 2024, tous les buckets Cloud Storage pour Firebase par défaut nouvellement provisionnés auront le format de nom *.firebasestorage.app et ne seront pas associés à App Engine.

Voici le détail des modifications apportées aux dépendances géographiques possibles :

  • À partir du 30 octobre 2024, si l'instance Firestore par défaut et le bucket Cloud Storage for Firebase par défaut ne sont pas encore provisionnés :

    • Le provisionnement de l'instance Firestore par défaut définit l'emplacement de toute application App Engine future provisionnée dans le projet. Toutefois, il ne détermine pas l'emplacement du futur bucket Cloud Storage par défaut.

    • Le provisionnement du bucket Cloud Storage par défaut ne provisionne plus d'application App Engine. Par conséquent, l'emplacement du bucket Cloud Storage par défaut ne détermine pas l'emplacement de la future instance Firestore par défaut.

  • À partir du 30 octobre 2024, si l'instance Firestore par défaut a déjà été provisionnée, mais que le bucket Cloud Storage for Firebase par défaut ne l'a pas été :

    • L'instance Firestore par défaut existante ne détermine pas l'emplacement du futur bucket Cloud Storage par défaut (*.firebasestorage.app).
  • À partir du 30 octobre 2024, si le bucket Cloud Storage for Firebase par défaut a déjà été provisionné (plus précisément le bucket *.appspot.com), mais que l'instance Firestore par défaut n'a pas été provisionnée :

    • Lorsque le bucket Cloud Storage par défaut (*.appspot.com) a été provisionné, une application App Engine a également été provisionnée. L'emplacement de la future instance Firestore par défaut a donc été défini à ce moment-là. Même si vous supprimez le bucket *.appspot.com, vous ne pouvez pas supprimer l'application App Engine. Le paramètre d'emplacement de la future instance Firestore par défaut est donc déjà défini.

Si vous avez utilisé des fonctions planifiées de première génération, leur emplacement est défini sur l'emplacement des ressources Google Cloud par défaut. Cela est dû au fait que Cloud Scheduler et App Engine étaient auparavant associés. De plus, si vous configurez des fonctions planifiées de 1re génération avant de provisionner d'autres ressources qui partagent ce paramètre de localisation, vous devez également définir leur localisation.

Notez que si vous disposez d'une application App Engine ayant pour zone us-central ou europe-west, votre zone pour les ressources Google Cloud par défaut est considérée comme multirégionale.

Étapes suivantes

  • Pour plus d'informations sur la création d'applications répondant à vos besoins en termes de latence, de disponibilité et de durabilité, consultez l'article Zone géographique et régions.