Configurer les variables d'environnement

Cette page décrit la partie de préparation du processus de migration au cours de laquelle vous configurez des variables d'environnement dans votre environnement local. À partir de cet environnement, vous exécuterez ultérieurement les commandes qui configureront et activeront le processus de migration. Chacune de ces commandes utilisera une ou plusieurs variables d'environnement que vous définirez à cette étape.

À cette étape, procédez comme suit :

  1. Définissez les variables d'environnement communes à toutes les sources compatibles avec MongoDB.

  2. Définissez les variables d'environnement spécifiques au type de base de données source compatible avec MongoDB et à son déploiement.

Définir des variables d'environnement communes

Le modèle suivant permet de configurer des variables d'environnement communes à toutes les sources compatibles avec MongoDB. Vous ajouterez ultérieurement des variables supplémentaires spécifiques à votre source MongoDB.

Le modèle configure l'ensemble de variables d'environnement suivant :

  • Paramètres généraux applicables à l'ensemble de la procédure de migration.
  • Paramètres de connexion Datastream utilisés pour créer et gérer des profils de connexion Datastream.
  • Paramètres d'emplacement des données Datastream pour gérer l'emplacement des données dans le bucket Cloud Storage pendant la migration.
  • Paramètres de modèle Dataflow pour gérer le pipeline qui copiera les données du bucket Cloud Storage dans votre base de données Firestore compatible avec MongoDB.
  • Paramètres de modèle Dataflow supplémentaires : ces paramètres sont dérivés d'autres paramètres que vous spécifiez et vous n'avez pas besoin de les définir.
  • Paramètres de connexion Firestore pour établir une connexion à votre base de données Firestore de destination compatible avec MongoDB.

Définissez les variables suivantes avant de passer à d'autres commandes de ce guide :

# General parameters
PROJECT_ID="PROJECT_ID"
LOCATION="LOCATION"

# Datastream connection parameters
SRC_CONNECTION_PROFILE_NAME="SRC_CONNECTION_PROFILE_NAME"
DST_CONNECTION_PROFILE_NAME="DST_CONNECTION_PROFILE_NAME"
DATASTREAM_NAME="DATASTREAM_NAME"

# Datastream data placement parameters
GCS_BUCKET_NAME="GCS_BUCKET_NAME"
GCS_BUCKET_ROOT_PATH="GCS_BUCKET_ROOT_PATH"
GCS_BUCKET_SUB_PATH="GCS_BUCKET_SUB_PATH"

# Dataflow template parameters
GCS_BUCKET_TEMPLATE_PATH="GCS_BUCKET_TEMPLATE_PATH"
NUM_WORKERS=NUM_WORKERS
MAX_WORKERS=MAX_WORKERS
WORKER_TYPE="WORKER_TYPE"

# Additional Dataflow template parameters: these are initialized
# from parameters above and don't require further customization
INPUT_FILE_LOCATION="gs://${GCS_BUCKET_NAME}/${GCS_BUCKET_ROOT_PATH}/${GCS_BUCKET_SUB_PATH}/"
TEMP_OUTPUT_LOCATION="gs://${GCS_BUCKET_NAME}/${GCS_BUCKET_ROOT_PATH}/tmp"
DLQ_LOCATION="gs://${GCS_BUCKET_NAME}/${GCS_BUCKET_ROOT_PATH}/dql"
STAGING_LOCATION="gs://${GCS_BUCKET_NAME}/${GCS_BUCKET_ROOT_PATH}/staging"

# Firestore connection parameters
FIRESTORE_CONNECTION_URI="FIRESTORE_CONNECTION_URI"
FIRESTORE_DATABASE_NAME="FIRESTORE_DATABASE_NAME"

