環境変数を構成する
このページでは、 移行プロセス の準備について説明します。ローカル環境で環境変数を構成します。この環境から、移行プロセスを構成して実行するコマンドを実行します。これらのコマンドはそれぞれ、この段階で設定した 1 つ以上の環境変数を使用します。
この段階では、次の操作を行います。
サポートされているすべての MongoDB 互換の移行元に共通する環境変数を設定します。
MongoDB 互換の移行元データベースのタイプとデプロイ方法に固有の環境変数を設定します。
共通の環境変数を設定する
次のテンプレートは、サポートされているすべての MongoDB 互換の移行元に共通する環境変数を設定するのに役立ちます。MongoDB 移行元に固有の追加変数は後で追加します。
このテンプレートでは、次の環境変数のセットを構成します。
- 移行手順全体に適用される一般的なパラメータ 。
- Datastream 接続パラメータ。これは、Datastream 接続プロファイルを作成 および管理 するために使用されます。
- 移行中に Cloud Storage バケット内のデータ配置を管理するためのDatastream データ配置パラメータ 。
- Cloud Storage バケットから MongoDB 互換の Firestore データベースにデータをコピーするパイプラインを管理するためのDataflow テンプレート パラメータ 。
- 追加の Dataflow テンプレート パラメータ : これらのパラメータは、指定した他のパラメータから派生するため、設定する必要はありません。
- 宛先の MongoDB 互換の Firestore データベースへの接続を確立するためのFirestore 接続パラメータ 。
このガイドの他のコマンドに進む前に、次の変数を設定します。
# 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"
次のように置き換えます。
一般的なパラメータ:
PROJECT_ID: 移行パイプラインを実行する プロジェクト Google Cloud のプロジェクト ID。 例:
example-project別のプロジェクトにある MongoDB 互換の宛先 Firestore データベースを使用することもできます。 ただし、このガイドでは、関連するすべてのリソースが同じプロジェクトにあることを前提としています。
LOCATION: 移行パイプラインを実行するリージョン。例:
nam5、us-central1MongoDB 互換の宛先 Firestore データベースと同じリージョンを使用することをおすすめします。
Datastream 接続パラメータ:
SRC_CONNECTION_PROFILE_NAME:MongoDB 互換の移行元データベースの Datastream 接続プロファイルの人間が読める名前。例:
source-mongo-profileこの名前の接続プロファイルは後で作成します。
DST_CONNECTION_PROFILE_NAME:宛先 Cloud Storage バケットの Datastream 接続プロファイル の人間が読める名前。例:
destination-gcs-profileこの名前の宛先接続プロファイルは後で作成します。
DATASTREAM_NAME:MongoDB 互換の移行元データベースから Cloud Storage にデータを転送する Datastream ストリーム の人間が読める名前。例:
mongo-to-gcs-streamこのストリームは後で作成します。
Datastream データ配置パラメータ:
GCS_BUCKET_NAME: 先ほど作成した Cloud Storage バケットの名前。例:
mongo-migration-bucketこの値は、後で宛先接続プロファイルを作成するために使用します。
GCS_BUCKET_ROOT_PATH:移行中に中間データを配置する Cloud Storage バケット内の最上位ディレクトリの名前。例:
mongo-migration-rootこの値は、後で宛先接続プロファイルを作成するために使用します。
GCS_BUCKET_TEMPLATE_PATH: 特定の Datastream インスタンスの GCS_BUCKET_ROOT_PATH ディレクトリ内のサブパス。
同じ宛先接続プロファイルを使用して、Cloud Storage に複数のエクスポートを行うことができます。ただし、移行ごとに一意のサブパスを指定する必要があります 。例:
mongo-migration-data-0この値は、後でストリームを作成するために使用します。
Dataflow テンプレート パラメータ:
GCS_BUCKET_TEMPLATE_PATH: Dataflow テンプレートがステージングされる GCS_BUCKET_ROOT_PATH ディレクトリ内のサブパス。例:
mongo-migration-template-pathNUM_WORKERS: Dataflow テンプレートを実行するワーカーの開始数。例:
2MAX_WORKERS: Dataflow テンプレートを実行するワーカーの最大数。例:
8WORKER_TYPE: Dataflow ジョブに使用する Compute Engine インスタンス タイプ。推奨されるマシンタイプは
e2-highmem-8です。
Firestore 接続パラメータ:
FIRESTORE_DATABASE_NAME:データを移行する MongoDB 互換の Firestore データベース の名前。例:
firestore-database-nameFIRESTORE_CONNECTION_URI: MongoDB 互換の Firestore データベースの 接続 URI 文字列 。
例:
mongodb://USERNAME:PASSWORD@CONNECTION_STRING:443/FIRESTORE_DATABASE_NAME?loadBalanced=true&authMechanism=SCRAM-SHA-256&tls=true&retryWrites=false
移行元データベースのタイプに固有の環境変数を設定する
次のテンプレートは、MongoDB 互換の移行元データベースのタイプとデプロイ方法に固有の環境変数を設定するのに役立ちます。
Compute Engine 上の MongoDB
次の変数は、自己管理クラスタ(Compute Engine)にある MongoDB 移行元データベースに固有のものです。このガイドの他のコマンドに進む前に設定してください。
# 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"
次のように置き換えます。
MONGODB_USERNAME:MongoDB 互換の移行元 データベースのユーザー名。例:
mongouserMONGODB_PASSWORD: MongoDB 互換の移行元 データベースのパスワード。例:
mongopasswordMONGODB_IP_ADDRESS: MongoDB サーバーをホストする VM の内部 IP アドレスと ポート番号を指定します。 例:
10.0.0.1:27017シャーディングされていないが、 レプリカセットで構成されているデプロイの場合、 セット内の任意のレプリカの IP アドレスが有効です。ただし、セカンダリ レプリカのいずれかを使用することをおすすめします。
(シャーディングされていないレプリカセットを含むクラスタのみ) REPLICA_SET:移行プロセスで使用するレプリカ セットの名前を指定します。例:
rs0MONGODB_DATABASE_NAME: MongoDB 互換の移行元 データベースの名前。例:
source_db
SSH 経由の MongoDB
Compute Engine の外部でプライベート MongoDB デプロイを管理している場合、Datastream はフォワード SSH トンネル経由で移行元データベースへの接続をサポートします。詳細については、SSH トンネルをご覧ください。
次の変数は、フォワード SSH トンネル経由で MongoDB 移行元データベースに接続する場合に固有のものです。このガイドの他のコマンドに進む前に設定してください。
# 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"
次のように置き換えます。
MONGODB_USERNAME:MongoDB 互換の移行元 データベースのユーザー名。例:
mongouserMONGODB_PASSWORD: MongoDB 互換の移行元 データベースのパスワード。例:
mongopasswordMONGODB_IP_ADDRESS: MongoDB サーバーをホストする VM の内部 IP アドレスと ポート番号を指定します。 例:
10.0.0.1:27017シャーディングされていないが、 レプリカセットで構成されているデプロイの場合、 セット内の任意のレプリカの IP アドレスが有効です。ただし、セカンダリ レプリカのいずれかを使用することをおすすめします。
(シャーディングされていないレプリカセットを含むクラスタのみ) REPLICA_SET:移行プロセスで使用するレプリカ セットの名前を指定します。例:
rs0MONGODB_DATABASE_NAME: MongoDB 互換の移行元 データベースの名前。例:
source_dbBASTION_IP_ADDRESS: SSH 接続を受け入れることができるネットワーク上のホストのアドレス 。これは、MongoDB サーバー自体、または パブリック ネットワークからの SSH アクセスを許可し、実際の MongoDB サーバーへの内部 接続を提供する指定の踏み台ホストにすることができます。 例:
30.0.0.1BASTION_SSH_PORT: ホストの SSH ポート。例:
22BASTION_SSH_USERNAME: SSH 接続のユーザー名。
BASTION_SSH_PRIVATE_KEY: SSH 秘密鍵の完全なペイロード。 たとえば、RSA 鍵の場合、このペイロードには
-----BEGIN RSA PRIVATE KEY-----ヘッダーと-----END RSA PRIVATE KEY-----フッターが含まれます。 例:BASTION_SSH_PRIVATE_KEY=$(cat ~/.ssh/private_key)
Amazon DocumentDB
DocumentDB クラスタへの接続を提供する Amazon EC2 インスタンスのプライベート SSH 鍵があることを確認してください。また、リソース構成セクションの説明に従ってリージョン固有の証明書バンドルをダウンロードし、特定の証明書を抽出して検証していることを確認してください。
次の変数は、フォワード SSH トンネル経由で DocumentDB 移行元データベースに接続する場合に固有のものです。このガイドの他のコマンドに進む前に設定してください。
# 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"
次のように置き換えます。
MONGODB_USERNAME: DocumentDB 移行元 データベースのユーザー名。例:
mongouserMONGODB_PASSWORD: DocumentDB 移行元 データベースのパスワード。例:
mongopasswordMONGODB_HOST_ADDRESS: DocumentDB クラスタのアドレス。 例:
mydocumentdb.cluster-abcd.us-east-2.docdb.amazonaws.com:27017REPLICA_SET: 移行プロセスで使用する レプリカセットの名前を指定します。例:
rs0MONGODB_DATABASE_NAME: DocumentDB 移行元データベースの名前。例:
source_dbBASTION_IP_ADDRESS: パブリック ネットワークからの SSH アクセスを許可し、Amazon VPC 内の DocumentDB クラスタへの内部接続を提供する EC2 インスタンスの外部 IP アドレス。例:
30.0.0.1BASTION_SSH_PORT: ホストの SSH ポート。例:
22BASTION_SSH_USERNAME: SSH 接続のユーザー名。
BASTION_SSH_PRIVATE_KEY: SSH 秘密鍵の完全なペイロード。 たとえば、RSA 鍵の場合、このペイロードには
-----BEGIN RSA PRIVATE KEY-----ヘッダーと-----END RSA PRIVATE KEY-----フッターが含まれます。 例:BASTION_SSH_PRIVATE_KEY=$(cat ~/ec2_bastion_host.pem)DOCUMENT_DB_CA_CERTIFICATE: DocumentDB CA 証明書の完全なペイロード。 このペイロードには、
-----BEGIN CERTIFICATE-----ヘッダーと-----END CERTIFICATE-----フッターが含まれている必要があり、証明書は 1 つだけにする必要があります。 例:BASTION_SSH_PRIVATE_KEY=$(cat ~/us-east-1.pem)
Azure Cosmos DB
次の変数は、Azure Cosmos DB 移行元データベースに固有のものです。このガイドの他のコマンドに進む前に設定してください。
# Azure Cosmos DB Parameters
MONGODB_USERNAME="MONGODB_USERNAME"
MONGODB_PASSWORD="MONGODB_PASSWORD"
MONGODB_HOST_ADDRESS="MONGODB_HOST_ADDRESS"
MONGODB_DATABASE_NAME="MONGODB_DATABASE_NAME"
次のように置き換えます。
- MONGODB_USERNAME:MongoDB 互換の移行元
データベースのユーザー名。例:
mongouser - MONGODB_PASSWORD: MongoDB 互換の移行元
データベースのパスワード。例:
mongopassword - MONGODB_HOST_ADDRESS: MongoDB 互換の
移行元データベースのホスト名。値は、
MongoDB SRV 接続形式に準拠している必要があります。
例:
host.cosmos.azure.example.com - MONGODB_DATABASE_NAME: MongoDB 互換の移行元
データベースの名前。例:
source_db
MongoDB Atlas
次の変数は、MongoDB Atlas 移行元データベースに固有のものです。このガイドの他のコマンドに進む前に設定してください。
# MongoDB Atlas Parameters
MONGODB_USERNAME="MONGODB_USERNAME"
MONGODB_PASSWORD="MONGODB_PASSWORD"
MONGODB_HOST_ADDRESS="MONGODB_HOST"
MONGODB_DATABASE_NAME="MONGODB_DATABASE_NAME"
次のように置き換えます。
- MONGODB_USERNAME:MongoDB 互換の移行元
データベースのユーザー名。例:
mongouser - MONGODB_PASSWORD: MongoDB 互換の移行元
データベースのパスワード。例:
mongopassword - MONGODB_HOST_ADDRESS: MongoDB 互換の
移行元データベースのホスト名。値は、
MongoDB SRV 接続形式に準拠している必要があります。
例:
host.mongodb.example.com - MONGODB_DATABASE_NAME: MongoDB 互換の移行元
データベースの名前。例:
source_db