NAT ゲートウェイ経由のプロキシ トラフィック
このガイドでは、NAT ゲートウェイを介して EC2 インスタンスと別の IP アドレス間のトラフィックをプロキシするように Databricks を構成する方法について説明します。 たとえば、 BI ソフトウェアを静的 IP アドレスにポイントすると、すべてのトラフィックが NAT ゲートウェイを介して Redshift クラスターにプロキシされます。 Redshiftクラスターの観点からは、Databricksクラスターの設定に関係なく、すべてのインスタンスに安定したパブリックIPアドレスがあります。
Redshiftトラフィックをプロキシするには、Redshift クラスターを IPv4 Elastic IP で起動する必要があります。エラスティックIPは安定しており、パブリックにアクセス可能です。
この記事では、 Databricks VPCに新しいパブリック サブネットを割り当てる方法、サブネット内に NAT ゲートウェイを追加する方法、および特定のトラフィックが NAT ゲートウェイを通過するようにデフォルト ルート テーブルを更新する手順について説明します。
Databricks VPC にサブネットを作成する
-
Databricks に連絡して、Databricks VPC の ID を取得します。
-
AWS VPC コンソールにログインし、左側のパネルから [サブネット ] を選択します。
-
検索ボックスに Databricks VPC ID を入力すると、Databricks VPC に含まれるすべてのサブネットが表示されます。
デフォルトでは、Databricks はアベイラビリティーゾーン (AZ) ごとに 1 つのサブネットを作成します。 同じ B クラス範囲から未使用の CIDR ブロック (
a.b.0.0
など) を選択する必要があります。 この例では、10.29.224.0/19
、10.29.192.0/19
、10.29.160.0/19
の 3 つの CIDR ブロックが使用されています。10.29.0.0
~10.29.159.255
のアドレス範囲にあるすべてのIPは無料です。その範囲内で、新しい C クラス サブネット (10.29.100.0/24
など) を選択できます。 -
「 サブネットの作成 」をクリックし、次の情報を入力します。
-
名前タグ : サブネットの名前。 Databricks では、名前の一部として
gateway
を使用することをお勧めします。 -
VPC : Databricks VPC ID。
-
アベイラビリティーゾーン : 可用性のニーズに応じて、少なくとも 1 つのアベイラビリティーゾーン。
-
CIDRブロック :少なくとも1つのIPアドレスを含む未使用のCIDRブロック。
-
-
Databricks は、B クラス範囲の上限から CIDR ブロックを割り当てます。 ゲートウェイサブネットの CIDR ブロックを選択する場合、Databricks では、AWS がリージョンにアベイラビリティーゾーンを追加する場合の将来の競合を回避するために、より低い範囲を使用することをお勧めします。
-
パブリック・サブネットには、NATゲートウェイに必要なIPは1つだけです。
- 「はい、作成します」 をクリックします。
サブネットに NAT ゲートウェイを作成する
-
AWS VPCコンソールの左パネルから [NATゲートウェイ ]を選択し、[ NATゲートウェイの作成 ]をクリックします。
-
[サブネット] で、作成したサブネットを選択します。
-
[Elastic IP Allocation ID] から使用可能な任意の IP を選択します。使用可能な Elastic IP がない場合は、最初に新しい Elastic IP を作成します。
-
[NAT ゲートウェイの作成 ] をクリックします。
-
成功ページで、[ ルート テーブルの編集(Edit Route Tables)] をクリックします。
ルートテーブルをゲートウェイサブネットに関連付ける
-
[ルート テーブルの作成 ] をクリックします。
-
[名前タグ ] に、ルート テーブルの名前を入力します。
-
VPC で、Databricks VPC ID を選択します。
-
「はい、作成します」 をクリックします。
-
新しく作成したルートテーブルをリストから選択します。
-
[ルート] タブで [ 編集 ] をクリックし、[ 別のルートを追加 ] をクリックします。
-
「宛先 」に「
0.0.0.0/0
」と入力します。 -
[ターゲット ] で、
igw=
で始まる Databricks VPC のインターネットゲートウェイを選択します。 -
[ 保存 ]をクリックします。
-
「サブネットの関連付け」 タブで 「編集 」をクリックします。
-
NAT ゲートウェイのサブネットを選択します。
-
「保存 」をクリックします。サブネットは、インターネット上でアクセス可能なパブリックサブネットになりました。
外部システムへのルーティングの設定
この手順に従って、VPC 内のノードと外部システム (Redshift など) 間のすべてのトラフィックを NAT ゲートウェイ経由で転送します。
-
AWS VPC コンソールの左側のパネルで、[ Route Tables] を選択します。
-
検索ボックスに Databricks VPC ID を入力します。 この一覧には、Databricks VPC で使用されるすべてのルート テーブルが表示されます。
- ルートの 1 つは、作成したゲートウェイ ルート テーブルです。
- もう 1 つは Main というラベルで、VPC 内の他のすべてのサブネットのデフォルトルートテーブルです。
-
メイン ルートテーブルを選択します。
-
「ルート」 タブで、「 編集 」をクリックします。
-
[宛先] で、外部システムの Elastic IP を見つけます。次の図では、Elastic IP は
1.2.3.4
です。 -
[ターゲット ] で、前に作成した NAT ゲートウェイを選択します。それは
nat-
から始まります。 -
[ 保存 ]をクリックします。
すべての 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 ゲートウェイ経由でルーティングされます。
-
AWS VPC コンソールの左側のパネルで、[ エンドポイント] を選択します。
-
[ エンドポイントの作成 ] をクリックします。
-
VPC で、Databricks VPC ID を選択します。
-
[サービス ] で、利用可能な S3 サービスのみを選択します。
-
「次のステップ 」をクリックします。
-
メイン ルートテーブルを選択します。これにより、S3 エンドポイントがすべてのプライベートサブネットに関連付けられます。
-
[ エンドポイントの作成 ] をクリックします。
サブネット設定の確認
-
[サブネット] ページで、[ ルート テーブル ] タブに移動します。
-
検索ボックスに Databricks VPC ID を入力します。
-
次のことを確認します。
-
ゲートウェイサブネットには、VPC のインターネットゲートウェイ (
igw-xxxxxx
) に設定された0.0.0.0/0
ルートがあります。 -
他のすべてのサブネットでは、
0.0.0.0/0
ルートがNATゲートウェイ(nat-xxxxxx
)に設定されています。 -
S3 エンドポイントが正しく設定されている場合、ターゲットが
vpce-xxxx <target>
に設定されたルートがリストに含まれます。
-
Databricks コントロール プレーン VPC (pcx-xxxxx
) への VPC ピアリング接続は、そのままにしておく必要があります。
クラスターを作成する
新しい構成をテストするには、新しいクラスターを作成します。 新しい NAT ゲートウェイが自動的に使用されます。 新しいクラスターの準備ができたら、期待どおりに動作することを確認します。 新しいクラスターの開始に失敗した場合、またはその他の問題が発生した場合は、 Databricks に連絡してください。
クラスターのパブリック IP アドレスを無効にする
NAT ゲートウェイ プロキシが意図したとおりに動作することを確認したら、新しく作成したクラスターで公開 IP アドレスの削除をリクエストできます。
既存の AWS インスタンスでパブリック IP アドレスを無効にすることはできません。
- Databricks サポートに連絡し、パブリック IP アドレスを無効にすることを伝えます。
- Databricks で設定の変更が完了したことを確認したら、Databricks内のすべてのクラスターを終了します。
- AWS リソースがクリーンアップされるまで 1 時間待つか、AWS コンソールで既存のインスタンスを手動で終了します。 このステップをスキップすると Databricks 、以前に割り当てられたパブリック IP アドレスがまだある既存のインスタンスを新しいクラスターに再利用できる可能性があります。
- Databricks デプロイメントにログインし、新しいクラスターを作成します。クラスターの準備が整うまで待ちます。
クラスターにパブリック IP アドレスが設定されていないことを確認するには、 AWS EC2 ダッシュボードに移動し、ワーカー インスタンスの構成を確認します。
クラスターにパブリック IP アドレスがある場合、またはクラスターが準備完了にならない場合は、 Databricksにお問い合わせください。