別の VPC にある Amazon SageMaker ノートブックインスタンスから Amazon RDS DB インスタンスに接続する方法を教えてください。
Amazon SageMaker ノートブックインスタンスを、別の仮想プライベートクラウド (VPC) にある Amazon Relational Database Service (Amazon RDS) DB インスタンスに接続したいと考えています。
解決策
SageMaker ノートブックインスタンスを別の VPC にある Amazon RDS DB インスタンスに接続するには、次の手順を実行します。
-
VPC ピアリング接続がアクティブになったら、ルートテーブルを更新します。Amazon RDS DB インスタンスのサブネットと SageMaker ノートブックインスタンスのサブネットには、相互にルートが設定されていなければなりません。
例えば、次の CIDR ブロックの場合
SageMaker VPC CIDR ブロック: 192.168.0.0/16
Amazon RDS DB インスタンス VPC CIDR ブロック: 10.0.0.0/24Amazon RDS DB インスタンスのサブネットルートテーブルは次のようになります。
送信先 ターゲット 10.0.0.0/24 local 192.168.0.0/16 ドロップダウンリストから VPC ピアリング接続を選択します SageMaker ノートブックインスタンスのサブネットルートテーブルは次のようになります。
送信先 ターゲット 10.0.0.0/24 ドロップダウンリストから VPC ピアリング接続を選択します 192.168.0.0/16 local -
ノートブックインスタンスから Amazon RDS DB インスタンスへのトラフィックを許可するには、両方のセキュリティグループが正しく設定されていることを確認します。
ノートブックインスタンスのセキュリティグループで、Amazon RDS DB インスタンスへのトラフィックを許可するアウトバウンドルールがあることを確認します。
DB インスタンスのセキュリティグループで、ノートブックインスタンスのセキュリティグループ、VPC CIDR ブロック、またはサブネット CIDR ブロックを許可するインバウンドルールがあることを確認します。 -
接続をテストするには、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 を使用するようにルーティングテーブルを変更します。
-
SageMaker VPC のルーターアドレスを書き留めておきます。この例では、192.168.0.0/16 (ノートブックインスタンスの VPC CIDR ブロック) が 192.168.0.1 にルーティングされます。これは、192.168.0.1 が VPC ルーターのアドレスであることを意味します。
-
ノートブックインスタンスのターミナルで、ルーティングテーブルにルートを追加します。
注: 次の例では、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 -
新しいルートがルーティングテーブルにあることを確認します。
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 -
接続を再度テストします。
注: オペレーティングシステムのルーティングテーブルへの変更は、ノートブックインスタンスのセッション間では保持されません。このように永続性がないため、SageMaker ノートブックインスタンスを停止して開始するたびに変更内容が失われます。このような状況を緩和するには、ライフサイクル設定を使用して、ノートブックインスタンスを開始するたびにルートを追加します。
関連情報
Connect a notebook instance in a VPC to external resources (VPC 内のノートブックインスタンスを外部リソースに接続する)
Connect to SageMaker within your VPC (VPC 内で SageMaker に接続する)
- 言語
- 日本語

関連するコンテンツ
質問済み 8年前
質問済み 1年前
