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

NAT ゲートウェイ経由のプロキシ トラフィック

このガイドでは、NAT ゲートウェイを介して EC2 インスタンスと別の IP アドレス間のトラフィックをプロキシするように Databricks を構成する方法について説明します。 たとえば、 BI ソフトウェアを静的 IP アドレスにポイントすると、すべてのトラフィックが NAT ゲートウェイを介して Redshift クラスターにプロキシされます。 Redshiftクラスターの観点からは、Databricksクラスターの設定に関係なく、すべてのインスタンスに安定したパブリックIPアドレスがあります。

注記

Redshiftトラフィックをプロキシするには、Redshift クラスターを IPv4 Elastic IP で起動する必要があります。エラスティックIPは安定しており、パブリックにアクセス可能です。

この記事では、 Databricks VPCに新しいパブリック サブネットを割り当てる方法、サブネット内に NAT ゲートウェイを追加する方法、および特定のトラフィックが NAT ゲートウェイを通過するようにデフォルト ルート テーブルを更新する手順について説明します。

Databricks VPC にサブネットを作成する

  1. Databricks に連絡して、Databricks VPC の ID を取得します。

  2. AWS VPC コンソールにログインし、左側のパネルから [サブネット ] を選択します。

  3. 検索ボックスに Databricks VPC ID を入力すると、Databricks VPC に含まれるすべてのサブネットが表示されます。

    サブネットを作成する

    デフォルトでは、Databricks はアベイラビリティーゾーン (AZ) ごとに 1 つのサブネットを作成します。 同じ B クラス範囲から未使用の CIDR ブロック ( a.b.0.0など) を選択する必要があります。 この例では、 10.29.224.0/1910.29.192.0/1910.29.160.0/19の 3 つの CIDR ブロックが使用されています。 10.29.0.0~10.29.159.255のアドレス範囲にあるすべてのIPは無料です。その範囲内で、新しい C クラス サブネット ( 10.29.100.0/24など) を選択できます。

  4. サブネットの作成 」をクリックし、次の情報を入力します。

    • 名前タグ : サブネットの名前。 Databricks では、名前の一部として gateway を使用することをお勧めします。

    • VPC : Databricks VPC ID。

    • アベイラビリティーゾーン : 可用性のニーズに応じて、少なくとも 1 つのアベイラビリティーゾーン。

    • CIDRブロック :少なくとも1つのIPアドレスを含む未使用のCIDRブロック。

注記
  • Databricks は、B クラス範囲の上限から CIDR ブロックを割り当てます。 ゲートウェイサブネットの CIDR ブロックを選択する場合、Databricks では、AWS がリージョンにアベイラビリティーゾーンを追加する場合の将来の競合を回避するために、より低い範囲を使用することをお勧めします。

  • パブリック・サブネットには、NATゲートウェイに必要なIPは1つだけです。

  1. 「はい、作成します」 をクリックします。

サブネットに NAT ゲートウェイを作成する

  1. AWS VPCコンソールの左パネルから [NATゲートウェイ ]を選択し、[ NATゲートウェイの作成 ]をクリックします。

  2. [サブネット] で、作成したサブネットを選択します。

  3. [Elastic IP Allocation ID] から使用可能な任意の IP を選択します。使用可能な Elastic IP がない場合は、最初に新しい Elastic IP を作成します。

  4. [NAT ゲートウェイの作成 ] をクリックします。

    NAT ゲートウェイが作成されました

  5. 成功ページで、[ ルート テーブルの編集(Edit Route Tables)] をクリックします。

ルートテーブルをゲートウェイサブネットに関連付ける

  1. [ルート テーブルの作成 ] をクリックします。

  2. [名前タグ ] に、ルート テーブルの名前を入力します。

  3. VPC で、Databricks VPC ID を選択します。

  4. 「はい、作成します」 をクリックします。

    ルート テーブルを作成する

  5. 新しく作成したルートテーブルをリストから選択します。

  6. [ルート] タブで [ 編集 ] をクリックし、[ 別のルートを追加 ] をクリックします。

  7. 「宛先 」に「0.0.0.0/0」と入力します。

  8. [ターゲット ] で、igw=で始まる Databricks VPC のインターネットゲートウェイを選択します。

  9. [ 保存 ]をクリックします。

    ルートを追加する

  10. 「サブネットの関連付け」 タブで 「編集 」をクリックします。

  11. NAT ゲートウェイのサブネットを選択します。

  12. 「保存 」をクリックします。サブネットは、インターネット上でアクセス可能なパブリックサブネットになりました。

    サブネットの関連付け

外部システムへのルーティングの設定