Remplacez les éléments suivants :

  • Paramètres généraux :

    • PROJECT_ID : ID du Google Cloud projet dans lequel le pipeline de migration s’exécutera. Exemple : example-project.

      Il est possible d'utiliser une base de données Firestore de destination compatible avec MongoDB située dans un autre projet. Toutefois, ce guide suppose que toutes les ressources pertinentes se trouvent dans le même projet.

    • LOCATION : région dans laquelle le pipeline de migration s'exécutera. Exemples : nam5, us-central1.

      Nous vous recommandons d'utiliser la même région que la base de données Firestore de destination compatible avec MongoDB.

  • Paramètres de connexion Datastream :

  • Paramètres d'emplacement des données Datastream :

    • GCS_BUCKET_NAME : nom du bucket Cloud Storage que vous avez créé précédemment. Exemple : mongo-migration-bucket.

      Cette valeur sera utilisée ultérieurement pour créer un profil de connexion de destination.

    • GCS_BUCKET_ROOT_PATH : nom du répertoire de premier niveau dans le bucket Cloud Storage pour placer les données intermédiaires pendant la migration. Exemple : mongo-migration-root.

      Cette valeur sera utilisée ultérieurement pour créer un profil de connexion de destination.

    • GCS_BUCKET_TEMPLATE_PATH : sous-chemin d'accès dans le GCS_BUCKET_ROOT_PATH répertoire pour une instance Datastream donnée.

      Le même profil de connexion de destination peut être utilisé pour plusieurs exportations vers Cloud Storage. Toutefois, vous devez désigner un sous-chemin d'accès unique pour chaque migration. Exemple : mongo-migration-data-0.

      Cette valeur sera utilisée ultérieurement pour créer un flux.

  • Paramètres de modèle Dataflow :

    • GCS_BUCKET_TEMPLATE_PATH : sous-chemin d'accès dans le GCS_BUCKET_ROOT_PATH répertoire où un modèle Dataflow sera préparé. Exemple : mongo-migration-template-path.

    • NUM_WORKERS : nombre initial de nœuds de calcul avec lesquels exécuter le modèle Dataflow. Exemple : 2.

    • MAX_WORKERS : nombre maximal de nœuds de calcul avec lesquels exécuter le modèle Dataflow. Exemple : 8.

    • WORKER_TYPE : type d'instance Compute Engine à utiliser pour la tâche Dataflow. Le type de machine recommandé est e2-highmem-8.

  • Paramètres de connexion Firestore :

Définir des variables d'environnement spécifiques au type de base de données source

Les modèles suivants permettent de configurer des variables d'environnement spécifiques au type de base de données source compatible avec MongoDB et à son déploiement.

MongoDB sur Compute Engine

Les variables suivantes sont spécifiques aux bases de données source MongoDB situées dans un cluster autogéré (Compute Engine). Définissez-les avant de passer à d'autres commandes de ce guide :

# Google Compute Engine VM MongoDB Parameters
MONGODB_USERNAME="MONGODB_USERNAME"
MONGODB_PASSWORD="MONGODB_PASSWORD"
MONGODB_IP_ADDRESS="MONGODB_IP_ADDRESS"
REPLICA_SET="REPLICA_SET"
MONGODB_DATABASE_NAME="MONGODB_DATABASE_NAME"
PRIVATE_CONNECTION_NAME="PRIVATE_CONNECTION_NAME"

