環境変数を構成する
このページでは、ローカル環境で環境変数を構成する移行プロセスの準備部分について説明します。この環境から、移行プロセスを構成して実行するコマンドを実行します。これらの各コマンドは、このステージで設定した 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"
次のように置き換えます。
一般的なパラメータ:
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-path
NUM_WORKERS: Dataflow テンプレートの実行を開始するワーカーの数。例:
2
MAX_WORKERS: Dataflow テンプレートを実行するワーカーの最大数。例:
8
WORKER_TYPE: Dataflow ジョブに使用する Compute Engine インスタンス タイプ。推奨されるマシンタイプは
e2-highmem-8
です。
Firestore 接続パラメータ:
FIRESTORE_DATABASE_NAME: データを移行する MongoDB 互換の Firestore データベースの名前。例:
firestore-database-name
FIRESTORE_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 互換の移行元データベースのユーザー名。例:
mongouser
MONGODB_PASSWORD: MongoDB 互換の移行元データベースのパスワード。例:
mongopassword
MONGODB_IP_ADDRESS: MongoDB サーバーをホストする VM の内部 IP アドレスとポート番号を指定します。例:
10.0.0.1:27017
シャーディングされていないが、レプリカ セットで構成されているデプロイの場合、セット内の任意のレプリカの IP アドレスが有効です。ただし、セカンダリ レプリカのいずれかを使用することをおすすめします。
シャーディングされたクラスタの場合は、mongos サーバーのいずれかのアドレスを指定します。
(シャーディングされていないレプリカ セットを含むクラスタの場合のみ)REPLICA_SET: 移行プロセスで使用する必要があるレプリカ セットの名前を指定します。例:
rs0
MONGODB_DATABASE_NAME: MongoDB 互換のソース データベースの名前。例:
source_db
PRIVATE_CONNECTION_NAME: 以前に作成したプライベート接続構成の ID。例:
pc_name
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 互換の移行元データベースのユーザー名。例:
mongouser
MONGODB_PASSWORD: MongoDB 互換の移行元データベースのパスワード。例:
mongopassword
MONGODB_IP_ADDRESS: MongoDB サーバーをホストする VM の内部 IP アドレスとポート番号を指定します。例:
10.0.0.1:27017
シャーディングされていないが、レプリカ セットで構成されているデプロイの場合、セット内の任意のレプリカの IP アドレスが有効です。ただし、セカンダリ レプリカのいずれかを使用することをおすすめします。
シャーディングされたクラスタの場合は、mongos サーバーのいずれかのアドレスを指定します。
(シャーディングされていないレプリカ セットを含むクラスタの場合のみ)REPLICA_SET: 移行プロセスで使用する必要があるレプリカ セットの名前を指定します。例:
rs0
MONGODB_DATABASE_NAME: MongoDB 互換のソース データベースの名前。例:
source_db
BASTION_IP_ADDRESS: SSH 接続を受け入れることができるネットワーク上のホストのアドレス。これは、MongoDB サーバー自体、またはパブリック ネットワークからの SSH アクセスを許可し、実際の MongoDB サーバーへの内部接続も提供する指定された踏み台ホストにすることができます。例:
30.0.0.1
BASTION_SSH_PORT: ホストの SSH ポート。例:
22
BASTION_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 ソース データベースのユーザー名。例:
mongouser
MONGODB_PASSWORD: DocumentDB の移行元データベースのパスワード。例:
mongopassword
MONGODB_HOST_ADDRESS: DocumentDB クラスタのアドレス。例:
mydocumentdb.cluster-abcd.us-east-2.docdb.amazonaws.com:27017
REPLICA_SET: 移行プロセスで使用する必要があるレプリカセットの名前を指定します。例:
rs0
MONGODB_DATABASE_NAME: DocumentDB ソース データベースの名前。例:
source_db
BASTION_IP_ADDRESS: パブリック ネットワークからの SSH アクセスを許可し、Amazon VPC 内の DocumentDB クラスタへの内部接続も提供する EC2 インスタンスの外部 IP アドレス。例:
30.0.0.1
BASTION_SSH_PORT: ホストの SSH ポート。例:
22
BASTION_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
次のステップ
接続プロファイルを作成するに進みます。