Amazon RDS for Oracle ソースへのネットワーク接続を構成する

このページでは、Database Migration Service を使用した Oracle から AlloyDB for PostgreSQL への異種移行用に、Amazon RDS for Oracle ソースへのネットワーク接続を構成する方法について説明します。

Amazon RDS for Oracle ソースからの移行に必要なネットワーク接続を構成するには、次の 3 つの方法があります。

ソース データベースのネットワーク接続の詳細については、 ソース ネットワーキング方法の概要をご覧ください。

IP 許可リストの接続を構成する

パブリック IP 許可リストの接続方法を使用する手順は次のとおりです。

  1. AWS Management Console で、次の操作を行います。
    1. ソースの Amazon RDS データベースがパブリック IP 接続用に構成されていることを確認します。
    2. エンドポイント名とポート番号を特定します。これらの値は、接続プロファイルを作成するときに入力する必要があります。

    Amazon RDS for Oracle インスタンスの準備の詳細については、Amazon RDS ドキュメントの Oracle DB インスタンスへの接続をご覧ください。

  2. Database Migration Service から Amazon RDS VPC へのトラフィックを許可するセキュリティ グループを作成します。 セキュリティ グループを作成して VPC 内の DB インスタンスへのアクセスを提供するをご覧ください。

    移行ジョブを作成するリージョンのすべての Database Migration Service のパブリック IP アドレスを許可してください。

  3. 後の段階で、 ソース接続プロファイルを作成するときに、次の操作を行います。
    1. [接続の詳細を定義する] セクションで、ソース データベース IP にインスタンスのエンドポイント名を使用します。
    2. [接続方法の定義] セクションで、[IP 許可リスト] を選択します。

フォワード SSH トンネル経由の接続を構成する

Secure Shell(SSH)トンネルを使用してソース データベースに接続する手順は次のとおりです。

  1. 専用のフォワード SSH トンネルとして機能する Amazon EC2 インスタンスを起動します。ソースの Amazon RDS for Oracle がある同じ Amazon VPC で構成してください。

    詳細については、Amazon のドキュメントの Amazon EC2 のスタートガイドをご覧ください。

  2. EC2 インスタンスに接続して、SSH トンネルを設定します。手順は次のとおりです。
    1. Database Migration Service が接続に使用する、専用のユーザー アカウントを別途作成します。
      adduser TUNNEL_ACCOUNT_USERNAME
    2. セキュリティを強化するために、Database Migration Service アカウントのシェルアクセスを制限します。
      usermod -s /usr/sbin/nologin TUNNEL_ACCOUNT_USERNAME
    3. トンネルに接続するときに Database Migration Service で使用する認証方法を決定します。

      パスワードを使用するか、PEM 形式で SSH 認証鍵を生成します。この認証鍵は、ソース接続プロファイルの作成時に Database Migration Service にアップロードできます。

      • パスワードを使用する場合は、追加の構成は必要ありません。TUNNEL_ACCOUNT_USERNAME アカウント用に作成したパスワードを覚えておいてください。
      • 鍵ベースの認証を使用する場合は、鍵ペアを生成する必要があります。たとえば、ssh-keygen ユーティリティを使用できます。
        1. 鍵ペアを生成します。
              ssh-keygen -m PEM -f YOUR_KEY_NAME
              
        2. 公開鍵(YOUR_KEY_NAME.pub)をトンネル サーバーの ~/.ssh/ ディレクトリにコピーします。
        3. 秘密鍵を保存します。後で、ソース接続プロファイルを作成するときに、Database Migration Service にアップロードする必要があります。
    4. /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
    5. 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
  3. 後の段階で、 ソース接続プロファイルを作成するときに、次の操作を行います。
    1. [接続の詳細を定義する] セクションで、ソース データベース IP にインスタンスのエンドポイント名を使用します。
    2. [接続方法の定義] セクションで、[Forward-SSH トンネル] を選択します。
    3. SSH サーバーのパブリック IP アドレスまたはホスト名を指定します。
    4. トンネル サーバーで SSH 接続用に指定したポートを指定します。
    5. Database Migration Service が接続に使用するユーザー(TUNNEL_ACCOUNT_USERNAME の値)のユーザー名を入力します。
    6. [認証方法] プルダウン メニューから、TUNNEL_ACCOUNT_USERNAME で使用する認証方法を選択します。
      • ユーザー パスワードを使用する場合は、[パスワード] を選択し、フォームに TUNNEL_ACCOUNT_USERNAME パスワードを入力します。
      • 鍵ベースの認証を使用するように SSH サーバーを構成した場合は、[Private/Public key pair] を選択し、 ssh-keygen コマンドで生成した秘密鍵をアップロードします。

Private Service Connect インターフェースを使用してプライベート接続を構成する

この接続方法を使用すると、 VPC ピアリングの割り当てを消費することなく、ソース データベースのプライベート IP に接続できます。Private Service Connect インターフェースは、プライベート IP 接続に推奨される方法です。

この方法を使用するには、ネットワーク アタッチメントを作成する VPC ネットワークに Cloud VPN または Cloud Interconnect を構成する必要があります。Cloud VPN または Cloud Interconnect がある VPC ネットワークにネットワーク アタッチメントを作成できない場合は、接続を確立するために Compute Engine にリバース プロキシ仮想マシン(VM)も必要です。

