Databricksの顧客管理VPCを作成してみた(Back-end Private Linkの場合)

## 前提
・利用環境：Databricks、AWS

https://www.databricks.com/jp/try-databricks?scid=7018Y000001Fi15QAC&utm_medium=paid+search&utm_source=google&utm_campaign=17377047998&utm_adgroup=138148229998&utm_content=trial&utm_offer=try-databricks&utm_ad=732035937815&utm_term=databricks%20%E3%83%88%E3%83%A9%E3%82%A4%E3%82%A2%E3%83%AB&gad_source=1&gclid=CjwKCAiA8Lu9BhA8EiwAag16b8b3zbkIb3V7gp-8VUwKukXnhtVZRQ-1RY8SbETmGVgNT4bQramYmRoCX5wQAvD_BwE#account

https://aws.amazon.com/jp/free/?gclid=CjwKCAiA8Lu9BhA8EiwAag16bz9ymovIOJzlwFFMfg75NQxxY8FJPB4Hslg7RheD7ipZ5gbvOWCd1RoCyP0QAvD_BwE&trk=8a8e7906-914d-4577-93a2-d09e75ae5941&sc_channel=ps&ef_id=CjwKCAiA8Lu9BhA8EiwAag16bz9ymovIOJzlwFFMfg75NQxxY8FJPB4Hslg7RheD7ipZ5gbvOWCd1RoCyP0QAvD_BwE:G:s&s_kwcid=AL!4422!3!487544183224!e!!g!!aws%20%E7%84%A1%E6%96%99%E5%88%A9%E7%94%A8%E6%9E%A0!11772965715!117413644991&all-free-tier.sort-by=item.additionalFields.SortRank&all-free-tier.sort-order=asc&awsf.Free%20Tier%20Types=*all&awsf.Free%20Tier%20Categories=*all

## 参考
https://docs.databricks.com/ja/security/network/classic/customer-managed-vpc.html

https://docs.databricks.com/ja/security/network/classic/privatelink.html

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

## 手順
#### ①AWSからVPCを作成
##### 1)AWSで、リージョンを選択
##### 2)検索からVPCを検索し、「VPC」を選択
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/562390/3eb7a786-2ccc-438a-ab31-07f6198f8539.png)
##### 3)VPC作成をクリック
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/562390/cb2ac8f4-8a48-4faf-a8e5-688af0b466a9.png)
##### 4)以下の内容を参考にVPCを作成
- 例：
    - 作成するリソース：VPCのみ
    - 名前：ho-db-vpc
    - IPv4 CIDR：10.98.0.0/16
    - IPv6 CIDRブロック：IPv6 CIDR プロックなし
    - テナンシー：デフォルト
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/562390/ed84ad2d-1d32-4974-b09b-70844a5918b6.png)
##### 5)「アクション」→「VPCの設定を編集」をクリック
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/562390/93f8e41e-0aa2-4558-bd87-6168084d06ae.png)
##### 6)「DNSホスト名を有効化」をチェックし、保存
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/562390/1b6909da-9a36-4293-aa37-3539d00329ad.png)
#### ②サブネットを作成
##### 1)ナビゲーションの「サブネット」→「サブネットを作成」をクリック
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/562390/45927f75-09cf-4796-a26f-ede500866d45.png)
##### 2)下記を参考に3つのサブネットを作成
- サブネット1：
    - VPC ID：手順1で作成したVPCを選択
    - サブネット名：ho-db-subnet1
    - アベイラビリティーゾーン：ap-northeast-1a
    - IPv4 CIDR ブロック：10.98.0.0/24
- サブネット2：
    - サブネット名：ho-db-subnet2
    - アベイラビリティーゾーン：ap-northeast-1c
    - IPv4 CIDR ブロック：10.98.1.0/24
- サブネット3：
    - サブネット名：ho-db-vpce
    - アベイラビリティーゾーン：ap-northeast-1a
    - IPv4 CIDR ブロック：10.98.99.0/24
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/562390/5075217f-7098-4bbf-aa37-50f61945775c.png)
#### ③セキュリティグループの作成
##### 1)「セキュリティグループ」→「セキュリティグループを作成」をクリック
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/562390/550797cb-bada-4357-9372-ceecf7427b78.png)
##### 2)下記を参考にセキュリティグループ①を作成
- 例：
    - 名前：ho-db-sg
    - 説明：ho-db-sg
    - VPC：ho-db-vpc
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/562390/d754b543-72ed-4570-8814-41a507c7a70e.png)
##### 3)下記を参考にセキュリティグループ①にアウトバウンドルールとインバウンドルールを設定
https://docs.databricks.com/ja/security/network/classic/customer-managed-vpc.html#security-groups

- アウトバウンドルール：
    - すべてのTCP：ho-db-sg
    - すべてのUDP：ho-db-sg
    - 443：0.0.0.0/0
    - 3306：0.0.0.0/0
    - 6666：0.0.0.0/0
    - 8443-8451：0.0.0.0/0
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/562390/cd22a7a1-c359-46a7-a1ae-eb31db8cec3f.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/562390/c80723bd-841d-4a0b-9bc0-e0132bb88d58.png)
- インバウンドルール：
    - すべてのTCP：ho-db-sg
    - すべてのUDP：ho-db-sg
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/562390/1156996e-e0e0-436a-8d0c-025ad0966612.png)
##### 4)下記を参考にセキュリティグループ②を作成
- 例：
    - 名前：ho-vpce-sg
    - 説明：ho-vpce-sg
    - VPC：ho-db-vpc
    - アウトバウンドルール：
        - 443：10.98.0.0/16(VPCのCIDR)
        - 6666：10.98.0.0/16(VPCのCIDR)
    - インバウンドルール：
        - 443：10.98.0.0/16(VPCのCIDR)
        - 6666：10.98.0.0/16(VPCのCIDR)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/562390/ef8bdd78-4375-45d8-befe-5f5fc1d9a62a.png)
