VPC ピアリング
VPCピアリングにより、DatabricksクラスターはAWS内部ネットワーク内のプライベートIPアドレスを使用して他のAWSインフラストラクチャ(RDS、Redshift、Kafka、Cassandraなど)に接続できます。
他のインフラストラクチャをホストするVPCは、Databricks VPCおよびDatabricks VPCメインルートテーブルの宛先として含まれる他のCIDR範囲とは異なるCIDR範囲を持つ必要があります。コンフリクトが発生した場合は、Databricksサポートに連絡して、選択した新しいCIDR範囲へのDatabricks VPCの移動についてお問い合わせください。AWSコンソールでDatabricks VPCを検索し、それに関連するメインのルートテーブルをクリックし、[ ルートテーブル ]タブを調べることで表示できます。以下は、すでに他のいくつかのVPCとピアリングされているDatabricksデプロイメントのメインルートテーブルの例です。
VPCピアリングについては、 AWS VPCピアリングガイドを参照してください。
このガイドでは、AWS コンソールを使用して AWS Aurora RDS を Databricks VPC にピアリングする例について説明します。 プログラマティック ソリューションをご希望の場合は、 プログラマティック VPC ピアリング に移動して、すべての手順を実行するノートブックを探してください。 最後に、一般的な問題と解決策 のトラブルシューティング セクションがあります 。
VPC ピアリングを設定する前に、AWS/devops チームに相談してください。 AWSにある程度精通し、十分な権限があれば、このプロセスをスムーズに進めることができます。 ノートブックはこの移行に役立ちますが、環境によっては、既存のインフラストラクチャに影響を与えないように必要な変更を加えることが重要です。
AWS コンソールの例
以下の図は、Databricksデプロイメントを他のAWSインフラストラクチャにピアリングする際に関係するすべての異なるコンポーネントを示しています。この例では、Databricksは1つのAWSアカウントにデプロイされ、Aurora RDSは別のアカウントにデプロイされます。ピアリング接続が確立され、2つのVPCが両方のAWSアカウントにまたがってリンクされます。
自分のAWSコンソールでこのプロセスを進める際、参照できるように情報を表にまとめておくと便利です。以下を記録してください。
- Databricks VPCのIDとCIDR範囲。
- 他のインフラストラクチャ(Aurora RDS)のIDとCIDR範囲。
- Databricks VPCのメインルートテーブルのID。
AWSサービス | 名前 | ID | CIDRレンジ |
---|---|---|---|
VPC | Databricks VPC | vpc-dbcb3fbc | 10.126.0.0/16 |
VPC | Aurora RDS VPC | vpc-7b52471c | 172.78.0.0/16 |
ルートテーブル | Databricksメインルートテーブル | rtb-3775c750 |
ステップ1: ピアリング接続を作成する
-
VPC ダッシュボード に移動します。
-
[ ピアリング接続 ]を選択します。
-
[ ピアリング接続を作成 ]をクリックします。
-
VPCリクエスター をDatabricks VPC IDに設定します。
-
VPC Acceptor をAurora VPC IDに設定します。
-
[ ピアリング接続の作成 ]をクリックします。
ステップ 2: ピアリング接続の ID を記録する
AWSサービス | 名前 | ID | CIDRレンジ |
---|---|---|---|
VPC | Databricks VPC | vpc-dbcb3fbc | 10.126.0.0/16 |
VPC | Aurora RDS VPC | vpc-7b52471c | 172.78.0.0/16 |
ルートテーブル | Databricksメインルートテーブル | rtb-3775c750 | |
ピアリング接続 | Databricks VPC <> Aurora VPC | pcx-4d148024 |
ステップ3:ピアリング接続のリクエストを受け入れる
Aurora RDSのあるVPCは、その所有者にリクエストを承認してもらう必要があります。これが完了するまで、ピアリング接続のステータスは[ 承認待ち ]と表示されます。
[アクション] > [リクエストの承認] を選択します。
ステップ 4: ピアリング接続に DNS 解決を追加する
- Databricks VPCをホストするAWSアカウントにログインします。
- VPC ダッシュボード に移動します。
- [ ピアリング接続 ]を選択します。
- [アクション] メニューから[ DNS 設定の編集 ]を選択します。
- クリックして DNS解決 を有効にします。
- Aurora VPCをホストするAWSアカウントにログインし、ステップ2~4を繰り返します。
ステップ 5: Databricks VPC メイン ルート テーブルに宛先を追加する
-
VPCダッシュボードで[ ルートテーブル ]を選択します。
-
Databricks VPC IDを検索します。
-
[ ルート ]タブの[ 編集 ]ボタンをクリックします。
-
[ 別のルートを追加 ] をクリックします。
-
[ 宛先 ] のAurora VPCの CIDR範囲を入力します。
-
[ ターゲット ] にピアリング接続のIDを入力します。
ステップ 6: Aurora VPC メインルートテーブルに送信先を追加する
-
VPCダッシュボードで[ ルートテーブル ]を選択します。
-
Aurora VPC IDを検索します。
-
[ ルート ]タブの[ 編集 ]ボタンをクリックします。
-
[ 別のルートを追加 ] をクリックします。
-
[ 宛先 ] にDatabricks VPCの CIDR範囲を入力します。
-
[ ターゲット ] にピアリング接続のIDを入力します。
手順 7: Databricks のアンマネージド セキュリティ グループを見つける
- VPCダッシュボードで[ セキュリティグループ ] を選択します。
- Databricks VPCのIDを検索します。
- 名前に [ アンマネージド ] と付いているセキュリティグループのIDを探して記録します。マネージドセキュリティグループは選択 しないでください 。
AWSサービス | 名前 | ID | CIDRレンジ |
---|---|---|---|
VPC | Databricks VPC | vpc-dbcb3fbc | 10.126.0.0/16 |
VPC | Aurora RDS VPC | vpc-7b52471c | 172.78.0.0/16 |
ルートテーブル | Databricksメインルートテーブル | rtb-3775c750 | |
ピアリング接続 | Databricks VPC <> Aurora VPC | pcx-4d148024 | |
セキュリティグループ | Databricksアンマネージドグループ | sg-96016bef |
ステップ 8: アンマネージド セキュリティ グループにルールを追加する
-
VPCダッシュボードで[ セキュリティグループ ] を選択します。
-
Aurora VPCのIDを検索します。
-
[ 編集 ]、 [ 別のルールを追加 ] の順にクリックして、 インバウンドルールを追加します 。
-
カスタムTCPルール またはRDSに関連するサービスを選択します。
-
RDSサービスに対応するように ポート範囲 を設定してください。Aurora [MySQL] のデフォルトは3306です。
-
[ ソース ] を アンマネージド DatabricksセキュリティグループのセキュリティグループIDに設定します。
ステップ 9: 接続をテストする
-
Databricksクラスターを作成します。
-
次の
netcat
コマンドを使用してデータベースに接続できるかどうかを確認します。Bash%sh nc -zv <hostname> <port>
プログラマティック VPC ピアリング
このノートブックでは、次の2つのシナリオがサポートされています。
- Databricks VPCと同じAWSアカウント内の別のVPC間でVPCピアリングを確立する
- Databricks VPCと別のAWSアカウントにある別のVPCとの間でVPCピアリングを確立する
VPC ピアリングノートブック
トラブルシューティング
以下との接続を確立できません: netcat
netcat
で接続を確立できない場合は、host
Linuxコマンドを使用して、ホスト名がDNSで解決されていることを確認します。ホスト名が解決しない場合は、ピアリング接続でDNS解決が有効になっていることを確認してください。
%sh host -t a <hostname>
ホスト名またはIPアドレスで接続を確立できません
ホスト名またはIPアドレスのいずれでも接続を確立できない場合は、Aurora RDSのVPCにメインルートテーブルに関連付けられた3つのサブネットがあることを確認してください。
-
VPCダッシュボード から サブネット を選択し、Aurora VPCのIDを検索します。アベイラビリティゾーンごとにサブネットが必要です。
-
これらの各サブネットがメインルートテーブルに関連付けられていることを確認します。
-
VPCダッシュボードから [ ルートテーブル ] を選択し、Aurora RDSに関連付けられているメインルートテーブルを検索します。
-
[ サブネットの関連付け ] タブをクリックし、[ 編集 ] をクリックします。リストには3つのサブネットがすべて表示されますが、どのサブネットも [ 関連付ける ] が選択されていないはずです。
-
DNSが機能していません
Route 53を確認し、Databricks VPCがVPC内で使用されているプライベートホストゾーンに関連付けられていることを確認します。