AWSでDatabricksのワークスペースをデプロイする際、AWSのPrivateLinkを用いた構成を組むことができます。
最近まではREST APIを呼び出してデプロイを行う必要があり正直大変でしたが、最近ではDatabricksアカウントコンソールでデプロイができる様になっているので、ここではそのデプロイ方法をウォークスルーします。
REST APIを用いたデプロイに関してはこちらに記載しています(古くなっているので時間がある時にアップデートしたいところですが)。
AWS側の設定
- こちらの手順に沿って、クロスアカウントIAMロール、S3バケットの設定を行います。
- こちらの手順に沿って顧客管理VPCを作成します。
- 以前はVPCエンドポイントの有効化を行う際、Databricksへの連絡が必要でしたが今では不要です。こちらの手順に沿って必要なVPCエンドポイントを作成します。AWSのコンソールが当時から若干変わっているので、以下にスクリーンショットを載せます。
-
VPC > エンドポイント > エンドポイントの作成に移動します。
- 名前(
Workspace VPC endpoint service
など用途がわかるもの)を指定し、その他のエンドポイントサービスを選択し、サービス名にはこちらに記載されている当該リージョンのエンドポイントサービス(東京リージョンならcom.amazonaws.vpce.ap-northeast-1.vpce-svc-02691fd610d24fd64
)を指定します。 -
サービスの検証をクリックします。サービス名が検証されました。 と表示されることを確認します。
-
VPCは上で作成したVPC、サブネットはVPCエンドポイント向けサブネットを選択します。
- セキュリティグループはVPCエンドポイント向けセキュリティグループを選択し、エンドポイントを作成をクリックします。
-
VPC > エンドポイント > エンドポイントの作成に移動します。
- Back-end SCC relay serviceのエンドポイントサービスについても同様の手順で作成します。これらのステータスは最初は保留中となりますが、しばらく待つと使用可能になります。以前はエンドポイントの登録作業が必要でしたが今は不要です。また、こちらの手順に沿って、VPCエンドポイントのプライベートDNS名を有効化することを忘れない様にしてください。
- こちらの手順に沿ってS3、STS、Kinesisのエンドポイント、こちらの手順でGlueのエンドポイントを作成します。
- ここまでの作業を行うと以下の様にエンドポイントが作成されます。
次のステップで使用するので、以下の情報をメモしておきます。
- 作成したVPCのVPC ID
- ワークスペース用に作成した二つのサブネットのサブネットID
- ワークスペース用セキュリティグループのセキュリティID
- Workspace VPC endpoint serviceエンドポイントのエンドポイントID
- Back-end SCC relay serviceエンドポイントのエンドポイントID
Databricksアカウントコンソールの設定
以前は、REST APIをコールして行ってワークスペースをデプロイしていましたが、今では以降の作業はGUIで行うことができます(APIを使うことも可能です。作業記録を残すという観点ではAPIを使った方がいいケースもあると思います)。
-
ワークスペース名、URL、リージョン、Credential configuration、Storage configurationを指定します。
-
Network configurationのドロップダウンを展開し、Add a new network configuraionを選択します。
-
ダイアログが表示されるので、ネットワーク設定情報名を入力します。そして、上のステップの最後にメモしたVPC ID、サブネットID、セキュリティグループIDを入力します。
-
VPC endpoint for secure cluster connectivity relayのドロップダウンをクリックし、Add a new VPC endpointを選択します。
-
さらにダイアログが表示されるので、VPCエンドポイント名、リージョン、そして上のステップでメモしたBack-end SCC relay serviceエンドポイントのエンドポイントIDを入力します。
重要!
Workspace VPC endpoint serviceエンドポイントと混同しない様にしてください。 -
Register new VPC endpointをクリックして登録します。
-
Workspace VPC endpoint serviceエンドポイントについても同様の手順で登録します。
-
このように適切なエンドポイントが選択されていることを確認し、Addをクリックします。これでネットワーク設定オブジェクトが作成されます。
-
ダイアログが表示されるので、設定名、リージョン、Public access、Private Access Levelを設定します。特にPublic accessに関しては、フロントエンドPrivateLinkと組み合わせた完全ロックダウン構成以外のケースではTrueを選択してください。公衆ネットワークからログインしようとしてもエラーになってしまいます。Private Access Levelも特別な理由がなければAccountを選択します。Add private access settingをクリックして設定を作成します。
-
これまで設定した内容が画面に反映されていることを確認して、SaveをクリックすればDatabricksワークスペースのデプロイメントが開始します。