この手順に従って、VPC 内のノードと外部システム (Redshift など) 間のすべてのトラフィックを NAT ゲートウェイ経由で転送します。

  1. AWS VPC コンソールの左側のパネルで、[ Route Tables] を選択します。

  2. 検索ボックスに Databricks VPC ID を入力します。 この一覧には、Databricks VPC で使用されるすべてのルート テーブルが表示されます。

    • ルートの 1 つは、作成したゲートウェイ ルート テーブルです。
    • もう 1 つは Main というラベルで、VPC 内の他のすべてのサブネットのデフォルトルートテーブルです。
  3. メイン ルートテーブルを選択します。

  4. 「ルート」 タブで、「 編集 」をクリックします。

  5. [宛先] で、外部システムの Elastic IP を見つけます。次の図では、Elastic IP は 1.2.3.4です。

  6. [ターゲット ] で、前に作成した NAT ゲートウェイを選択します。それは nat-から始まります。

  7. [ 保存 ]をクリックします。

    ルーティングを構成する

すべての VPC インスタンスと Elastic IP の間のすべてのトラフィックは、NAT ゲートウェイを経由します。 外部システムの観点からは、すべてのノードに Elastic IP の address.ame IP アドレスが NAT ゲートウェイの Elastic IP として設定されます。 内部トラフィックは、VPC の元のルーティングルールを引き続き使用します。

S3 エンドポイントを VPC に追加する

NAT ゲートウェイを経由する外部トラフィックには、追加料金がかかります ( Amazon VPC 価格を参照)。 コストとレイテンシーの両方を削減するために、Databricks アセットを S3 バケットに保存できます。 Elastic IP と S3 バケット間のトラフィックは無料です。

注記

VPC エンドポイントは、クロスリージョンアクセスをサポートしていません。 別のリージョンの S3 バケットにアクセスすると、トラフィックは NAT ゲートウェイ経由でルーティングされます。

  1. AWS VPC コンソールの左側のパネルで、[ エンドポイント] を選択します。

  2. [ エンドポイントの作成 ] をクリックします。

    エンドポイントを作成

  3. VPC で、Databricks VPC ID を選択します。

  4. [サービス ] で、利用可能な S3 サービスのみを選択します。

  5. 「次のステップ 」をクリックします。

    次のステップ

  6. メイン ルートテーブルを選択します。これにより、S3 エンドポイントがすべてのプライベートサブネットに関連付けられます。

  7. [ エンドポイントの作成 ] をクリックします。

サブネット設定の確認

  1. [サブネット] ページで、[ ルート テーブル ] タブに移動します。

  2. 検索ボックスに Databricks VPC ID を入力します。

  3. 次のことを確認します。

    • ゲートウェイサブネットには、VPC のインターネットゲートウェイ (igw-xxxxxx) に設定された0.0.0.0/0ルートがあります。

      ゲートウェイ サブネット

    • 他のすべてのサブネットでは、 0.0.0.0/0 ルートがNATゲートウェイ(nat-xxxxxx)に設定されています。

    • S3 エンドポイントが正しく設定されている場合、ターゲットが vpce-xxxx <target>に設定されたルートがリストに含まれます。

important

Databricks コントロール プレーン VPC (pcx-xxxxx) への VPC ピアリング接続は、そのままにしておく必要があります。

VPC ピアリング接続

クラスターを作成する

新しい構成をテストするには、新しいクラスターを作成します。 新しい NAT ゲートウェイが自動的に使用されます。 新しいクラスターの準備ができたら、期待どおりに動作することを確認します。 新しいクラスターの開始に失敗した場合、またはその他の問題が発生した場合は、 Databricks に連絡してください。

クラスターのパブリック IP アドレスを無効にする

NAT ゲートウェイ プロキシが意図したとおりに動作することを確認したら、新しく作成したクラスターで公開 IP アドレスの削除をリクエストできます。

important

既存の AWS インスタンスでパブリック IP アドレスを無効にすることはできません。

  1. Databricks サポートに連絡し、パブリック IP アドレスを無効にすることを伝えます。
  2. Databricks で設定の変更が完了したことを確認したら、Databricks内のすべてのクラスターを終了します。
  3. AWS リソースがクリーンアップされるまで 1 時間待つか、AWS コンソールで既存のインスタンスを手動で終了します。 このステップをスキップすると Databricks 、以前に割り当てられたパブリック IP アドレスがまだある既存のインスタンスを新しいクラスターに再利用できる可能性があります。
  4. Databricks デプロイメントにログインし、新しいクラスターを作成します。クラスターの準備が整うまで待ちます。

クラスターにパブリック IP アドレスが設定されていないことを確認するには、 AWS EC2 ダッシュボードに移動し、ワーカー インスタンスの構成を確認します。

ワーカーインスタンスのアドレス

クラスターにパブリック IP アドレスがある場合、またはクラスターが準備完了にならない場合は、 Databricksにお問い合わせください。