Serverless compute | Databricks on AWS [2022/8/26時点]の翻訳です。
本書は抄訳であり内容の正確性を保証するものではありません。正確な内容に関しては原文を参照ください。
プレビュー
本機能はパブリックプレビューです。
Databricksプラットフォームアーキテクチャのサーバーレスコンピュートバージョンを用いると、計算機レイヤーは、お客様のAWSクラウドアカウントではなくDatabricksのAWSクラウドアカウントに存在することになります。
現状のリリースにおいては、サーバーレスコンピュートはDatabricks SQLでの利用をサポートしています。管理者は、Databricksによって管理される即時利用可能な計算資源を利用するサーバーレスSQLウェアハウス(以前のSQLエンドポイント)を有効化することができます。サーバーレスSQLウェアハウスは、DatabricksのAWSアカウントの計算機クラスターを使用します。従来のお客様がホスティングするSQLウェアハウスと同様にDatabricks SQLのクエリーを処理することができ、従来のお客様がホスティングするSQLエンドポイントは、クラシックSQLウェアハウスと呼称されます。
Databricksでは、SQLエンドポイントからSQLウェアハウスへと名前を変更しました。これは、業界においてエンドポイントは接続するネットワークとコミュニケーションするリモートの計算デバイスやクラウドサービスへのエントリーポイントを意味するためです。データウェアハウスは、容易に洞察を導き出したり、レポートを行うためにビジネスフレンドリーな方法で複数のソースにある現在あるいは過去のデータを格納するデータ管理システムです。SQLウェアハウスは、この計算資源の全ての機能を正確に述べています。
サーバーレスSQLウェアハウスを作成する前に、ワークスペースでサーバーレスDatabricks SQLウェアハウスを有効化する必要があります。ワークスペースでサーバーレスSQLウェアハウスを有効化すると、以下のことを実施できるようになります。
- UIあるいはAPIで新規SQLウェアハウスを作成する際、デフォルトでサーバーレスとなりますが、新規クラシックSQLウェアハウスを作成することも可能です。
- クラシックSQLウェアハウスをサーバーレスSQLウェアハウスに変換したり、サーバーレスをクラシックに変換できます。
- この機能はDatabricks SQLにのみ影響します。Data Science & EngineeringやDatabricks Machine Learningワークスペース環境におけるノートブック、ジョブと連携するDatabricksランタイムクラスターには影響しません。Databricksランタイムクラスターは常にお客様のAWSアカウントのクラシックデータプレーンで動作します。他のDatabricksアーキテクチャに対するサーバレスコンピュートの比較を参照ください。
Databricksでは、サーバレスSQウェアハウスは、AWSのリージョンeu-west-1
、ap-southeast-2
、us-east-1
、us-west-2
でサポートされています。Supported Databricks regionsを参照ください。
他のDatabricksアーキテクチャに対するサーバレスコンピュートの比較
Databricksはコントロールプレーンとデータプレーンで処理を行います。
- コントロールプレーンには、DatabricksのAWSアカウントで管理されるバックエンドサービスが含まれます。Databricks SQLのクエリー、ノートブックのコマンド、その他ワークスペースの設定がコントロールプレーンに暗号化された状態で保持されます。
- データプレーンでは、計算リソースのクラスターで処理されるデータが保持されます。
クラシックデータプレーン(従来のDatabricksプラットフォームアーキテクチャ)とサーバーレスデータプレーンの間には重要な違いが存在します。
- クラシックデータプレーンにおいては、Databricksの計算リソースはお客様のクラウドアカウントで実行されます。クラスターはクエリー(Databricks SQL)やノートブック(Data Science & EngineeringあるいはDatabricks Machine Learning環境)を用いて分散データ分析を実行します。
- 新規クラスターはお客様のクラウドアカウントのワークスペース用仮想ネットワークの中に作成されます。
- クラシックデータプレーンはお客様のクラウドアカウントで処理を行うために、生来の分離性を有しています。クラシックデータプレーンは複数のお客様で共有されません。
- サーバーレスデータプレーンにおいては、Databricksの計算リソースはDatabricksのクラウドアカウント内の特別な計算機レイヤーで実行されます。
- 現時点のリリースにおいては、サーバーレスデータプレーンはサーバーレスSQLウェアハウスでのみ使用されます。この機能の有効化によって、DatabricksランタイムクラスターのData Science & EngineeringあるいはDatabricks Machine Learning環境における挙動は変わりません。
- サーバーレスデータプレーンはDatabricksのクラウドアカウントにおいて、複数のお客様で共有されます。
- サーバーレスデータプレーンのお客様データを保護するために、サーバーレスコンピュートはワークスペースごとのネットワーク境界内で実行され、異なるお客様のDatabricksワークスペースを分離するための様々なセキュリティレイヤーや、同じお客間における複数クラスター間における追加のネットワーク制御を適用します。
Databricksは、サーバーレスデータプレーンをお客様のクラシックデータプレーンと同じAWSリージョンに作成します。お使いのワークスペースのコントロールプレーンのインスタンスは通常同じAWSリージョンに存在しますが、同じリージョンであることが保証される訳ではありません。
以下の図では、サーバーレスデータプレーンとクラシックデータプレーンの重要な違いを示しています。
図で触れられているセキュアクラスター接続の詳細に関しては、Databricksにおけるセキュアクラスター接続を参照ください。
以下の表では、製品セキュリティにフォーカスして、サーバーレスコンピュートと他のDatabricksのバージョンとの違いをまとめています。これらはセキュリティ機能の完全かつ詳細な説明ではありません。サーバーレスコンピュートのセキュリティの詳細や、以下の表に対する質問がある場合には、Databricks担当にお問い合わせください。
項目 | サーバーレスデータプレーン(AWSのみ) | クラシックデータプレーン(AWSおよびAzure) |
---|---|---|
コントロールプレーンのリソースの場所 | Databricksクラウドアカウント | Databricksクラウドアカウント |
データプレーンの計算リソースの場所 | サーバーレスデータプレーン(Databricks AWSアカウントのVPC) | クラシックデータプレーン(お客様のクラウドプロバイダーアカウントのVPC) |
データプレーンの計算リソース | Databricks管理のKubernetes (EKS)クラスター | Databricks管理のスタンドアローンVM |
データプレーンに対するお客様アクセス | Databricksコントロールプレーン経由のアクセス |
AWS: お客様AWSアカウント内での直接アクセス。Databricksコントロールプレーン経由での追加の間接的アクセス。 Azure: VNetインジェクション(顧客管理VNet)の場合でもクラスターに対する読み取り専用の直接アクセス。Databricksコントロールプレーン経由での追加の間接的アクセス |
Databricks SQLにおいて割り当てられていないVMの支払い | Databricks | 適用されません。クラシックSQLエンドポイントにおいては、割り当てられないVMという概念が存在しません。Databricks SQLにおいては、ノートブック、ジョブに対するウォームアップされたインスタンスプールに該当するものは存在しません。 |
エンドポイントの起動後、Databricks SQLのクエリーを実行する際のVMに対する支払い | オートストップがSQLエンドポイントを停止するまでは、DBUに基づくお客様の支払い。 | VMに関してはお客様がAWSに支払い。加えて、DBUに基づくDatabricksへの支払い。 |
データプレーンにおけるバーチャルプライベートネットワーク(VPC) | DatabricksアカウントのVPCはお客様間で共有され、ワークスペース間、クラスター間に追加のネットワーク境界が存在します。 |
AWS: 占有。お客様アカウントのVPCとなります。 Azure: 占有。お客様アカウントのVNetとなります。 |
OSイメージ | Databricksが修正を加えたクラウド管理のAmazon-linux2 | Databricks管理のUbuntuあるいはCentOS |
VPCのデフォルトの外向き通信を管理するテクノロジー | Databricksが作成するAWSインターネットゲートウェイ | デフォルトのインターネットゲートウェイあるいはクラウドから提供されるロードバランサー |
VPC、ファイアウォールのカスタマイズ | いいえ | はい |
CIDRレンジのカスタマイズ | いいえ | はい |
パブリックIP | はい | セキュアクラスター接続
|
Databricksランタイムクラスターにおけるコンテナレベルのネットワーク分離 | Kubernetesのネットワークポリシーを使用 | Databricks管理のiptable ルールを使用 |
DatabricksランタイムクラスターにおけるVMレベルのネットワーク分離 | セキュリティグループによる分離 | セキュリティグループおよびVPC(AWS)あるいはVNet(Azure)による分離 |
VM分離 | クラスターにおけるVMはVM同士の通信は許可されますが、他のクラスターからの内部向け通信は許可されません。 | クラスターにおけるVMはVM同士の通信は許可されますが、他のクラスターからの内部向け通信は許可されません。 |
コントロールプレーンとデータプレーンの通信 | コントロールプレーンから開始された接続を用いて、パブリックIPを用いたDatabricks管理によるTLS暗号化されたコミュニケーション | セキュアクラスター接続
|
初期デプロイメントにおけるクレディンシャル | Databricks内部のIAMロール |
|
通常のデータプレーンのオペレーションにおけるクレディンシャル | Databricksがお客様提供のIAMロールのsts:AssumeRole を呼び出し |
|
DBFSルート、ワークスペースシステムデータに対するストレージの場所 | ワークスペース作成時にお客様が自身のアカウントでS3バケットを作成 |
|