このページでは、Database Migration Service を使用した異種の Oracle から Cloud SQL for PostgreSQL への移行で、セルフホスト Oracle ソースへのネットワーク接続を構成する方法について説明します。
自己ホスト型 Oracle ソースからの移行に必要なネットワーク接続を構成するには、次の 3 つの方法があります。
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
- 移行ジョブを作成するリージョンの Database Migration Service のパブリック IP アドレスからの接続を受け入れるように、SSH トンネルにインバウンド ファイアウォール ルールを作成します。
- 後で
ソース接続プロファイルを作成するときに、次の操作を行います。
- [接続の詳細を定義する] セクションで、ソース Oracle インスタンスのプライベート IP を入力します。
- [接続方法の定義] セクションで、[Forward-SSH tunnel] を選択します。
- SSH サーバーの公開 IP アドレスまたはホスト名を指定します。
- トンネル サーバーで SSH 接続に指定したポートを指定します。
- Database Migration Service が接続するユーザーとして作成したユーザーのユーザー名(TUNNEL_ACCOUNT_USERNAME の値)を入力します。
- [認証方法] プルダウン メニューから、TUNNEL_ACCOUNT_USERNAME ユーザーで使用する認証方法を選択します。
- ユーザー パスワードを使用する場合は、[パスワード] を選択し、フォームに TUNNEL_ACCOUNT_USERNAME パスワードを入力します。
- 鍵ベースの認証を使用するように SSH サーバーを構成した場合は、[Private/Public key pair] を選択し、
ssh-keygen
コマンドで生成した秘密鍵をアップロードします。
VPC ピアリングによるプライベート接続を構成する
この接続方法では、ソース データベースの IP アドレスまたはホスト名に VPC からアクセスできる必要があります。 Google Cloud 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 アドレスを入力します。
VM の IP アドレスを表示するには、Google Cloud コンソールを使用します。
- [接続方法の定義] セクションで、[プライベート接続(VPC ピアリング)] を選択します。
- プルダウン メニューから、前の手順で作成したプライベート接続構成を選択します。
- [接続の詳細を定義する] セクションで、Oracle データベースをホストする Compute Engine VM の IP アドレスを入力します。
Google Cloudの外部にあるセルフホスト ソースの場合
Google Cloud外のネットワークに存在するセルフホスト Oracle ソース データベースに仮想プライベート クラウド ピアリングでプライベート接続を使用する手順は次のとおりです。
-
Oracle ソースへの Cloud VPN による直接接続を設定します。
ネットワーク アーキテクチャによっては、システムに追加の VPN ゲートウェイを設定する必要があります。詳細については、Cloud VPN ドキュメントの ピア VPN ゲートウェイへの HA VPN ゲートウェイを作成するをご覧ください。
- 省略可: Cloud VPN がある VPC ネットワークと同じ VPC ネットワークにプライベート接続構成を作成できない場合は、 Compute Engine でリバース プロキシ仮想マシン(VM)を作成して、VPC 間の接続を転送します。
- Database Migration Service で、 プライベート接続構成を作成して、Cloud VPN がある VPC ネットワークとピアリングします。
- 後で
ソース接続プロファイルを作成するときに、次の操作を行います。
- [接続の詳細を定義する] セクションで、Oracle ソースのプライベート IP を入力します。
- [接続方法の定義] セクションで、[プライベート接続(VPC ピアリング)] を選択します。
- プルダウン メニューから、前の手順で作成したプライベート接続構成を選択します。
次のステップ
ソース データベースのネットワーク接続の詳細については、 ソース ネットワーキング方法の概要をご覧ください。
移行の詳細な手順については、 Oracle から Cloud SQL for PostgreSQL への移行ガイドをご覧ください。