このページでは、Database Migration Service を使用して Oracle から AlloyDB for PostgreSQL への異種移行を行うために、セルフホスト型 Oracle ソースへのネットワーク接続を構成する方法について説明します。
セルフホスト型の Oracle ソースからの移行に必要なネットワーク接続を構成するには、次の 3 つの方法があります。
- パブリック IP 許可リスト
- 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 トンネルへの接続に使用できるユーザー アカウントを作成します。
たとえば、Ubuntu システムでは、次のコマンドを使用できます。
- ユーザー アカウントを作成します。
adduser TUNNEL_ACCOUNT_USERNAME - セキュリティを強化するために、ユーザー アカウントのシェルアクセスを制限します。
usermod -s /usr/sbin/nologin TUNNEL_ACCOUNT_USERNAME
- ユーザー アカウントを作成します。
トンネルに接続するときに Database Migration Service で使用する認証方法を決定します。
パスワードを使用するか、
PEM形式で SSH 認証鍵を生成します。この認証鍵は、ソース接続プロファイルの作成時に Database Migration Service にアップロードできます。- パスワードを使用する場合は、追加の構成は必要ありません。TUNNEL_ACCOUNT_USERNAME アカウント用に作成したパスワードを覚えておいてください。
- 鍵ベースの認証を使用する場合は、鍵ペアを生成する必要があります。たとえば、
ssh-keygenユーティリティを使用できます。- 鍵ペアを生成します。
ssh-keygen -m PEM -f YOUR_KEY_NAME
- 公開鍵(
YOUR_KEY_NAME.pub)をトンネル サーバーの~/.ssh/ディレクトリにコピーします。 - 秘密鍵を保存します。このファイルは、ソース接続プロファイルの作成時に Database Migration Service にアップロードする必要があります。
- 鍵ペアを生成します。
/etc/ssh/sshd_configファイルを編集して、組織の要件に合わせてフォワード SSH トンネルを構成します。次の設定を使用することをおすすめします。# 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
- SSH トンネルにインバウンド ファイアウォール ルールを作成して、移行ジョブを作成するリージョンの Database Migration Service のパブリック IP アドレスからの接続を受け入れます。
- 後の段階で、
ソース接続プロファイルを作成するときに、次の操作を行います。
- [接続の詳細を定義する] セクションで、ソース Oracle インスタンスのプライベート IP を入力します。
- [接続方法の定義] セクションで、[Forward-SSH トンネル] を選択します。
- SSH サーバーのパブリック IP アドレスまたはホスト名を指定します。
- トンネル サーバーで SSH 接続用に指定したポートを指定します。
- Database Migration Service が接続に使用するユーザー(TUNNEL_ACCOUNT_USERNAME の値)のユーザー名を入力します。
- [認証方法] プルダウン メニューから、TUNNEL_ACCOUNT_USERNAME ユーザーで使用する認証方法を選択します。
- ユーザー パスワードを使用する場合は、[パスワード] を選択し、フォームに TUNNEL_ACCOUNT_USERNAME パスワードを入力します。
- 鍵ベースの認証を使用するように SSH サーバーを構成した場合は、[Private/Public key pair] を選択し、
ssh-keygenコマンドで生成した秘密鍵をアップロードします。
プライベート接続の Private Service Connect インターフェースを構成する
この接続方法を使用すると、 VPC ピアリングの割り当てを消費することなく、ソース データベースのプライベート IP に接続できます。Private Service Connect インターフェースは、プライベート IP 接続に推奨される方法です。
必要なロール
Private Service Connect インターフェースの構成に必要な権限を取得するには、 移行プロセスに関与する次のアカウントに対して、プロジェクトに必要な IAM ロールを付与するよう管理者に依頼してください。
- 移行を実行するユーザー アカウント:
- ネットワーク アタッチメントを作成して管理する:
Compute ネットワーク管理者(
roles/compute.networkAdmin) - プライベート接続構成を作成して管理する:
データベース移行管理者(
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 は完全にリージョンに依存するプロダクトです。つまり、移行に関連するすべてのエンティティ(移行元と移行先の接続プロファイル、移行ジョブ、移行先データベース、コンバージョン ワークスペース)を 1 つのリージョンに保存する必要があります。
-
[接続の設定] で、[選択したプロジェクトの接続を受け入れる] を選択します。
後で プライベート接続構成を作成すると、Database Migration Service によってプロデューサー プロジェクトが [承認済みプロジェクト] リストに自動的に追加されます。
- [承認済みプロジェクト] や [不承認となったプロジェクト] は追加しないでください。
- [ネットワーク アタッチメントの作成] をクリックします。
- Database Migration Service で、 Private Service Connect インターフェースのプライベート接続構成を作成します。
- 後の段階で、
ソース接続プロファイルを作成するときに、次の操作を行います。
- [接続の詳細を定義する] セクションで、Oracle データベースをホストする Compute Engine VM の IP アドレスを入力します。
Google Cloud コンソールで VM の IP アドレスを表示できます。
- [接続方法の定義] セクションで、[プライベート接続] を選択します。
- プルダウン メニューから、前の手順で作成したプライベート接続構成を選択します。
- [接続の詳細を定義する] セクションで、Oracle データベースをホストする Compute Engine VM の IP アドレスを入力します。
Google Cloudの外部のセルフホスト ソースの場合
Google Cloud以外のネットワークに存在するセルフホスト型の Oracle ソース データベースに Private Service Connect インターフェースを使用したプライベート接続を使用する手順は次のとおりです。
-
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 は完全にリージョンに依存するプロダクトです。つまり、移行に関連するすべてのエンティティ(移行元と移行先の接続プロファイル、移行ジョブ、移行先データベース、コンバージョン ワークスペース)を 1 つのリージョンに保存する必要があります。
- [サブネットワーク] メニューから、Database Migration Service で使用可能な IP アドレスが 6 つ以上(
/29範囲)あるサブネットを選択します。 -
[接続の設定] で、[選択したプロジェクトの接続を受け入れる] を選択します。
後で プライベート接続構成を作成すると、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 ネットワークとピアリングします。
- 後の段階で、
ソース接続プロファイルを作成するときに、次の操作を行います。
- [接続の詳細を定義する] セクションで、Oracle データベースをホストする Compute Engine VM の IP アドレスを入力します。
Google Cloud コンソールで VM の IP アドレスを表示できます。
- [接続方法の定義] セクションで、[プライベート接続(VPC ピアリング)] を選択します。
- プルダウン メニューから、前の手順で作成したプライベート接続構成を選択します。
- [接続の詳細を定義する] セクションで、Oracle データベースをホストする Compute Engine VM の IP アドレスを入力します。
Google Cloudの外部のセルフホスト ソースの場合
Google Cloud外のネットワークに存在するセルフホスト型 Oracle ソース データベースに Virtual Private 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 から AlloyDB for PostgreSQL への移行ガイドをご覧ください。