5
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

[2024年版] DatabricksにおけるAWS PrivateLinkのバックエンド接続の設定(実践編)

Last updated at Posted at 2024-05-25

以前こちらを書きましたが、いかんせん3年前のものなのでもう一度ウォークスルーします。

注意
ここでは基本的な構成でのウォークスルーを行っています。ご自身のネットワーク要件に基づいて適宜変更してください。

お詫び
2024/8/22まで、セキュリティグループの設定で、アウトバウンドルールの「ワークスペースセキュリティグループへのすべてのTCPおよびUDPアクセスを許可します(内部トラフィック用)」の設定が漏れておりました。大変ご迷惑をおかけしました。

当時は日本語マニュアルもありませんでした。

事前の検討事項

  • 構成 どれを選ぶべきかに関してはこちらを参考にしてください。

    1. バックエンドのみ
    2. バックエンド+フロントエンド
    3. バックエンド+フロントエンド+公衆回線からのアクセスをシャットダウン
  • クラスターから外部へのアクセスを許可するかどうか

  • リージョン

  • VPCにおけるIPアドレスのサイズ(CIDR)
    Databricksワークスペースで使用するサブネットは最低2つ必要です。それらのサブネットは異なるアベイラビリティゾーンに存在する必要があります。Databricksの計算資源を構成するノード(1台のドライバー/ワーカー)は2つのIPアドレスを必要とします。このため、あるサブネットに配備できるノードの数は、確保しているIPアドレスの半分となります。各サブネットには、/17~/26のネットマスクが必要です。これら2つのサブネットのサイズを決定した後に、VPCのCIDRを決定します。

    • サブネットマスク/17: IPアドレス数は32,768、確保できるノード数は16,384
    • サブネットマスク/26: IPアドレス数は64、確保できるノード数は32

ここでは、以下の前提で設定を行います。

  • Tokyoリージョン
  • バックエンドPrivateLinkのみ
  • 外部接続は許可しない
  • サブネットのサイズは/25(64ノード)

参考資料

AWSマネジメントコンソールでの作業

VPCの作成

以下の設定でVPCを作成します。

  • 名前タグ:privatelink
  • IPv4 CIDR ブロック: 10.0.0.0/24
  • アベイラビリティゾーン (AZ) の数: 2
  • パブリックサブネットの数: 0
  • プライベートサブネットの数: 2
    • サブネット1のCIDR: 10.0.0.0/25(64ノード)
    • サブネット2のCIDR: 10.0.0.128/25(64ノード)
  • NAT ゲートウェイ ($): なし
  • VPC エンドポイント: S3ゲートウェイ
  • DNSオプション: 両方チェック

Screenshot 2024-05-25 at 8.44.22.png
Screenshot 2024-05-25 at 8.49.03.png
Screenshot 2024-05-25 at 8.49.47.png

セキュリティグループの設定

こちらに従って設定を行います。

トラフィックソースとして自分自身を指定するので、ルールが空の状態でセキュリティグループを作成します。
Screenshot 2024-05-25 at 9.14.43.png

インバウンドルール
Screenshot 2024-05-25 at 9.16.06.png

アウトバウンドルール

このように設定します。
Screenshot 2024-05-25 at 9.19.20.png
Screenshot 2024-05-25 at 9.19.37.png

セキュリティグループを作成した後に、「ワークスペースセキュリティグループへのすべてのTCPおよびUDPアクセスを許可します(内部トラフィック用)」 を追加します。ここでの送信先には、上で作成したセキュリティグループを指定します。
Screenshot 2024-08-22 at 19.49.08.png

ネットワークACLの設定

ネットワークACLはデフォルトのままとし、すべてのトラフィックを許可します。ワークスペースデプロイの際にはこちらの検証を行います。

Screenshot 2024-05-25 at 10.41.24.png
Screenshot 2024-05-25 at 10.41.33.png

ここではVPCエンドポイント用のサブネットは作成せず、ワークスペース用サブネットにVPCエンドポイントを作成します。VPCエンドポイント用のサブネットを作成した場合には、ルートテーブル、セキュリティグループを追加で作成してください。

VPCエンドポイントの作成

バックエンドPrivateLinkの場合は、2つのVPCエンドポイントを作成します。

  • セキュアクラスター接続用VPCエンドポイント
  • ワークスペース用: コンピュートプレーンへのDatabricks REST API呼び出しのために必要です。

ここでは、ガイドに従い以下の名前でエンドポイントを作成します。

  • セキュアクラスター接続用: databricks-ap-northeast-1-scc-vpce
  • ワークスペース用: databricks-ap-northeast-1-workspace-vpce

セキュアクラスター接続用VPCエンドポイントの作成

エンドポイント名を入力し、その他のエンドポイントサービスを選択します。
Screenshot 2024-05-25 at 9.27.16.png

こちらのリファレンスap-northeast-1を検索します。セキュアなクラスター接続リレーのサービス名はcom.amazonaws.vpce.ap-northeast-1.vpce-svc-02aa633bda3edbec0となっているので、これをサービス名に貼り付けて、サービスの検証をクリックします。
Screenshot 2024-05-25 at 9.29.06.png
問題がなければ サービス名が検証されました。 と表示されます。

