メインコンテンツまでスキップ

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デプロイメントのメインルートテーブルの例です。

Databricks VPCルートテーブル

VPCピアリングについては、 AWS VPCピアリングガイドを参照してください。

このガイドでは、AWS コンソールを使用して AWS Aurora RDS を Databricks VPC にピアリングする例について説明します。 プログラマティック ソリューションをご希望の場合は、 プログラマティック VPC ピアリング に移動して、すべての手順を実行するノートブックを探してください。 最後に、一般的な問題と解決策 のトラブルシューティング セクションがあります

important

VPC ピアリングを設定する前に、AWS/devops チームに相談してください。 AWSにある程度精通し、十分な権限があれば、このプロセスをスムーズに進めることができます。 ノートブックはこの移行に役立ちますが、環境によっては、既存のインフラストラクチャに影響を与えないように必要な変更を加えることが重要です。

AWS コンソールの例

以下の図は、Databricksデプロイメントを他のAWSインフラストラクチャにピアリングする際に関係するすべての異なるコンポーネントを示しています。この例では、Databricksは1つのAWSアカウントにデプロイされ、Aurora RDSは別のアカウントにデプロイされます。ピアリング接続が確立され、2つのVPCが両方のAWSアカウントにまたがってリンクされます。

AWSアカウント間でのVPCピアリング接続

自分のAWSコンソールでこのプロセスを進める際、参照できるように情報を表にまとめておくと便利です。以下を記録してください。

  1. Databricks VPCのIDとCIDR範囲。
  2. 他のインフラストラクチャ(Aurora RDS)のIDとCIDR範囲。
  3. 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: ピアリング接続を作成する

  1. VPC ダッシュボード に移動します。

  2. [ ピアリング接続 ]を選択します。

  3. [ ピアリング接続を作成 ]をクリックします。

  4. VPCリクエスター をDatabricks VPC IDに設定します。

  5. VPC Acceptor をAurora VPC IDに設定します。

  6. [ ピアリング接続の作成 ]をクリックします。

    ピアリング接続を作成する

ステップ 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 解決を追加する

  1. Databricks VPCをホストするAWSアカウントにログインします。
  2. VPC ダッシュボード に移動します。
  3. [ ピアリング接続 ]を選択します。
  4. [アクション] メニューから[ DNS 設定の編集 ]を選択します。
  5. クリックして DNS解決 を有効にします。
  6. Aurora VPCをホストするAWSアカウントにログインし、ステップ2~4を繰り返します。

DNS解決を有効にする

ステップ 5: Databricks VPC メイン ルート テーブルに宛先を追加する

  1. VPCダッシュボードで[ ルートテーブル ]を選択します。

  2. Databricks VPC IDを検索します。

  3. [ ルート ]タブの[ 編集 ]ボタンをクリックします。

  4. [ 別のルートを追加 ] をクリックします。

  5. [ 宛先 ] のAurora VPCの CIDR範囲を入力します。

  6. [ ターゲット ] にピアリング接続のIDを入力します。

    Databricks VPCルートの宛先

ステップ 6: Aurora VPC メインルートテーブルに送信先を追加する

  1. VPCダッシュボードで[ ルートテーブル ]を選択します。

  2. Aurora VPC IDを検索します。

  3. [ ルート ]タブの[ 編集 ]ボタンをクリックします。

  4. [ 別のルートを追加 ] をクリックします。

  5. [ 宛先 ] にDatabricks VPCの CIDR範囲を入力します。

  6. [ ターゲット ] にピアリング接続のIDを入力します。

    Aurora VPCルートの宛先

手順 7: Databricks のアンマネージド セキュリティ グループを見つける

  1. VPCダッシュボードで[ セキュリティグループ ] を選択します。
  2. Databricks VPCのIDを検索します。
  3. 名前に [ アンマネージド ] と付いているセキュリティグループの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: アンマネージド セキュリティ グループにルールを追加する

  1. VPCダッシュボードで[ セキュリティグループ ] を選択します。

  2. Aurora VPCのIDを検索します。

  3. [ 編集 ]、 [ 別のルールを追加 ] の順にクリックして、 インバウンドルールを追加します

  4. カスタムTCPルール またはRDSに関連するサービスを選択します。

  5. RDSサービスに対応するように ポート範囲 を設定してください。Aurora [MySQL] のデフォルトは3306です。

  6. [ ソース ] を アンマネージド DatabricksセキュリティグループのセキュリティグループIDに設定します。

    Auroraセキュリティグループルール

ステップ 9: 接続をテストする

  1. Databricksクラスターを作成します。

  2. 次のnetcatコマンドを使用してデータベースに接続できるかどうかを確認します。

    Bash
    %sh nc -zv <hostname> <port>

    接続の検証

プログラマティック VPC ピアリング

このノートブックでは、次の2つのシナリオがサポートされています。

  • Databricks VPCと同じAWSアカウント内の別のVPC間でVPCピアリングを確立する
  • Databricks VPCと別のAWSアカウントにある別のVPCとの間でVPCピアリングを確立する

VPC ピアリングノートブック

Open notebook in new tab

トラブルシューティング

以下との接続を確立できません: netcat

netcatで接続を確立できない場合は、host Linuxコマンドを使用して、ホスト名がDNSで解決されていることを確認します。ホスト名が解決しない場合は、ピアリング接続でDNS解決が有効になっていることを確認してください。

Bash
%sh host -t a <hostname>

DNS解決を検証する

ホスト名またはIPアドレスで接続を確立できません

ホスト名またはIPアドレスのいずれでも接続を確立できない場合は、Aurora RDSのVPCにメインルートテーブルに関連付けられた3つのサブネットがあることを確認してください。

  1. VPCダッシュボード から サブネット を選択し、Aurora VPCのIDを検索します。アベイラビリティゾーンごとにサブネットが必要です。

    Aurora VPCサブネット

  2. これらの各サブネットがメインルートテーブルに関連付けられていることを確認します。

    1. VPCダッシュボードから [ ルートテーブル ] を選択し、Aurora RDSに関連付けられているメインルートテーブルを検索します。

    2. [ サブネットの関連付け ] タブをクリックし、[ 編集 ] をクリックします。リストには3つのサブネットがすべて表示されますが、どのサブネットも [ 関連付ける ] が選択されていないはずです。

      Auroraサブネットの関連付け

DNSが機能していません

Route 53を確認し、Databricks VPCがVPC内で使用されているプライベートホストゾーンに関連付けられていることを確認します。