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 ピアリング をご覧ください。 最後に、一般的な問題と解決策の トラブルシューティング セクションがあります。

重要

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コマンドを使用してデータベースに接続できるかどうかを確認します。

    %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>
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内で使用されているプライベートホストゾーンに関連付けられていることを確認します。