上のステップで作成した、VPC、AZごとのサブネット、セキュリティグループを選択します。VPCを設定する際に追加設定を展開し、DNS名を有効化にチェックを入れることを忘れない様にしてください。
Screenshot 2024-05-25 at 9.41.10.png
Screenshot 2024-05-25 at 9.32.50.png

エンドポイントを作成をクリックします。

ワークスペース用VPCエンドポイントの作成

ワークスペース(REST APIを含む) のサービス名はcom.amazonaws.vpce.ap-northeast-1.vpce-svc-02691fd610d24fd64なので、上の手順でエンドポイントを作成します。

2つのVPCエンドポイントが有効化されたことを確認します。
Screenshot 2024-05-25 at 9.52.06.png

Databricksアカウントコンソールでの作業

アカウント管理者として https://accounts.cloud.databricks.com/ にログインします。

VPCエンドポイントの登録

クラウドリソース > ネットワーク > VPCエンドポイント にアクセスします。VPCエンドポイントを登録をクリックします。
Screenshot 2024-05-25 at 9.55.25.png

手順に従い、エンドポイント名、リージョン、上のステップで作成したVPCエンドポイントのIDを指定して設定を行います。
Screenshot 2024-05-25 at 9.57.04.png
Screenshot 2024-05-25 at 9.57.34.png
Screenshot 2024-05-25 at 9.57.41.png

ネットワーク構成の作成

手順に従い、ネットワーク構成を作成します。これまでの手順で作成した、VPCのID、サブネットのID、セキュリティグループのID、上の手順で作成したVPCエンドポイントを指定します。
Screenshot 2024-05-25 at 10.02.22.png
Screenshot 2024-05-25 at 10.02.35.png

プライベートアクセス設定オブジェクトの作成

手順に従って、オブジェクトを作成します。

バックエンドPrivateLinkのみの構成なので、パブリックアクセスはTrueに設定してインターネットからのアクセスを許可します。
Screenshot 2024-05-25 at 10.07.34.png

ワークスペースの作成

このステップでは、上の手順で作成したネットワーク構成オブジェクト、プライベートアクセス設定オブジェクトに加えて、認証情報設定やストレージ設定、Unity Catalogメタストアが必要となります。作成していない場合には、こちらを参考にして設定オブジェクトを作成してください。

ワークスペースにアクセスしてワークスペースの作成をクリックします。
Screenshot 2024-05-25 at 10.10.22.png

ワークスペース名、リージョン、資格情報、ストレージ設定、Unity Catalogメタストアを設定します。
Screenshot 2024-05-25 at 10.12.13.png

高度な設定を展開します。上のステップで作成したネットワーク構成オブジェクトとプライベートアクセス設定オブジェクトを選択します。

保存をクリックすると、ワークスペースの作成がスタートします。

注意
作成時にResponse not successful: Received status code 400というエラーが出る場合には、AWSネットワークの設定が間違っている可能性があります。クラウドリソース > ネットワーク > ネットワーク設定にアクセスし、VPCステータスメッセージを確認することで、トラブルシュートすることができます。
Screenshot 2024-05-25 at 10.44.57.png

うまくいけば、ワークスペースがデプロイされます。
Screenshot 2024-05-25 at 10.45.23.png
Screenshot 2024-05-25 at 10.45.40.png

アカウント管理者としてログインします。
Screenshot 2024-05-25 at 10.46.18.png

AWSマネジメントコンソールでの作業(続き)

ここで、もう一度AWSマネジメントコンソールでの作業に戻ります。こちらにあるように、追加でVPCエンドポイントを作成します。

STS VPCインタフェースエンドポイントの作成

AWSのサービスを選択し、stsで検索します。com.amazonaws.ap-northeast-1.stsを選択し、VPC、サブネット、セキュリティグループを選択します。
Screenshot 2024-05-25 at 10.50.22.png
Screenshot 2024-05-25 at 10.50.57.png

Kinesis VPCインタフェースエンドポイントの作成

AWSのサービスを選択し、kinesisで検索します。com.amazonaws.ap-northeast-1.kinesis-streamsを選択し、VPC、サブネット、セキュリティグループを選択します。
Screenshot 2024-05-25 at 10.54.34.png
Screenshot 2024-05-25 at 10.54.44.png

Databricksワークスペースでの動作確認

ワークスペースにアクセスして、クラスターに移動します。最小規模のクラスターで構わないので、Personal Computeで作成をクリックします。
Screenshot 2024-05-25 at 10.55.27.png
コンピューティングを作成をクリックします。
Screenshot 2024-05-25 at 10.56.23.png

クラスターが起動するかどうかが最初の関門です。起動に失敗する場合には上で設定した内容を再度確認してください。

グリーンランプがついたので無事に起動しました!
Screenshot 2024-05-25 at 11.03.46.png

サイドメニューの新規 > ノートブックを選択してノートブックを作成し、上で作成したクラスターにアタッチします。言語設定はPythonにしておきます。

以下を実行します。

print("hello")

Screenshot 2024-05-25 at 11.07.22.png

結果が返ってきたら動作確認は完了です。お疲れ様でした!クラスターは停止しておいてください。

はじめてのDatabricks

はじめてのDatabricks

Databricks無料トライアル

Databricks無料トライアル

5
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?