Cloud VPN または Cloud Interconnect を使用できない場合は、代わりに 転送 SSH トンネルまたは IP 許可リストの接続方法を使用することをおすすめします。

Private Service Connect インターフェースの構成に必要な権限を取得するには、 移行プロセスに関与する次のアカウントに対して、プロジェクトに必要な IAM ロールを付与するよう管理者に依頼してください。

  • 移行を実行するユーザー アカウント:
  • 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.create
    • compute.networkAttachments.get
    • compute.networkAttachments.list
    • compute.networkAttachments.update
    • compute.networkAttachments.delete
  • Database Migration Service サービス アカウント:
    • compute.networkAttachments.get
    • compute.networkAttachments.update
    • compute.subnetworks.get
    • compute.subnetworks.list

カスタムロールや他の 事前定義ロールを使用して、これらの権限を取得することもできます。

Private Service Connect インターフェース接続を使用するには、次の操作を行います。

  1. Cloud VPN を使用して Amazon RDS for PostgreSQL インスタンスへの直接接続を設定します。

    詳細については、Cloud VPN のドキュメントの Google Cloud と AWS の間に HA VPN 接続を作成するをご覧ください。

  2. 省略可: Cloud VPN がある同じ VPC ネットワークにネットワーク アタッチメントを作成できない場合は、 Compute Engine にリバース プロキシ仮想マシン(VM)を作成して、VPC 間の接続を転送します。
  3. Cloud VPN がある VPC にネットワーク アタッチメントを作成します。手順は次のとおりです。
    1. Google Cloud コンソールで、[ネットワーク アタッチメント] ページに移動します。

      [ネットワーク アタッチメント] に移動

    2. [ネットワーク アタッチメントの作成] をクリックします。
    3. アタッチメントの名前を入力します。
    4. [ネットワーク] メニューから、移行元が存在する VPC を選択します。
    5. リージョンには、移行先データベースを作成するリージョンと同じリージョンを使用します。

      Database Migration Service は完全にリージョンに依存するプロダクトです。つまり、移行に関連するすべてのエンティティ(移行元と移行先の接続プロファイル、移行ジョブ、移行先データベース、コンバージョン ワークスペース)を 1 つのリージョンに保存する必要があります。

    6. [サブネットワーク] メニューから、Database Migration Service で使用可能な IP アドレスが 6 つ以上(/29 範囲)あるサブネットを選択します。
    7. [接続の設定] で、[選択したプロジェクトの接続を受け入れる] を選択します。

      後で プライベート接続構成を作成すると、Database Migration Service によってプロデューサー プロジェクトが [承認済みプロジェクト] リストに自動的に追加されます。

    8. [承認済みプロジェクト] や [不承認となったプロジェクト] は追加しないでください。
    9. [ネットワーク アタッチメントの作成] をクリックします。
  4. Database Migration Service で、 Private Service Connect インターフェースのプライベート接続構成を作成します。
  5. 後の段階で、 ソース接続プロファイルを作成するときに、次の操作を行います。
    1. [接続の詳細を定義する] セクションで、ソース Amazon RDS インスタンスのプライベート IP を入力します。
    2. [接続方法の定義] セクションで、[プライベート接続] を選択します。
    3. プルダウン メニューから、前の手順で作成したプライベート接続構成を選択します。

VPC ピアリングを使用してプライベート接続を構成する

Amazon RDS for Oracle ソースでプライベート接続を使用するには、Database Migration Service のプライベート接続構成を作成する VPC ネットワークに Cloud VPN または Cloud Interconnect を構成する必要があります。Cloud VPN または Cloud Interconnect がある VPC ネットワークにプライベート接続構成を作成できない場合は、Compute Engine にリバース プロキシ仮想マシン(VM)を配置して接続を確立する必要があります。

Cloud VPN または Cloud Interconnect を使用できない場合は、代わりに 転送 SSH トンネルまたは IP 許可リストの接続方法を使用することをおすすめします。

VPC ピアリングと Cloud VPN でプライベート接続を使用する手順は次のとおりです。

  1. Cloud VPN を使用して Amazon RDS for PostgreSQL インスタンスへの直接接続を設定します。

    詳細については、Cloud VPN のドキュメントの Google Cloud と AWS の間に HA VPN 接続を作成するをご覧ください。

  2. 省略可: Cloud VPN がある同じ VPC ネットワークにプライベート接続構成を作成できない場合は、 Compute Engine にリバース プロキシ仮想マシン(VM)を作成して、VPC 間の接続を転送します。
  3. Database Migration Service で、Cloud VPN がある VPC ネットワークとピアリングする プライベート接続構成を作成します。
  4. 後の段階で、 ソース接続プロファイルを作成するときに、次の操作を行います。
    1. [接続の詳細を定義する] セクションで、ソース Amazon RDS インスタンスのプライベート IP を入力します。
    2. [接続方法の定義] セクションで、[プライベート接続] を選択します。
    3. プルダウン メニューから、前の手順で作成したプライベート接続構成を選択します。