別の VPC にある Amazon SageMaker ノートブックインスタンスから Amazon RDS DB インスタンスに接続するにはどうすればよいですか?

所要時間3分
0

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

解決方法

1.    VPC ピアリング接続を作成します

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 に接続する)

AWS公式
AWS公式更新しました 1年前
コメントはありません

関連するコンテンツ