スキップしてコンテンツを表示

別の VPC にある Amazon SageMaker ノートブックインスタンスから Amazon RDS DB インスタンスに接続する方法を教えてください。

所要時間3分
0

Amazon SageMaker ノートブックインスタンスを、別の仮想プライベートクラウド (VPC) にある Amazon Relational Database Service (Amazon RDS) DB インスタンスに接続したいと考えています。

解決策

SageMaker ノートブックインスタンスを別の VPC にある Amazon RDS DB インスタンスに接続するには、次の手順を実行します。

  1. VPC ピアリング接続を作成または削除します。

  2. VPC ピアリング接続がアクティブになったら、ルートテーブルを更新します。Amazon RDS DB インスタンスのサブネットと SageMaker ノートブックインスタンスのサブネットには、相互にルートが設定されていなければなりません。

    例えば、次の CIDR ブロックの場合

    SageMaker VPC CIDR ブロック: 192.168.0.0/16
    Amazon RDS DB インスタンス VPC CIDR ブロック: 10.0.0.0/24

    Amazon RDS DB インスタンスのサブネットルートテーブルは次のようになります。

    送信先ターゲット
    10.0.0.0/24local
    192.168.0.0/16ドロップダウンリストから VPC ピアリング接続を選択します

    SageMaker ノートブックインスタンスのサブネットルートテーブルは次のようになります。

    送信先ターゲット
    10.0.0.0/24ドロップダウンリストから VPC ピアリング接続を選択します
    192.168.0.0/16local

     

  3. ノートブックインスタンスから Amazon RDS DB インスタンスへのトラフィックを許可するには、両方のセキュリティグループが正しく設定されていることを確認します。
    ノートブックインスタンスのセキュリティグループで、Amazon RDS DB インスタンスへのトラフィックを許可するアウトバウンドルールがあることを確認します。
    DB インスタンスのセキュリティグループで、ノートブックインスタンスのセキュリティグループ、VPC CIDR ブロック、またはサブネット CIDR ブロックを許可するインバウンドルールがあることを確認します。

  4. 接続をテストするには、SageMaker ノートブックインスタンスのターミナルで次のコマンドを実行します。
    注: 例の mydatabase.c5y9vfc8igjj.ap-southeast-2.rds.amazonaws.com を DB インスタンスのエンドポイントに置き換えてください。3306 を DB インスタンスのポートに置き換えてください。

    curl -v mydatabase.c5y9vfc8igjj.ap-southeast-2.rds.amazonaws.com:3306

トラブルシューティング

ノートブックインスタンスで直接インターネットアクセスが有効になっている場合、テストコマンドは接続タイムアウトエラーで失敗します。この障害が発生した場合は、次のコマンドを実行して、ノートブックインスタンスのルーティングテーブルをオペレーティングシステムレベルで確認します。

route -n

直接インターネットアクセスが有効になっている場合、ルーティングテーブルは次のような内容になります。

Kernel IP routing tableDestination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         172.16.0.1      0.0.0.0         UG    0      0        0 eth0
10.0.32.0       0.0.0.0         255.255.224.0   U     0      0        0 eth1
169.254.0.0     0.0.0.0         255.255.255.0   U     0      0        0 veth\_def\_agent
169.254.169.254 0.0.0.0         255.255.255.255 UH    0      0        0 eth0
172.16.0.0      0.0.0.0         255.255.224.0   U     0      0        0 eth0
172.17.0.0      0.0.0.0         255.255.0.0     U     0      0        0 docker0
172.18.0.0      0.0.0.0         255.255.0.0     U     0      0        0 br-5a785eca34a3
192.168.0.0     0.0.0.0         255.255.128.0   U     0      0        0 eth2
192.168.0.0     192.168.0.1     255.255.0.0     UG    0      0        0 eth2

この例では、DB インスタンスの VPC CIDR ブロックは 10.0.0.0/24 です。オペレーティングシステムのルーティングテーブルには、10.0.0.0/24 へのルートがありません。代わりに、Amazon RDS VPC CIDR ブロックへのトラフィックは、パブリックトラフィックを処理するプライマリネットワークインターフェイス (eth0) を使用します。

接続の問題を解決するには、ノートブックインスタンスの VPC Elastic Network Interface である eth2 を使用するようにルーティングテーブルを変更します。

  1. SageMaker VPC のルーターアドレスを書き留めておきます。この例では、192.168.0.0/16 (ノートブックインスタンスの VPC CIDR ブロック) が 192.168.0.1 にルーティングされます。これは、192.168.0.1 が VPC ルーターのアドレスであることを意味します。

  2. ノートブックインスタンスのターミナルで、ルーティングテーブルにルートを追加します。
    注: 次の例では、10.0.0.0/24 を Amazon RDS DB インスタンスの VPC CIDR ブロックに置き換えてください。192.168.0.1 を SageMaker ノートブックインスタンスの VPC ルーターアドレスに置き換えてください。

    sudo ip route add 10.0.0.0/24 via 192.168.0.1 dev eth2
  3. 新しいルートがルーティングテーブルにあることを確認します。

    Kernel IP routing tableDestination     Gateway         Genmask         Flags Metric Ref    Use Iface
    0.0.0.0         172.16.0.1      0.0.0.0         UG    0      0        0 eth0
    10.0.0.0        192.168.0.1     255.255.255.0   UG    0      0        0 eth2
    10.0.32.0       0.0.0.0         255.255.224.0   U     0      0        0 eth1
    169.254.0.0     0.0.0.0         255.255.255.0   U     0      0        0 veth\_def\_agent
    169.254.169.254 0.0.0.0         255.255.255.255 UH    0      0        0 eth0
    172.16.0.0      0.0.0.0         255.255.224.0   U     0      0        0 eth0
    172.17.0.0      0.0.0.0         255.255.0.0     U     0      0        0 docker0
    172.18.0.0      0.0.0.0         255.255.0.0     U     0      0        0 br-5a785eca34a3
    192.168.0.0     0.0.0.0         255.255.128.0   U     0      0        0 eth2
    192.168.0.0     192.168.0.1     255.255.0.0     UG    0      0        0 eth2
  4. 接続を再度テストします。

注: オペレーティングシステムのルーティングテーブルへの変更は、ノートブックインスタンスのセッション間では保持されません。このように永続性がないため、SageMaker ノートブックインスタンスを停止して開始するたびに変更内容が失われます。このような状況を緩和するには、ライフサイクル設定を使用して、ノートブックインスタンスを開始するたびにルートを追加します。

関連情報

Connect a notebook instance in a VPC to external resources (VPC 内のノートブックインスタンスを外部リソースに接続する)

Connect to SageMaker within your VPC (VPC 内で SageMaker に接続する)

コメントはありません

関連するコンテンツ