Databricksアカウントコンソールを用いたPrivateLink構成ワークスペースのデプロイメント

AWSでDatabricksのワークスペースをデプロイする際、AWSのPrivateLinkを用いた構成を組むことができます。

最近まではREST APIを呼び出してデプロイを行う必要があり正直大変でしたが、最近ではDatabricksアカウントコンソールでデプロイができる様になっているので、ここではそのデプロイ方法をウォークスルーします。

REST APIを用いたデプロイに関してはこちらに記載しています(古くなっているので時間がある時にアップデートしたいところですが)。

https://qiita.com/taka_yayoi/items/c6bdbb6452f6a0895961

https://qiita.com/taka_yayoi/items/1ca54463469df05dd3ee

# AWS側の設定

1. [こちらの手順](https://qiita.com/taka_yayoi/items/1ca54463469df05dd3ee#%E4%BA%8B%E5%89%8D%E6%BA%96%E5%82%99)に沿って、クロスアカウントIAMロール、S3バケットの設定を行います。
1. [こちらの手順](https://qiita.com/taka_yayoi/items/1ca54463469df05dd3ee#%E9%A1%A7%E5%AE%A2%E7%AE%A1%E7%90%86vpc%E3%81%AE%E4%BD%9C%E6%88%90)に沿って[顧客管理VPC](https://qiita.com/taka_yayoi/items/f23bd799e1960e2eccbe)を作成します。
1. 以前はVPCエンドポイントの有効化を行う際、Databricksへの連絡が必要でしたが今では不要です。[こちらの手順](https://qiita.com/taka_yayoi/items/1ca54463469df05dd3ee#vpc%E3%82%A8%E3%83%B3%E3%83%89%E3%83%9D%E3%82%A4%E3%83%B3%E3%83%88%E3%81%AE%E4%BD%9C%E6%88%90)に沿って必要なVPCエンドポイントを作成します。AWSのコンソールが当時から若干変わっているので、以下にスクリーンショットを載せます。
    1. **VPC > エンドポイント > エンドポイントの作成**に移動します。
![Screen Shot 2022-11-23 at 11.40.47.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1168882/42009571-5dca-5c41-916a-4c2134b4ce7b.png)
    1. 名前(`Workspace VPC endpoint service`など用途がわかるもの)を指定し、**その他のエンドポイントサービス**を選択し、サービス名には[こちら](https://docs.databricks.com/administration-guide/cloud-configurations/aws/privatelink.html#regional-endpoint-reference)に記載されている当該リージョンのエンドポイントサービス(東京リージョンなら`com.amazonaws.vpce.ap-northeast-1.vpce-svc-02691fd610d24fd64`)を指定します。
    1. **サービスの検証**をクリックします。**サービス名が検証されました。** と表示されることを確認します。
![Screen Shot 2022-11-23 at 11.45.24.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1168882/2a624b76-0e0c-d83a-1494-83c115dd8b90.png)
    1. **VPC**は上で作成したVPC、**サブネット**はVPCエンドポイント向けサブネットを選択します。
![Screen Shot 2022-11-23 at 11.46.43.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1168882/c6ab39cd-744b-71d5-c8ff-1d7af477769b.png)
    1. セキュリティグループはVPCエンドポイント向けセキュリティグループを選択し、**エンドポイントを作成**をクリックします。
![Screen Shot 2022-11-23 at 11.47.30.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1168882/eacb9da9-0ca9-4a0d-9e58-37cd7b8faf1e.png)
1. Back-end SCC relay serviceのエンドポイントサービスについても同様の手順で作成します。これらのステータスは最初は**保留中**となりますが、しばらく待つと**使用可能**になります。以前はエンドポイントの登録作業が必要でしたが今は不要です。また、[こちらの手順](https://qiita.com/taka_yayoi/items/1ca54463469df05dd3ee#vpc%E3%82%A8%E3%83%B3%E3%83%89%E3%83%9D%E3%82%A4%E3%83%B3%E3%83%88%E3%81%AE%E3%83%97%E3%83%A9%E3%82%A4%E3%83%99%E3%83%BC%E3%83%88dns%E5%90%8D%E3%82%92%E6%9C%89%E5%8A%B9%E5%8C%96%E3%81%99%E3%82%8B)に沿って、**VPCエンドポイントのプライベートDNS名を有効化**することを忘れない様にしてください。
![Screen Shot 2022-11-23 at 12.07.21.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1168882/e10af88a-eda0-4020-a791-dab112fb469f.png)
1. [こちらの手順](https://qiita.com/taka_yayoi/items/1ca54463469df05dd3ee#s3-vpc%E3%82%B2%E3%83%BC%E3%83%88%E3%82%A6%E3%82%A7%E3%82%A4%E3%82%A8%E3%83%B3%E3%83%89%E3%83%9D%E3%82%A4%E3%83%B3%E3%83%88)に沿ってS3、STS、Kinesisのエンドポイント、[こちらの手順](https://qiita.com/taka_yayoi/items/1ca54463469df05dd3ee#glue%E3%82%AB%E3%82%BF%E3%83%AD%E3%82%B0%E3%82%A8%E3%83%B3%E3%83%89%E3%83%9D%E3%82%A4%E3%83%B3%E3%83%88%E3%81%AE%E4%BD%9C%E6%88%90)でGlueのエンドポイントを作成します。
    1. S3エンドポイントは以下の様に作成します。ルートテーブルはメインルートテーブルを選択します。
![Screen Shot 2022-11-23 at 11.51.29.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1168882/cbb4d339-fbde-1b5d-6912-45073b45e2b6.png)
1. ここまでの作業を行うと以下の様にエンドポイントが作成されます。
![Screen Shot 2022-11-23 at 12.12.16.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1168882/79bf4ae6-0350-1fcb-87ea-e331887464b5.png)

次のステップで使用するので、以下の情報をメモしておきます。

- 作成したVPCのVPC ID
![Screen Shot 2022-11-23 at 12.24.16.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1168882/14aaefa9-f1bc-7860-989c-ba36521d6955.png)
- ワークスペース用に作成した二つのサブネットのサブネットID
![Screen Shot 2022-11-23 at 12.26.43.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1168882/7f104d3f-0bc8-87dc-a5cf-bec2d5664d4e.png)
- ワークスペース用セキュリティグループのセキュリティID
![Screen Shot 2022-11-23 at 12.27.11.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1168882/96539265-e70c-10fe-de62-26178d27896a.png)
- Workspace VPC endpoint serviceエンドポイントのエンドポイントID
- Back-end SCC relay serviceエンドポイントのエンドポイントID
![Screen Shot 2022-11-23 at 12.27.30.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1168882/0dc6ca6b-c5f4-461b-a5bf-7c5cf60c3cc2.png)

# Databricksアカウントコンソールの設定

以前は、REST APIをコールして行ってワークスペースをデプロイしていましたが、今では以降の作業はGUIで行うことができます(APIを使うことも可能です。作業記録を残すという観点ではAPIを使った方がいいケースもあると思います)。

1. アカウントコンソールにログインします。**Create workspace**をクリックします。
![Screen Shot 2022-11-23 at 12.15.08.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1168882/b94dedc3-271f-c31f-d66a-b89cc17a2035.png)
1. ワークスペース名、URL、リージョン、Credential configuration、Storage configurationを指定します。
![Screen Shot 2022-11-23 at 12.19.12.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1168882/229fe8d1-639a-d9e1-d74d-c7dbe75b082b.png)
1. Advanced configurationsを展開します。
![Screen Shot 2022-11-23 at 12.20.46.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1168882/93a0598d-a4a6-30ef-d7d3-2319b4ac0b63.png)
![Screen Shot 2022-11-23 at 12.21.30.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1168882/47d4fb3b-fc06-9bd8-75f5-2d671d342070.png)
1. Network configurationのドロップダウンを展開し、**Add a new network configuraion**を選択します。
![Screen Shot 2022-11-23 at 12.21.47.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1168882/6b91ee48-e25c-062f-9e49-e246d128b100.png)
1. ダイアログが表示されるので、ネットワーク設定情報名を入力します。そして、上のステップの最後にメモしたVPC ID、サブネットID、セキュリティグループIDを入力します。
![Screen Shot 2022-11-23 at 12.32.44.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1168882/62f00dbb-5c56-7811-dded-94d92f06f3e8.png)
1. 下にダイアログをスクロールし、**Back-end private connectivity**を表示させます。
![Screen Shot 2022-11-23 at 12.34.26.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1168882/eaaff37c-bc80-a6e7-a67a-7fdad858cd40.png)
1. VPC endpoint for secure cluster connectivity relayのドロップダウンをクリックし、**Add a new VPC endpoint**を選択します。
![Screen Shot 2022-11-23 at 12.34.55.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1168882/ae2a1906-f424-0991-da3b-41fcc83e46dd.png)
1. さらにダイアログが表示されるので、VPCエンドポイント名、リージョン、そして上のステップでメモした**Back-end SCC relay serviceエンドポイントのエンドポイントID**を入力します。

    :::note warn
    **重要！**
    Workspace VPC endpoint serviceエンドポイントと混同しない様にしてください。
   :::

    ![Screen Shot 2022-11-23 at 12.36.22.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1168882/3a90af4d-f27f-c207-d742-adb841fa4e2e.png)
1. **Register new VPC endpoint**をクリックして登録します。
1. Workspace VPC endpoint serviceエンドポイントについても同様の手順で登録します。
1. このように適切なエンドポイントが選択されていることを確認し、**Add**をクリックします。これでネットワーク設定オブジェクトが作成されます。
![Screen Shot 2022-11-23 at 12.39.46.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1168882/a78c59f3-0bf9-72d7-2e94-f0625f56c096.png)
1. Private Linkに移動し、Add a new private access settingをクリックします。
![Screen Shot 2022-11-23 at 12.40.39.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1168882/668f4c1c-e856-dd83-471a-a6c97f4b16c9.png)
1. ダイアログが表示されるので、設定名、リージョン、Public access、Private Access Levelを設定します。特に**Public access**に関しては、フロントエンドPrivateLinkと組み合わせた完全ロックダウン構成以外のケースでは**True**を選択してください。公衆ネットワークからログインしようとしてもエラーになってしまいます。Private Access Levelも特別な理由がなければ**Account**を選択します。**Add private access setting**をクリックして設定を作成します。
![Screen Shot 2022-11-23 at 12.44.21.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1168882/e739ead2-fd6c-3b13-7529-1e007116bc7d.png)
1. これまで設定した内容が画面に反映されていることを確認して、**Save**をクリックすればDatabricksワークスペースのデプロイメントが開始します。
![Screen Shot 2022-11-23 at 12.45.04.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1168882/8923d2e4-7d83-ea89-f9e5-e84f82b555db.png)
![Screen Shot 2022-11-23 at 12.46.11.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1168882/522cab02-47aa-f22d-f5c5-c9812b1a6251.png)
1. StatusがRunningになればワークスペースにアクセスできます。
![Screen Shot 2022-11-23 at 12.48.22.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1168882/6fb2ffb9-2fce-c1a7-2818-5ecc357285d3.png)

# 動作確認

1. 最初はアカウントオーナーでログインします。
![Screen Shot 2022-11-23 at 12.49.31.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1168882/793c1508-36e8-f970-b0c7-02e77d583a78.png)
1. 規模の小さいクラスターを作成して起動します。
![Screen Shot 2022-11-23 at 12.51.18.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1168882/c102bde1-f057-db54-23ad-a399dd9fbd2d.png)
1. クラスターが起動すれば問題なしです！
![Screen Shot 2022-11-23 at 13.03.21.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1168882/ddb29936-a625-4eb7-a107-7ff041fc3d96.png)


### Databricks 無料トライアル

[Databricks 無料トライアル](https://databricks.com/jp/try-databricks)