Remplacez les éléments suivants :

  • MONGODB_USERNAME : nom d'utilisateur de la base de données source compatible avec MongoDB. Exemple : mongouser.

  • MONGODB_PASSWORD : mot de passe de la base de données source compatible avec MongoDB. Exemple : mongopassword.

  • MONGODB_IP_ADDRESS : spécifiez l'adresse IP interne, ainsi que le numéro de port, de la VM qui héberge votre serveur MongoDB. Exemple : 10.0.0.1:27017.

    • Pour les déploiements qui ne sont pas segmentés, mais configurés avec des ensembles d'instances dupliquées, l'adresse IP de n'importe quelle instance dupliquée de l'ensemble est valide. Toutefois, nous vous recommandons d'utiliser l'une des instances dupliquées secondaires.

    • Pour les clusters segmentés, spécifiez l'adresse de l'un de vos serveurs mongos.

  • (Uniquement pour les clusters avec des ensembles d'instances dupliquées qui ne sont pas segmentés) REPLICA_SET : spécifiez le nom de l'ensemble d'instances dupliquées à utiliser pour le processus de migration. Exemple : rs0.

  • MONGODB_DATABASE_NAME : nom de la base de données source compatible avec MongoDB. Exemple : source_db.

  • PRIVATE_CONNECTION_NAME : ID de la configuration de connectivité privée que vous avez créée précédemment. Exemple : pc_name.

MongoDB via SSH

Si vous gérez un déploiement MongoDB privé en dehors de Compute Engine, Datastream est compatible avec la connexion à votre base de données source via un tunnel SSH de transfert. Pour en savoir plus, consultez la section Tunnels SSH.

Les variables suivantes sont spécifiques à la connexion aux bases de données source MongoDB via un tunnel SSH de transfert. Définissez-les avant de passer à d'autres commandes de ce guide :

# MongoDB over an SSH Tunnel Parameters
MONGODB_USERNAME="MONGODB_USERNAME"
MONGODB_PASSWORD="MONGODB_PASSWORD"
MONGODB_IP_ADDRESS="MONGODB_IP_ADDRESS"
REPLICA_SET="REPLICA_SET"
MONGODB_DATABASE_NAME="MONGODB_DATABASE_NAME"
BASTION_IP_ADDRESS="BASTION_IP_ADDRESS"
BASTION_SSH_PORT="BASTION_SSH_PORT"
BASTION_SSH_USERNAME="BASTION_SSH_USERNAME"
BASTION_SSH_PRIVATE_KEY="BASTION_SSH_PRIVATE_KEY"

Remplacez les éléments suivants :

  • MONGODB_USERNAME : nom d'utilisateur de la base de données source compatible avec MongoDB. Exemple : mongouser.

  • MONGODB_PASSWORD : mot de passe de la base de données source compatible avec MongoDB. Exemple : mongopassword.

  • MONGODB_IP_ADDRESS : spécifiez l'adresse IP interne, ainsi que le numéro de port, de la VM qui héberge votre serveur MongoDB. Exemple : 10.0.0.1:27017.

    • Pour les déploiements qui ne sont pas segmentés, mais configurés avec des ensembles d'instances dupliquées, l'adresse IP de n'importe quelle instance dupliquée de l'ensemble est valide. Toutefois, nous vous recommandons d'utiliser l'une des instances dupliquées secondaires.

    • Pour les clusters segmentés, spécifiez l'adresse de l'un de vos serveurs mongos.

  • (Uniquement pour les clusters avec des ensembles d'instances dupliquées qui ne sont pas segmentés) REPLICA_SET : spécifiez le nom de l'ensemble d'instances dupliquées à utiliser pour le processus de migration. Exemple : rs0.

  • MONGODB_DATABASE_NAME : nom de la base de données source compatible avec MongoDB. Exemple : source_db.

  • BASTION_IP_ADDRESS : adresse de l'hôte sur votre réseau qui peut accepter une connexion SSH. Il peut s'agir du serveur MongoDB lui-même ou d'un hôte Bastion désigné qui autorise l'accès SSH à partir d'un réseau public et fournit également une connectivité interne au serveur MongoDB réel. Exemple : 30.0.0.1.

  • BASTION_SSH_PORT : port SSH sur l'hôte. Exemple : 22.

  • BASTION_SSH_USERNAME : nom d'utilisateur pour la connexion SSH.

  • BASTION_SSH_PRIVATE_KEY : charge utile complète de la clé privée SSH. Par exemple, pour une clé RSA, cette charge utile inclut l'en-tête -----BEGIN RSA PRIVATE KEY----- et le pied de page -----END RSA PRIVATE KEY-----. Exemple : BASTION_SSH_PRIVATE_KEY=$(cat ~/.ssh/private_key)

Amazon DocumentDB

Assurez-vous de disposer de la clé SSH privée pour l'instance Amazon EC2 qui fournira la connexion au cluster DocumentDB. Assurez-vous également d'avoir téléchargé le bundle de certificats spécifique à la région, comme décrit dans la section Configuration des ressources , et d'avoir extrait et validé un certificat spécifique.

Les variables suivantes sont spécifiques à la connexion aux bases de données source DocumentDB via un tunnel SSH de transfert. Définissez-les avant de passer à d'autres commandes de ce guide :

# DocumentDB over an EC2 SSH Tunnel Parameters
MONGODB_USERNAME="MONGODB_USERNAME"
MONGODB_PASSWORD="MONGODB_PASSWORD"
MONGODB_HOST_ADDRESS="MONGODB_HOST_ADDRESS"
REPLICA_SET="REPLICA_SET"
MONGODB_DATABASE_NAME="MONGODB_DATABASE_NAME"
BASTION_IP_ADDRESS="BASTION_IP_ADDRESS"
BASTION_SSH_PORT="BASTION_SSH_PORT"
BASTION_SSH_USERNAME="BASTION_SSH_USERNAME"
BASTION_SSH_PRIVATE_KEY="BASTION_SSH_PRIVATE_KEY"
DOCUMENT_DB_CA_CERTIFICATE="DOCUMENT_DB_CA_CERTIFICATE"

Remplacez les éléments suivants :

  • MONGODB_USERNAME : nom d'utilisateur de la base de données source DocumentDB. Exemple : mongouser.

  • MONGODB_PASSWORD : mot de passe de la base de données source DocumentDB. Exemple : mongopassword.

  • MONGODB_HOST_ADDRESS : adresse du cluster DocumentDB. Exemple : mydocumentdb.cluster-abcd.us-east-2.docdb.amazonaws.com:27017.

  • REPLICA_SET : spécifiez le nom de l'ensemble d'instances dupliquées à utiliser pour le processus de migration. Exemple : rs0.

  • MONGODB_DATABASE_NAME : nom de la base de données source DocumentDB. Exemple : source_db.

  • BASTION_IP_ADDRESS : adresse IP externe de l'instance EC2 qui autorise l'accès SSH à partir d'un réseau public et fournit également une connectivité interne au cluster DocumentDB dans votre Amazon VPC. Exemple : 30.0.0.1.

  • BASTION_SSH_PORT : port SSH sur l'hôte. Exemple : 22.

  • BASTION_SSH_USERNAME : nom d'utilisateur pour la connexion SSH.

  • BASTION_SSH_PRIVATE_KEY : charge utile complète de la clé privée SSH. Par exemple, pour une clé RSA, cette charge utile inclut l'en-tête -----BEGIN RSA PRIVATE KEY----- et le pied de page -----END RSA PRIVATE KEY-----. Exemple : BASTION_SSH_PRIVATE_KEY=$(cat ~/ec2_bastion_host.pem)

  • DOCUMENT_DB_CA_CERTIFICATE : charge utile complète du certificat d'autorité de certification DocumentDB. Cette charge utile doit inclure l'en-tête -----BEGIN CERTIFICATE----- et le pied de page -----END CERTIFICATE-----, et ne doit inclure qu'un seul certificat. Exemple : BASTION_SSH_PRIVATE_KEY=$(cat ~/us-east-1.pem)

Azure Cosmos DB

Les variables suivantes sont spécifiques aux bases de données source Azure Cosmos DB. Définissez-les avant de passer à d'autres commandes de ce guide :

# Azure Cosmos DB Parameters
MONGODB_USERNAME="MONGODB_USERNAME"
MONGODB_PASSWORD="MONGODB_PASSWORD"
MONGODB_HOST_ADDRESS="MONGODB_HOST_ADDRESS"
MONGODB_DATABASE_NAME="MONGODB_DATABASE_NAME"

Remplacez les éléments suivants :

  • MONGODB_USERNAME : nom d'utilisateur de la base de données source compatible avec MongoDB. Exemple : mongouser.
  • MONGODB_PASSWORD : mot de passe de la base de données source compatible avec MongoDB. Exemple : mongopassword.
  • MONGODB_HOST_ADDRESS : nom d'hôte de la base de données source compatible avec MongoDB. La valeur doit être conforme au format de connexion SRV MongoDB. Exemple : host.cosmos.azure.example.com.
  • MONGODB_DATABASE_NAME : nom de la base de données source compatible avec MongoDB. Exemple : source_db.

MongoDB Atlas

Les variables suivantes sont spécifiques aux bases de données source MongoDB Atlas. Définissez-les avant de passer à d'autres commandes de ce guide :

# MongoDB Atlas Parameters
MONGODB_USERNAME="MONGODB_USERNAME"
MONGODB_PASSWORD="MONGODB_PASSWORD"
MONGODB_HOST_ADDRESS="MONGODB_HOST"
MONGODB_DATABASE_NAME="MONGODB_DATABASE_NAME"

Remplacez les éléments suivants :

  • MONGODB_USERNAME : nom d'utilisateur de la base de données source compatible avec MongoDB. Exemple : mongouser.
  • MONGODB_PASSWORD : mot de passe de la base de données source compatible avec MongoDB. Exemple : mongopassword.
  • MONGODB_HOST_ADDRESS : nom d'hôte de la base de données source compatible avec MongoDB. La valeur doit être conforme au format de connexion SRV MongoDB. Exemple : host.mongodb.example.com.
  • MONGODB_DATABASE_NAME : nom de la base de données source compatible avec MongoDB. Exemple : source_db.

Étape suivante

Passez à la section Créer des profils de connexion.