このページでは、Database Migration Service を使用して Oracle から Cloud SQL for PostgreSQL への異種移行を行うために、セルフホスト型 Oracle ソースへのネットワーク接続を構成する方法について説明します。
セルフホスト型 Oracle ソースからの移行に必要なネットワーク接続を構成するには、次の 3 つの方法があります。
- パブリック IP 許可リスト
- フォワード SSH トンネル
- Private Service Connect インターフェースを使用したプライベート IP 接続
- Virtual Private Cloud ピアリングを使用したプライベート IP 接続
IP 許可リスト接続を構成する
パブリック IP 許可リスト接続方法を使用する手順は次のとおりです。
- 移行元データベースに、 パブリック インターネットから到達可能な IP アドレスがあることを確認します。IP アドレスを使用して接続する必要はありません。 IP に関連付けられた DNS レコードがある場合は、代わりにそのレコードを使用できます。
- Database Migration Service からの接続を受け入れるように、移行元データベース サーバーにインバウンド ファイアウォール ルールを作成します。次の構成を使用します。
- ルールタイプには
portを使用します。 - 許可される IP アドレス範囲に、移行ジョブを作成するリージョンのすべての Database Migration Service パブリック IP アドレスを追加します。
- プロトコルを
TCPに設定します。 - ルールに関連付けられたポート番号を、移行元データベースが受信接続をリッスンしているポートに設定します。これは、移行元接続プロファイルに入力する必要があるポート番号と同じです。
Oracle サーバーはデフォルトで
1521ポートを使用します。
ファイアウォール ルールの構成手順は、使用する サーバー ソフトウェアによって異なります。詳細については、ファイアウォール プロダクトのドキュメントをご覧ください。
- ルールタイプには
- 後の段階で移行元接続プロファイルを作成するときに、 [接続方法の定義] セクションで [IP 許可リスト] を選択します。
フォワード SSH トンネル経由の接続を構成する
Secure Shell(SSH)トンネルを使用して移行元データベースに接続する手順は次のとおりです。
- Database Migration Service と移行元データベース間のトンネルを開くことができる仮想マシン(VM)を作成します
。トンネル サーバーには、次の条件を満たす
Unix/Linux ホストを指定できます。
- SSH 経由でパブリック インターネットからアクセスできる。
- 移行元データベースのプライベート IP アドレスにアクセスできる。
SSH サーバーで、Database Migration Service が SSH トンネルへの接続に使用できるユーザー アカウントを作成します。 SSH トンネルへの接続に使用できるユーザー アカウントを作成します。
たとえば、Ubuntu システムでは、次のコマンドを使用できます。
- ユーザー アカウントを作成します。
adduser TUNNEL_ACCOUNT_USERNAME - セキュリティを強化するため、ユーザー アカウントのシェル アクセスを制限します。
usermod -s /usr/sbin/nologin TUNNEL_ACCOUNT_USERNAME
- ユーザー アカウントを作成します。
トンネルに接続するときに Database Migration Service で使用する認証方法を決定します。
パスワードを使用することも、移行元接続プロファイルを作成するときに Database Migration Service にアップロードできる
PEM形式の SSH 鍵を生成することもできます。- パスワードを使用する場合は、追加の設定は必要ありません。 TUNNEL_ACCOUNT_USERNAME アカウントに作成したパスワードを覚えておいてください。
- 鍵ベースの認証を使用する場合は、
秘密鍵と公開鍵のペアを生成する必要があります。たとえば、
ssh-keygenユーティリティを使用できます:- 鍵ペアを生成します。
ssh-keygen -m PEM -f YOUR_KEY_NAME
- 公開鍵(
YOUR_KEY_NAME.pub)をトンネル サーバーの~/.ssh/ディレクトリにコピーします。 - 秘密鍵を保存します。移行元接続プロファイルを作成するときに、後で Database Migration Service にアップロードする必要があります。
- 鍵ペアを生成します。
- 組織の要件に合わせてフォワード SSH
トンネルを構成するように、
/etc/ssh/sshd_configファイルを編集します。 次の設定を使用することをおすすめします。# Only allow the Database Migration Service user to connect. AllowUsers TUNNEL_ACCOUNT_USERNAME # Send keep-alive packets every 60 seconds to ensure that # the tunnel doesn't close during the migration ServerAliveInterval=60 # Optional: Force key-based authentication PasswordAuthentication no # Enables Database Migration Service to connect from a different host PermitTunnel yes GatewayPorts yes
sshコマンドを実行してトンネルを開始します。以下のコマンドデータを使用する前に、次の置換を行います。
- TUNNEL_SERVER_SSH_PORT は、サーバーが SSH 接続をリッスンしているポート番号に置き換えます。
- SOURCE_DATABASE_PRIVATE_IP は、移行元データベースのプライベート IP アドレスに置き換えます。SSH サーバーは、その IP に到達できる必要があります。
- SOURCE_DATABASE_PORT は、移行元データベースが接続をリッスンしているポート番号に置き換えます。Oracle の TCP 接続のデフォルトのポート
番号は
1433です。 - USERNAME は、トンネルを実行するユーザー アカウントの 名前に置き換えます。これは、 TUNNEL_ACCOUNT_USERNAME とは異なるアカウントです。
- TUNNEL_SERVER_PUBLIC_IP は、SSH トンネル サーバーのパブリック IP に置き換えます。
ssh -N -L \ TUNNEL_SERVER_SSH_PORT:SOURCE_DATABASE_PRIVATE_IP:SOURCE_DATABASE_PORT \ USERNAME@TUNNEL_SERVER_PUBLIC_IP
- 移行ジョブを作成するリージョンの Database Migration Service パブリック IP アドレスからの接続を受け入れるように、SSH トンネルにインバウンド ファイアウォール ルールを作成します。
- 後の段階で
移行元接続プロファイルを作成するときに、次の操作を行います。
- [接続の詳細を定義] セクションに、移行元 Oracle インスタンスのプライベート IP を入力します。
- [接続方法の定義] セクションで、 [フォワード SSH トンネル] を選択します。
- SSH サーバーのパブリック IP アドレスまたはホスト名を指定します。
- トンネル サーバーの SSH 接続用に指定したポートを指定します。
- Database Migration Service が接続するユーザーのユーザー名(TUNNEL_ACCOUNT_USERNAME の値)を入力します。
- [認証方法] プルダウン メニューから、TUNNEL_ACCOUNT_USERNAME ユーザーで使用する認証方法を選択します。
- ユーザー パスワードを使用する場合は、[パスワード] を選択し、 TUNNEL_ACCOUNT_USERNAMEパスワードをフォームに入力します。
- 鍵ベースの認証を使用するように SSH サーバーを構成した場合は、[秘密鍵/公開鍵ペア] を選択し、秘密鍵 を
ssh-keygenコマンドで生成した をアップロードします。
Private Service Connect インターフェースを使用してプライベート接続を構成する
この接続方法では、 VPC ピアリング割り当てを使用せずに、移行元データベースのプライベート IP に接続できます。Private Service Connect インターフェースは、プライベート IP 接続におすすめの方法です。
必要なロール
Private Service Connect インターフェースを構成するために必要な権限を取得するには、 移行プロセスに関与する次の アカウントに対して、プロジェクトに必要な IAM ロールを付与するよう管理者に依頼してください。
- 移行を実行するユーザー アカウント:
- ネットワーク アタッチメントを作成して管理する:
Compute ネットワーク管理者(
roles/compute.networkAdmin) - プライベート接続構成を作成して管理する:
Database Migration 管理者 (
roles/datamigration.admin)
- ネットワーク アタッチメントを作成して管理する:
Compute ネットワーク管理者(
Database Migration Service とは異なるプロジェクトでネットワーク アタッチメントまたはその基盤となるサブネットワークを作成する必要がある場合(共有 VPC ホスト プロジェクトを使用する場合など)、Database Migration Service サービス アカウント(
service-PROJECT_NUMBER@gcp-sa-datamigration.iam.gserviceaccount.com)に次のロールを付与する必要があります。 Compute ネットワーク閲覧者(roles/compute.networkViewer)
ロールの付与の詳細については、 アクセスを管理するをご覧ください。
これらの事前定義ロールには、Database Migration Service を使用して同種 SQL Server 移行を実行するために必要な権限が含まれています。必要とされる正確な権限については、「必要な権限 」セクションを開いてご確認ください。
必要な権限
Database Migration Service を使用して同種 SQL Server 移行を実行するには、次の権限が必要です:
- 移行を実行するユーザー アカウント:
datamigration.*compute.networkAttachments.createcompute.networkAttachments.getcompute.networkAttachments.listcompute.networkAttachments.updatecompute.networkAttachments.delete
- Database Migration Service サービス アカウント:
compute.networkAttachments.getcompute.networkAttachments.updatecompute.subnetworks.getcompute.subnetworks.list
カスタムロールや他の 事前定義ロールを使用して、これらの権限を取得することもできます。
内のセルフホスト型ソースの場合 Google Cloud
Compute Engine VM でホストされている移行元 Oracle データベースに Private Service Connect インターフェースを使用してプライベート接続を使用する手順は次のとおりです。
- セルフホスト型ソースが存在する VPC にネットワーク アタッチメントを作成します。
手順は次のとおりです。
- コンソール Google Cloud で、[ネットワーク アタッチメント] ページに移動します。
- [ネットワーク アタッチメントの作成] をクリックします。
- アタッチメントの名前を入力します。
- [ネットワーク] メニューから、セルフホスト型ソースが存在する VPC を選択します。
-
リージョンには、移行先データベースを作成する予定のリージョンと同じリージョンを使用します。
Database Migration Service は完全なリージョン プロダクトです。つまり、移行に関連するすべてのエンティティ (移行元と移行先の接続プロファイル、 移行ジョブ、移行先データベース、変換ワークスペース)は、 単一のリージョンに保存する必要があります。
-
[**接続の設定**] で、 [**選択したプロジェクトの接続を受け入れる**] を選択します。
後でプライベート接続構成を作成すると、Database Migration Service によってプロデューサー プロジェクトが [承認済みプロジェクト] リストに自動的に追加されます 。
- [承認済みプロジェクト] や [不承認となったプロジェクト] は追加しないでください。
- [ネットワーク アタッチメントの作成] をクリックします。
- Database Migration Service で、 Private Service Connect インターフェースのプライベート接続構成を作成します。
- 後の段階で
移行元接続プロファイルを作成するときに、次の操作を行います。
- In the [Define connection details] section, enter the IP address of the Compute Engine VM where you host the Oracle database.
VM の IP アドレスは コンソールで確認できます。 Google Cloud
- [接続方法の定義] セクションで、 [**プライベート接続**] を選択します。
- プルダウン メニューから、前の手順で作成したプライベート接続構成 を選択します。
- In the [Define connection details] section, enter the IP address of the Compute Engine VM where you host the Oracle database.
の外部にあるセルフホスト型ソースの場合 Google Cloud
の外部のネットワークに存在するセルフホスト型 Oracle ソース データベースに Private Service Connect インターフェース を使用してプライベート接続を使用する Google Cloud手順は次のとおりです。
-
Cloud VPN を使用して Oracle ソースへの直接接続を設定します。
ネットワーク アーキテクチャによっては、システムに追加の VPN ゲートウェイを設定する必要がある場合があります。 詳細については、 Cloud VPN ドキュメントのピア VPN ゲートウェイに対する HA VPN ゲートウェイを作成する をご覧ください。
- 省略可: Cloud VPN がある VPC ネットワークでプライベート接続構成を作成できない場合は、Compute Engine に リバース プロキシ仮想マシン(VM)を作成して、VPC 間の接続を転送します。
- Cloud VPN がある VPC にネットワーク アタッチメントを作成します。
手順は次のとおりです。
- コンソール Google Cloud で、[ネットワーク アタッチメント] ページに移動します。
- [ネットワーク アタッチメントの作成] をクリックします。
- アタッチメントの名前を入力します。
- [ネットワーク] メニューから、セルフホスト型ソースが存在する VPC を選択します。
-
リージョンには、移行先データベースを作成する予定のリージョンと同じリージョンを使用します。
Database Migration Service は完全なリージョン プロダクトです。つまり、移行に関連するすべてのエンティティ (移行元と移行先の接続プロファイル、 移行ジョブ、移行先データベース、変換ワークスペース)は、 単一のリージョンに保存する必要があります。
- From the [Subnetwork] menu, select a subnet where you have at least 6 free usable IP addresses for Database Migration Service (that is, a
/29range). -
[**接続の設定**] で、 [**選択したプロジェクトの接続を受け入れる**] を選択します。
後でプライベート接続構成を作成すると、Database Migration Service によってプロデューサー プロジェクトが [承認済みプロジェクト] リストに自動的に追加されます 。
- [承認済みプロジェクト] や [不承認となったプロジェクト] は追加しないでください。
- [ネットワーク アタッチメントの作成] をクリックします。
- Database Migration Service で、 Private Service Connect インターフェースのプライベート接続構成を作成します。
- 後の段階で
移行元接続プロファイルを作成するときに、次の操作を行います。
- [**接続の詳細を定義**] セクションに、Oracle ソースのプライベート IP を入力します。
- [接続方法の定義] セクションで、 [**プライベート接続**] を選択します。
- プルダウン メニューから、前の手順で作成したプライベート接続構成 を選択します。
VPC ピアリングを使用してプライベート接続を構成する
この接続方法では、移行元データベースの IP アドレスまたは ホスト名に Google Cloud VPC から到達できる必要があります。 の外部のネットワークに存在するセルフホスト型ソースでは、 Google Cloud Cloud VPN や Cloud Interconnect などの 追加のネットワーク コンポーネントが必要になる場合があります。
内のセルフホスト型ソースの場合 Google Cloud
Compute Engine VM でホストされている移行元 Oracle データベースに Virtual Private Cloud ピアリングを使用してプライベート接続を使用する手順は次のとおりです。
- VM に IP アドレスが割り当てられている Virtual Private Cloud ネットワークが、プライベート サービス アクセス用に構成されていることを確認します。 詳細については、 プライベート サービス アクセスを構成するをご覧ください。
- Database Migration Service で、 Compute Engine VM で Oracle データベースをホストしている VPC ネットワークとピアリングする プライベート接続構成を作成します。
- 後の段階で
移行元接続プロファイルを作成するときに、次の操作を行います。
- In the [Define connection details] section, enter the IP address of the Compute Engine VM where you host the Oracle database.
VM の IP アドレスは コンソールで確認できます。 Google Cloud
- [接続方法の定義] セクションで、[プライベート接続(VPC ピアリング)] を選択します。
- プルダウン メニューから、前の手順で作成したプライベート接続構成 を選択します。
- In the [Define connection details] section, enter the IP address of the Compute Engine VM where you host the Oracle database.
の外部にあるセルフホスト型ソースの場合 Google Cloud
の外部のネットワークに存在するセルフホスト型 Oracle ソース データベースに Virtual Private Cloud ピアリングを使用してプライベート接続を使用する手順は次のとおりです。 Google Cloud
-
Cloud VPN を使用して Oracle ソースへの直接接続を設定します。
ネットワーク アーキテクチャによっては、システムに追加の VPN ゲートウェイを設定する必要がある場合があります。 詳細については、 Cloud VPN ドキュメントのピア VPN ゲートウェイに対する HA VPN ゲートウェイを作成する をご覧ください。
- 省略可: Cloud VPN がある VPC ネットワークでプライベート接続構成を作成できない場合は、Compute Engine に リバース プロキシ仮想マシン(VM)を作成して、VPC 間の接続を転送します。
- Database Migration Service で、 Cloud VPN がある VPC ネットワークとピアリングするプライベート接続構成を作成します。
- 後の段階で
移行元接続プロファイルを作成するときに、次の操作を行います。
- [**接続の詳細を定義**] セクションに、Oracle ソースのプライベート IP を入力します。
- [接続方法の定義] セクションで、[プライベート接続(VPC ピアリング)] を選択します。
- プルダウン メニューから、前の手順で作成したプライベート接続構成 を選択します。
次のステップ
移行元データベースのネットワーク接続の詳細については、 移行元のネットワーキング方法の概要をご覧ください。
移行の完全なステップバイステップ ガイドについては、 Oracle から Cloud SQL for PostgreSQL への移行ガイドをご覧ください。