はじめに
このドキュメントはアカウントコンソールを用いたDatabricks on AWSのアカウントのセットアップ、ワークスペースのデプロイの手順において、作業内容の理解を深めるために弊社で実施した作業のログを追記及び、オンラインドキュメントの一部を使用して補足説明したものです。仕様変更等により内容は予告なく変更される場合があります。
Databricksフリートライアルのサインアップ
Databricksのフリートライアルを開始するには、Databricks 無料トライアルをクリックします。
必要事項を入力後、”GET STARTED FOR FREE”を押下すると、無料トライアルのプラットフォームの選択ページが表示されます。
入力したE-MailアドレスにトライアルのためのWelcomeメールが送信されます。
メールボックスを確認し以下のような内容のメールが受信したことを確認してください。
注意:メールが届いていない場合には、迷惑メールに分類されていないかご確認ください。
サインアップの確認とサブスクリションプランの選択
アカウントをサインアップした後、Databricksから受け取るWelcomeメールを開き、メールアドレスを検証するためのリンク(Verify your email address)をクリックし、パスワードを設定します。
新たに表示されるページでDatabricksアカウントのパスワードを設定してください。
Set Passwordをクリックすると、サブスクリプションプランを選択するページに遷移します。お客様の要件に応じて適切なサブスクリプションプランを選択してください。サブスクリプションプランと価格に関しては、Databricks on AWS プランと料金を参照ください。
Continueをクリックし、Workspacesページを開きます。
Continueを押下するとワークスペースのセットアップページに遷移します。
ワークスペースのセットアップ
Databricksにサインアップしたユーザーはアカウントオーナー(英語)となり、アカウントオーナーだけが初期セットアップを実行することができます。しかし、他のユーザーを管理者に任命することで、後続の管理者作業を移譲することができます。
Databricksアカウントにサインアップした後は、あなたのチームメンバーがDatabricksの全てのアセットにアクセスするために、最低1つのワークスペースをセットアップします。
注意 以降の説明においては、DatabricksのアカウントコンソールとAWSユーザーインタフェースを用いて、Databricksアカウントをセットアップし、手動でワークスペースを作成する手順を説明します。別の方法として、CloudFormationのテンプレートを活用して、より容易にワークスペースを構築できるDatabricks on AWS Quickstartsを用いることもできます。このAWS Quickstartsは、ITインフラのアーキテクト、管理者、DevOps専門家をターゲットとしたものです。
注意 このドキュメントで実施しているDatabricks管理のデフォルト設定でワークスペースをセットアップする場合、以下のリソースが新規に作成されます。
AWS自体の制限値に抵触しないか事前に確認し、必要に応じて調整ください。(Elastics IPなど最大デフォルト値:5など)
訳者注
2022/1/7時点では、初回Databricksアカウントコンソールにログインした際は、Databricksアカウントのセットアップとワークスペースの作成で説明されているクイックスタートによる構築がデフォルトとなっています。顧客管理VPCを用いたデプロイを行う場合には、一旦以下の方法で本手法をスキップしてから、本書で説明されているデプロイ手順を踏んでください。
- AWSアカウントコンソールからログアウトしておきます。
- Databricksアカウントコンソールにログインし、2つのメッセージ画面を経た後で、Workspace Nameに適当な名前を入力し、一旦Start quickstartをクリックします。上でログアウトしておかないとCloud Formationのスタックを作成してしまうので注意してください。
- AWSアカウントコンソールが別タブで開きますがこちらは閉じます。
- アカウントコンソールに戻るとワークスペース一覧が表示されます。
- こちらでCreate workspace > Custom AWS configurationを選択してください。
Create workspaceをクリックしてセットアップを開始
ワークスペースは、あなたのチームメンバーがDatabricksの全てのアセットにアクセスするための環境となります。
Create Workspaceをクリックし、Custom AWS configurationを選択します。その後、ワークスペース名、リージョン、サブスクリプションプランを設定します。
- Workspace name: 人の目で見て理解できる名称をつけます。例えば、“Acme data science workspace”などです。
- Subscription plan: サブスクリプションページで選択したプランです。
- Region: Databricksワークスペースのリソースを格納するAWSリージョンです。
認証設定の作成 - External ID(Databricksアカウント)の取得
認証設定(credential configuration)では、DatabricksがあなたのAWSアカウントでクラスターを起動するのに必要なアクセス権をもつクロスアカウントIAMロールを作成し、それらの情報を入力します。
IAMロールと認証情報を作成するにはCredential configurationで、Add a new credentialを選択します。
ポップアップされるAdd Credential Configurationダイアログで、External IDをコピーしておきます。次のステップでIAMロールを作成する際に必要になります。
例:以下の例では37e9ffbe-236e-4e80-ad42-24b017419657
がExternal IDとなります。
認証設定の作成 - IAMロールを作成
AWS マネジメントコンソールへ移動し、ご利用中のAWSアカウントへログインします。このAWSアカウントにDatabricksワークスペースが連携されます。
次にAWSアカウントコンソールを使用して、Create a cross-account IAM role(英語)の手順に沿ってIAMロールを作成します。
注意 これらの手順においては、デフォルトのDatabricks管理のVPCか顧客管理VPCを使うかに応じて、ロールのポリシーに3つの選択肢が存在します。Standardプランを含む、典型的なパターンではDatabricks管理のVPCを使用します。Premium、Enterpriseサブスクリプションの場合は、ワークスペースを作成する際にVPCのタイプを選択することができます。なお、Databricks管理VPCから顧客管理VPCにワークスペースを移行することはできません。
IAMロールの作成
信頼されたエンティティとして別のAWSアカウントを選択し、アカウントIDにDatabricks固有のID414351767826
を入れます。外部IDにはAdd Credential ConfigurationダイアログでコピーしたExternal IDを外部IDとして入力します。
ロールができたことを確認します。
認証設定の作成 - 作成したIAMロールにインラインポリシーの追加
作成したロールをクリックし、右下の**+インラインポリシーの追加**をクリックします。
ポリシーのJSONタグをクリックし、Create a cross-account IAM role(英語)にある下記の適切な**ポリシー(JSON)**を選択して貼り付けます。
デプロイ | ポリシー |
---|---|
デフォルトのポリシー制限がある顧客管理のVPC:独自のVPCでDatabricksワークスペースを起動します。 | [Your VPC, default] |
カスタムポリシー制限付きの顧客管理VPC:アカウントID、VPC ID、リージョン、およびセキュリティグループによるポリシー制限付きの独自のVPCでDatabricksワークスペースを起動します。 | [Your VPC, custom] |
Databricksが管理するVPC:Databricksが管理するVPCでDatabricksワークスペースを起動します。 | [Databricks VPC] |
注意 注:このポリシーはDatabricksオフィシャルドキュメントからも参照頂けます。このドキュメントで使用するのは”Databricks VPC”で表示されるポリシーです
ポリシーJSON (以下は”Databricks VPC”のポリシー)
顧客管理VPCを使用する場合は、Your VPC, defaultもしくはYour VPC, customのポリシーを選択し、構築する環境に応じて修正が必要となります。
{
"Version": "2012-10-17",
"Statement": [{
"Sid": "Stmt1403287045000",
"Effect": "Allow",
"Action": [
"ec2:AllocateAddress",
"ec2:AssociateDhcpOptions",
"ec2:AssociateIamInstanceProfile",
"ec2:AssociateRouteTable",
"ec2:AttachInternetGateway",
"ec2:AttachVolume",
"ec2:AuthorizeSecurityGroupEgress",
"ec2:AuthorizeSecurityGroupIngress",
"ec2:CancelSpotInstanceRequests",
"ec2:CreateDhcpOptions",
"ec2:CreateInternetGateway",
"ec2:CreateKeyPair",
"ec2:CreateNatGateway",
"ec2:CreatePlacementGroup",
"ec2:CreateRoute",
"ec2:CreateRouteTable",
"ec2:CreateSecurityGroup",
"ec2:CreateSubnet",
"ec2:CreateTags",
"ec2:CreateVolume",
"ec2:CreateVpc",
"ec2:CreateVpcEndpoint",
"ec2:DeleteDhcpOptions",
"ec2:DeleteInternetGateway",
"ec2:DeleteKeyPair",
"ec2:DeleteNatGateway",
"ec2:DeletePlacementGroup",
"ec2:DeleteRoute",
"ec2:DeleteRouteTable",
"ec2:DeleteSecurityGroup",
"ec2:DeleteSubnet",
"ec2:DeleteTags",
"ec2:DeleteVolume",
"ec2:DeleteVpc",
"ec2:DeleteVpcEndpoints",
"ec2:DescribeAvailabilityZones",
"ec2:DescribeIamInstanceProfileAssociations",
"ec2:DescribeInstanceStatus",
"ec2:DescribeInstances",
"ec2:DescribeInternetGateways",
"ec2:DescribeNatGateways",
"ec2:DescribePlacementGroups",
"ec2:DescribePrefixLists",
"ec2:DescribeReservedInstancesOfferings",
"ec2:DescribeRouteTables",
"ec2:DescribeSecurityGroups",
"ec2:DescribeSpotInstanceRequests",
"ec2:DescribeSpotPriceHistory",
"ec2:DescribeSubnets",
"ec2:DescribeVolumes",
"ec2:DescribeVpcs",
"ec2:DetachInternetGateway",
"ec2:DisassociateIamInstanceProfile",
"ec2:DisassociateRouteTable",
"ec2:ModifyVpcAttribute",
"ec2:ReleaseAddress",
"ec2:ReplaceIamInstanceProfileAssociation",
"ec2:RequestSpotInstances",
"ec2:RevokeSecurityGroupEgress",
"ec2:RevokeSecurityGroupIngress",
"ec2:RunInstances",
"ec2:TerminateInstances"
],
"Resource": [
"*"
]
},
{
"Effect": "Allow",
"Action": [
"iam:CreateServiceLinkedRole",
"iam:PutRolePolicy"
],
"Resource": "arn:aws:iam::*:role/aws-service-role/spot.amazonaws.com/AWSServiceRoleForEC2Spot",
"Condition": {
"StringLike": {
"iam:AWSServiceName": "spot.amazonaws.com"
}
}
}]
}
IAMロールの作成が終わったら、ロールARNをコピーしておきます。
認証設定の作成 - 作成したロールARNを入力
Add Credential Configurationダイアログに戻って、Credential Configuration Nameに設定名を入力します。あなたの認証設定とチームの他の人が今後作成するものの区別がつくように名前をつけてください。
AWSコンソールから作成したAIMロールのRole ARNフィールドにロールARNを貼り付けます。
Addをクリックします。詳細は、Create a credential configuration(英語)を参照ください。
ストレージ設定の作成
Storage configurationフィールドで、Add a new storage configurationを選択します。
Add Storage Configurationダイアログで、ストレージ設定名を入力します。あなたのストレージ設定とチームの他の人が今後作成するものの区別がつくように名前をつけてください。DatabricksのDBFS(Databricksファイルシステム)ルートに使用するS3バケット名を入力します。あなたのAWSアカウントにおいて、他のバケットと区別がつく名前を指定します。S3バケットを作成する際にはここ指定するものと同じS3バケット名を使う必要があります。
あなたのAWSアカウントでS3バケットを作成する際に使用するバケットポリシーを生成するために、Generate Policyをクリックします。
生成されたバケットポリシーをコピーします。これは、Create the S3 bucket(英語)に従って、あなたのAWSアカウントでバケットを作成する際に使用します。
バケットポリシーをコピーしたら、Addを押下します。(バケットポリシーは https://docs.databricks.com/administration-guide/account-api/aws-storage.html にも記載されています)
注意 この時点ではまだSaveは押下しないでください。AWS側でのS3バケットの作成、ネットワーク設定が完了するまでSaveを押さないでください。
AWSコンソールでDatabricksのDBFSルート用のS3バケットを作成
上で作成したストレージ設定を適用するDBFSルート用のストレージS3バケットを作成します。DBFSルートストレージS3バケットは、クラスターのログ、ノートブックのバージョン、ジョブ結果などを格納するために必要となります。また、テストに必要なデータなどを格納するために使用することもできます。
詳細はManage storage configurations using the account console (E2)を参照ください。
注意 同一アカウントに属する複数のワークスペースでルートS3バケットを共有することができます。ワークスペースごとにバケットを作る必要はありません。複数ワークスペースでバケットを共有した場合、バケット上のデータはワークスペースごとに異なるディレクトリごとに区切られることになります。すでにS3バケットがある場合にはこのステップをスキップできます。
リファレンス
Configure AWS storage (E2 and log delivery only) — Databricks Documentation
推奨事項
Databricksでは、バケットのバージョニングを有効にすることを強く推奨しています。バージョニングは、ファイルが誤って変更または削除された場合に、バケット内のファイルの以前のバージョンを復元することができます。
S3バケットのアクセス許可にDatabricksのバケットポリシーを設定します。
生成されたバケットポリシーを貼り付け、変更を保存を押下します。
ネットワーク設定を作成
顧客管理VPCを使用したセットアップを実施しない場合はこの設定はスキップしてください。
顧客管理VPCの設定例については、Databricksにおける顧客管理VPC(実践編)をご覧ください。
顧客管理のVPC(customer-managed VPC)を使用したセットアップを実施する場合は以下のネットワーク設定を作成します。事前に顧客管理VPCに記載されている要件に合致するVPCを作成しておく必要があります。
Advanced settings > Network configurationで、Add a new network configurationを選択します。
Add Network Configurationダイアログで、ネットワーク設定名を指定します。あなたのネットワーク設定とチームの他の人が今後作成するものの区別がつくように名前をつけてください。
顧客管理VPCで使用するVPC ID、サブネットID、セキュリティグループIDを入力します。
Addをクリックします。
Workspaceのプロビジョニング
全ての項目の入力が完了しましたら、Saveを押下してください。
Saveボタンを押下するとワークスペースのプロビジョニングが開始されます。
約10-15分程度でワークスペースのセットアップが完了します。
作成したワークスペースへのリンクをクリックするとワークスペースURL等の情報が表示されます。
ワークスペースの動作確認
ワークスペースURLをクリックすることで、ワークスペースに移動することができます。ワークスペースURLをブックマークしておき、アカウントコンソールにアクセスする際に用いたユーザー名(メールアドレス)とパスワードでログインします。
クラスターが起動できましたら動作確認は完了です。
次のステップ
-
Databricksの使い方を学ぶ
- ユーザー向けDatabricksスタートガイドを試す。
- Getting started with Databricks | Databricks on AWS(英語)のラーニングパスに沿って学習を進める。
- Databricksワークスペースのコンセプトを学ぶ。
- ワークスペースのWelcomeページにあるquickstart notebookを実行する。
- フリーのトレーニング(英語)を活用する(ご契約いただいたお客様のみ)。
-
ユーザーの追加、セキュリティの設定など管理者のタスクを学ぶ
- アカウント管理作業を移譲するために、管理者ユーザーを追加できます。Delegate account administration | Databricks on AWS(英語)を参照ください。
- ワークスペースへのユーザー追加、セキュリティのセットアップ、ログの設定などワークスペースの設定に関しては、管理者向けDatabricksスタートガイドを参照ください。
- Administration guide(英語)では、管理者の全てのタスクが網羅されています。
-
請求情報の追加
14日間のフリートライアルを申し込んでいる場合、請求情報を追加することでトライアル終了後もDatabricksアカウントをご利用いただけます。- アカウントオーナーとしてアカウントコンソールにログインします。
- サイドバーのSettingsアイコンをクリックし、Subscription & Billingタブをクリックします。
- Add billing informationボタンをクリックします。
- Billingページで請求情報を入力しSaveをクリックします。
キャンセルするまでは月ごとに請求が発生します。クレジットカードの月額課金から請求書、コミットベースの請求に変更するには、Databricks担当にお問い合わせください。
-
アカウント管理詳細
Databricksのサブスクリプション、アカウント情報の更新などに関する詳細は、Manage your Databricks account (E2)(英語)を参照ください。