CloudFormationでDatabricks環境を作る

# Databricks環境をCloudFormationを使って構築する

## はじめに
GUIでポチポチつくるのがとてもめんどいので、今回はCloudformationを使って構築します。
Templateはすでに公開されているのものがあるので、サクッと作りたいと思います。

手動でやる場合の手順はここにありました。

※Databricksのアカウントコンソールはすでに作っている前提で話します。


## AWS Quick Start
AWSのQuick startページから、始める感じです。

https://aws.amazon.com/quickstart/architecture/databricks/

How to Deploy tabにある 

[Deploy a Databricks workspace and create a new cross-account IAM role](https://fwd.aws/KypJd "")

をクリックすると、Cloudformationの画面に飛ぶので、そこまで行きます。

## Stackの作成
Create Stackの画面に行くので、そのままNextで進みたいと思います。
templateについては、S3にあるtemplateを自動で設定してくれています。

![Screenshot 2021-12-07 at 20.34.57.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/190656/36993fab-12e2-d1e0-ebce-d55eb456fcd7.jpeg)

## Specify Stack Details
次はdetailの入力です。入力項目が多いので、少しづつ入力していきます。

![Screenshot 2021-12-07 at 20.40.27.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/190656/de619f33-d50d-28eb-c853-fdf74d7d481c.jpeg)

| 項目 | 入力する値 |
|:-:|:-:|
| Databricks account ID | Databricks のAccountコンソールから取得できる IDを入力 (consoleの左端の下にあります）  |
| Workspace account email  |  Databricks Accountコンソールに入る時にのメールアドレス |
| Workspace account password  |  Databricks Accountコンソールに入る時にのパスワード |
| Pricing tier of the workspace | Databricksで利用するTierを選択 |
| Workspace deployment name |  workspaceで使うドメイン名 |
| AWS Region of the Databricks workspace | AWSで展開するregion名 |
| HIPAA tier account | HIPPA対応するかどうか |

![Screenshot 2021-12-07 at 20.50.45.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/190656/e333b69c-405d-fb9c-7a01-aa87736a19ed.jpeg)
 

| 項目 | 入力する値 |
|:-:|:-:|
| IAM role tag | 任意のtag名  |
| Cross-account IAM role name | cross account iamを使って、リソースを作成するので、それのIAM role名 |
| Root S3 bucket name | dbfs root bucketのbucket名 |
| (Optional) Customer managed VPC configuration (requires the premium tier) | Customer Managed VPCを使う場合は入力 (今回はDatabricks側で勝手にVPCを作ってもらうパターンで生成 | 
| Private subnet IDs | Customer Managed VPCを使う場合のみVPC IDを入力 | 
| Security group IDs | Customer Managed VPCを使う場合のみSecurity Group IDを入力 |
| (Optional) Customer managed key configuration for notebooks (requires the enterprise tier) | Customer Managed Keyを使う倍に、arnを入力 (今回は入れない)| 
| Alias for the customer managed AWS KMS key | KMSのalias(今回は入れない) | 
| Use case for which to use the key | KMSの暗号化の範囲設定です(今回は入れない) |
| Encrypt cluster EBS volumes | EBS volkumeの暗号化 (今回は入れない) |

![Screenshot 2021-12-07 at 21.11.59.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/190656/cc4105dc-4814-ec42-c13a-f3ba0f7b2aff.jpeg)

|:-:|:-:|
| Quick Start S3 bucket name | CFのassetを入れるbucket名です  |
| Cross-account IAM role name | cross account iamを使って、リソースを作成するので、それのIAM role名 |
| Quick Start S3 key prefix | Quick Start S3 key prefixのvalueです |

これらを入力したらNextです。

![Screenshot 2021-12-07 at 21.14.52.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/190656/be7d84dc-106e-0c60-e8b4-c66c5a128113.jpeg)

ここは特に設定せず、あとはnextしてCreateするだけです。

Createしたら、Workspaceが作成されているので、あとはログインしてDatabricks使うだけです。
簡単ですよね。

## Memo
上記のtemplateはinstance profileを生成しないので、instance profileを使ってデータソースのコントロールをしたい場合は手動で設定する必要があります。

https://docs.databricks.com/administration-guide/cloud-configurations/aws/instance-profiles.html#step-5-add-the-instance-profile-to-databricks