別の VPC にある Amazon SageMaker ノートブックインスタンスから Amazon RDS DB インスタンスに接続するにはどうすればよいですか?
別の仮想プライベートクラウド (VPC) にある Amazon Relational Database Service (Amazon RDS) DB インスタンスに Amazon SageMaker ノートブックインスタンスを接続したいと考えています。
解決方法
2. VPC ピアリング接続がアクティブになったら、ルートテーブルを更新します。RDS DB インスタンスサブネットと SageMaker ノートブックインスタンスサブネットには、お互いに行き来するルートが必要です。例えば、以下の CIDR ブロックはこのようになります。
SageMaker VPC CIDR ブロック: 192.168.0.0/16
RDS DB インスタンス VPC CIDR ブロック: 10.0.0.0/24
Amazon RDS DB インスタンスのサブネットルートテーブルは以下のようになります。
送信先 | ターゲット |
10.0.0.0/24 | ローカル |
192.168.0.0/16 | ドロップダウンリストから VPC ピアリング接続を選択します |
SageMaker ノートブックインスタンスのサブネットルートテーブルは次のようになります。
送信先 | ターゲット |
10.0.0.0/24 | ドロップダウンリストから VPC ピアリング接続を選択します |
192.168.0.0/16 | ローカル |
3. 両方のセキュリティグループが正しく設定されていることを確認します。ノートブックインスタンスから RDS DB インスタンスへのトラフィックを許可するため、セキュリティグループで以下を確認します。
ノートブックインスタンスのセキュリティグループ: 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
トラブルシューティング
ノートブックインスタンスでインターネットへの直接アクセスがアクティブ化されている場合は、テストコマンドが失敗する可能性があります (「Connection timed out」(接続がタイムアウトしました) など)。失敗した場合は、以下のコマンドを実行して、オペレーティングシステムレベルでノートブックインスタンスのルーティングテーブルをチェックします。
route -n
インターネットへの直接アクセスがアクティブ化されていると、ルーティングテーブルが以下のようになります。
Kernel IP routing table Destination 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
この例では、10.0.0.0/24 が DB インスタンスの VPC CIDR ブロックです。オペレーティングシステムのルーティングテーブルに 10.0.0.0/24 へのルートがありません。代わりに、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: 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 table Destination 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 to resources in a VPC (ノートブックインスタンスを VPC 内のリソースに接続する)
Connect to SageMaker through a VPC interface endpoint (VPC インターフェイスエンドポイント経由で SageMaker に接続する)
関連するコンテンツ
- 質問済み 7年前lg...
- 質問済み 8年前lg...
- AWS公式更新しました 3年前