#### ④ルートテーブルを作成
##### 1)「ルートテーブル」→「ルートテーブルを作成」をクリック（VPC Endpoint用）
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/562390/c7756887-1f10-4060-aac6-e9b5dac5c22b.png)
##### 2)下記を参考にルートテーブルを作成（VPC Endpoint用）
- 例：
    - 名前：ho-vpce-rt
    - VPC：ho-db-vpc
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/562390/90e5d312-2757-43e9-b34b-b25aac947b19.png)
##### 3)手順②で作成したVPC Endpoint用のサブネットをチェックし、「関連付けを保存」をクリック
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/562390/66554a89-7edf-473f-a31d-9bf8ad373d6c.png)
#### ⑤VPC Endpointを作成
##### 1)「エンドポイント」→「エンドポイントを作成」をクリック
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/562390/5b4075d9-00d4-4f4a-90cb-d0b6ae943304.png)
##### 2)下記を参考にRest API用のエンドポイントを作成
参考ヘルプ

https://docs.databricks.com/ja/resources/supported-regions.html#privatelink

https://docs.databricks.com/ja/resources/ip-domain-region.html#privatelink

- 例
    - 名前：ho-vpce-restapi
    - タイプ：NLBとGWLBを使用するエンドポイントサービス
    - サービス名：com.amazonaws.vpce.ap-northeast-1.vpce-svc-02691fd610d24fd64
        - 「サービスの検証」をクリックし、サービス名を検証
    - VPC：ho-db-vpc
    - ☑︎DNS名を有効化
    - サブネット：手順②で作成したVPC Endpoint用のサブネットをチェック
    - セキュリティグループ：手順③で作成したセキュリティグループをチェック
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/562390/6707cb35-259c-4566-977f-3da5e6ca6b28.png)
##### 3)「エンドポイントを作成」をクリック
##### 4)「エンドポイント」→「エンドポイントを作成」をクリック
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/562390/5b4075d9-00d4-4f4a-90cb-d0b6ae943304.png)
##### 5)下記を参考にRelay用のエンドポイントを作成
- 例
    - 名前：ho-vpce-relay
    - タイプ：NLBとGWLBを使用するエンドポイントサービス
    - サービス名：com.amazonaws.vpce.ap-northeast-1.vpce-svc-02aa633bda3edbec0
        - 「サービスの検証」をクリックし、サービス名を検証
    - VPC：ho-db-vpc
    - ☑︎DNS名を有効化
    - サブネット：手順②で作成したVPC Endpoint用のサブネットをチェック
    - セキュリティグループ：手順③で作成したセキュリティグループをチェック
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/562390/6707cb35-259c-4566-977f-3da5e6ca6b28.png)
##### 6)「エンドポイントを作成」をクリック
#### ⑥VPC Endpointを登録
##### 1)アカウント管理者としてDatabricksの管理画面にログイン

https://accounts.cloud.databricks.com

##### 2)「クラウドリソース」→「ネットワーク」→「VPCエンドポイント」→「VPCエンドポイントを登録」をクリック
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/562390/d6201123-379d-46b6-9a1e-8b2c29968e55.png)
##### 3)以下を参考にVPCエンドポイントを登録(Relay用)
- 例
    - VPCエンドポイント名：ho-vpce-relay
    - リージョン：ap-northeast-1
    - AWS VPCエンドポイントID：AWSのRelay用のVPCエンドポイントのEndpoint ID
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/562390/18e5d9e8-3f99-4ea8-b9da-28cd8ea2925b.png)
##### 4)「新しいVPCエンドポイントを登録」をクリック
##### 5)以下を参考VPCエンドポイントを登録(Rest API用)
- 例
    - VPCエンドポイント名：ho-vpce-restapi
    - リージョン：ap-northeast-1
    - AWS VPCエンドポイントID：AWSのRest API用のVPCエンドポイントのEndpoint ID
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/562390/18e5d9e8-3f99-4ea8-b9da-28cd8ea2925b.png)
##### 6)「新しいVPCエンドポイントを登録」をクリック
#### ⑦プライベートアクセスを設定
##### 1)「クラウドリソース」→「ネットワーク」→「プライベートアクセス設定」→「プライベートアクセス設定を追加」をクリック
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/562390/b5e57024-86b0-4c51-836a-793988553530.png)
##### 2)以下を参考にプライベートアクセス設定を追加
- 例
    - プライベートアクセス設定名：ho-pravate-access-conf
    - リージョン：ap-northeast-1
    - パブリックアクセス：True
    - プライベートアクセスレベル：Account
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/562390/3a79388e-b678-4cba-9fff-c44704568431.png)
##### 3)「プライベートアクセス設定を追加」をクリック
#### ⑧ネットワークを設定
##### 1)「ネットワーク設定」→「ネットワーク設定を追加」をクリック
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/562390/6e8ad8a4-ce16-4523-a2d6-be77021dfbf2.png)
##### 2)以下の内容を参考にネットワークを設定
- 例
    - ネットワーク設定名：ho-nw-private-link-conf
    - VPC ID：手順①で作成したVPCのVPC ID
    - サブネットID：手順②で作成したSubnet1,2のサブネットID
    - セキュリティグループID：手順③-1)で作成したセキュリティグループID
    - セキュアなクラスター接続を中継するためのVPCエンドポイント：ho-vpce-relay(relay用のEndpoint)
    - REST API用のVPCエンドポイント：ho-vpce-restapi(Rest API用のEndpoint)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/562390/3d13c238-85e5-4edb-b1f0-9fe5bd3f8fd9.png)
以上