Azure Databricks構成の概要
Azure Databricksは、データ エンジニアリングとデータ サイエンスの最高の機能を組み合わせたクラウドベースのプラットフォームです。 ビッグデータ処理用の高速でスケーラブルなオープンソース フレームワークである Apache Sparkを使用して、データ パイプラインを構築、管理、分析できます。 Azure Databricksは、データ サイエンティストとエンジニアが 機械学習 や人工知能プロジェクトで共同作業するための共同作業スペースも提供します。
政府機関または公共部門の業界で働いている場合、このリファレンス アーキテクチャ ドキュメントは、主権ランディング ゾーンでAzure Databricksを使用するか、 主権ベースライン ポリシー イニシアチブ を適用したAzureランディング ゾーン デプロイメントを使用するための独自のガイダンスを提供します。
Azure Databricks製品ドキュメント には、さまざまな記事に関する詳細な情報が記載されています。 このドキュメントは、Azure Databricks環境 を構成するための主要な概念とオプションに関する厳選された推奨事項を提供することで、ドキュメントを補完します。
Azure Databricksの主な機能
Azure Databricksには豊富な機能が備わっていますが、このリファレンス アーキテクチャではインフラストラクチャ要素に重点を置いています。 Azure Databricksは以下を提供します:
インタラクティブ ノートブック: ノートブックを使用して、Python、Scala、SQL、またはRでコードを記述し、チャートとグラフで結果を視覚化します。 共有 でチーム メンバーとノートブックにコメントし、GitHubなどの一般的なツールと統合します Azure DevOps。
コンピューティング オプション: Azure Databricksは、データ エンジニアリング、データ サイエンス、データ分析のワークロードをサポートするさまざまなコンピューティング オプションを提供します。 これらのオプションには、ノートブックとジョブ用のオンデマンドでスケーラブルなサーバーレス コンピューティング、多目的分析と自動化ジョブ用のプロビジョニングされたコンピューティング、SQLコマンドを実行するためのSQLウェアハウスが含まれます。 インスタンス プールは、アイドル状態ですぐに使用できるインスタンスを提供することで、起動時間と自動スケーリング時間を短縮し、さまざまなデータ処理シナリオ全体で効率を高めます。
データ統合: Azure Blobストレージ、 Azure Data Lake Storage、Azure SQLデータベース、 Azure Synapse Analytics、Azure Cosmos DB など、さまざまなデータ ソースや送信先に簡単に 接続 できます。 ACIDトランザクションとスキーマの適用をサポートする、信頼性が高くパフォーマンスの高いデータ レイク ソリューションであるDelta Lakeを使用します。
機械学習: TensorFlow、PyTorch、Scikit-learn、XGBoostなどの一般的なフレームワークを使用して、機械学習 モデルを構築、トレーニング、デプロイします。 機械学習 ライフサイクルを管理するためのオープンソース プラットフォームであるMLflowを使用して、実験を追跡し、メトリックを記録し、モデルをデプロイします。
エンタープライズ セキュリティ: ロールベースのアクセス制御、暗号化、監査、コンプライアンスなどの機能を使用して、データに安全にアクセスし、処理します。 IDとデータ保護のために、Azure Databricksを Microsoft Entra ID、Azure Key Vault、Azure Privateリンク と統合します。
データガバナンスと共有: Unity Catalogは、外部共有用のDelta Sharingの管理バージョンと、データ レイクハウス 用の統合データガバナンスモデルを提供することで、組織内でのデータ共有を簡素化し、クラウドでの分析を保護します。
高レベルのDatabricksアーキテクチャ
Azure Databricksは、 コントロール プレーン と コンピューティング プレーンから動作します。 リファレンス アーキテクチャでは、これらの各コントロール プレーンの構成オプションが推奨されています。 次の図は、Azure Databricksアーキテクチャ全体を示しています。
コントロールプレーン
コントロール プレーンは、クラスターとジョブのライフサイクル、およびユーザーとデータ アクセスの認証と承認を管理するAzure Databricksの レイヤー です。 コントロール プレーンには、Azure Databricksアカウント内のAzure Databricksによって管理されるバックエンド サービスが含まれます。 Webアプリケーションはコントロール プレーンにあります。
コントロール プレーンは、Azure Databricksが所有するAzureサブスクリプションで実行され、安全なAPIを介してクラシック コンピューティング プレーンおよびサーバーレス コンピューティング プレーンと通信します。 コントロール プレーンは、ユーザーがAzure Databricksと対話するためのWebインターフェイスとREST APIも提供します。
計算プレーン
コンピューティング プレーンは、データが処理される場所です。 コンピューティング プレーンには、サーバーレスとクラシックの2種類があります。 サーバーレス コンピューティング プレーンは即時かつ柔軟なリソースを提供しますが、従来のコンピューティング プレーンは事前にプロビジョニングされたインフラストラクチャに依存します。
サーバーレスコンピューティングプレーン
サーバーレス コンピューティングは、アドホック クエリ、ノートブック、および短期間のワークロードに最適です。 たとえば、サーバーレス コンピューティングを使用して、ノートブックでSQLコマンドを実行したり、軽量ジョブを実行したりできます。 サーバーレス コンピューティング プレーンでは、リソースはAzure Databricksアカウント内のコンピューティング レイヤー で実行されます。
Azure Databricksは、ワークスペースのクラシック コンピューティング プレーンと同じAzureリージョンにサーバーレス コンピューティング プレーンを作成します。 これは、Databricksのアカウントにあるサーバーのプールを操作し、数秒以内にユーザーに割り当てることができるKubernetesコンテナーを実行します。 詳細については、 Databricks Serverless SQLの発表: SQLワークロード向けのインスタント、マネージド、セキュリティ保護された、本番環境対応のプラットフォーム - The Databricks Blog。
ユーザーがレポートやクエリを同時に実行して同時負荷を処理する場合、コンピューティング プラットフォームは、より多くのサーバーを使用してクラスターを迅速に拡張します。 Databricksはサーバーの全体的な構成を管理し、必要に応じてパッチ適用とアップグレードを自動的に実行します。 サーバーレス コンピューティングは、使用量 (クエリ実行またはジョブ実行ごとなど) ごとに課金されます。
各サーバーは安全な構成で実行され、すべての処理は、ランタイムをホストするKubernetesコンテナ、コンテナをホストするVM、ワークスペースの仮想ネットワークという3つの分離レイヤーによって保護されます。 各 レイヤー は1つのワークスペースに分離されており、共有やネットワーク間のトラフィックは許可されません。
コンテナは強化された構成を使用し、VMはシャットダウンされて再利用されず、ネットワーク トラフィックは同じクラスター内のノードに制限されます。 すべてのコンピューティングは一時的であり、そのワークロード専用であり、ワークロードが完了すると安全に消去されます。
ユーザー、コントロール プレーン、コンピューティング プレーン、クラウド サービス間のすべてのトラフィックは、パブリック インターネットではなく、Azureのグローバル ネットワーク経由でルーティングされます。 サーバーレスSQLウェアハウスのサーバーレス コンピューティング プレーンは、顧客が構成可能なバックエンドAzureプライベート リンク 接続を使用しません。 Azure Databricksコントロール プレーンは、コントロール プレーンのIPアドレスに対してのみIPアクセスが許可されたmTLSを使用してサーバーレス コンピューティング プレーンに接続します。
接続されているすべてのストレージは業界標準のAES-256暗号化によって保護されており、ユーザー、コントロール プレーン、コンピューティング プレーン、クラウド サービス間のすべてのトラフィックは少なくともTLS 1.2で暗号化されています。 サーバーレスSQLウェアハウスでは、マネージド ディスクに顧客管理キーは使用されません。
ワークロードには、そのワークロードの範囲外のシステムに対する権限や資格情報は存在せず、データへのアクセスは、有効期間が短い (1時間) トークンを介して行われます。 これらのトークンは、それぞれの特定のワークロードに安全に渡されます。
2024年6月現在、Azure Confidential Computingはサーバーレス コンピューティングではサポートされていませんが、Azureサーバーレス コンピューティングの分離図に示されているように、ワークロードは複数の分離レイヤーによって保護されています。
詳細については、 サーバーレスコンピューティングでワークロードを安全にデプロイ。
クラシックコンピューティングプレーン
クラシック コンピューティング プレーンは、長時間実行されるジョブ、実稼働ワークロード、および一貫したリソースのニーズに適しています。 たとえば、プロビジョニングされたコンピューティングをETLパイプライン、機械学習 トレーニング、データ エンジニアリング タスクに使用できます。
従来のコンピューティング プレーンは、独自のAzureサブスクリプションで実行されるため、自然な分離が実現します。 Azureサブスクリプション内の各ワークスペースの仮想ネットワーク内に、新しいコンピューティング リソースが作成および構成されます。 コンピューティング リソースは、明示的に変更されるまで一定のままであり、インスタンス タイプと期間に基づいて課金されます。 クラスターはマネージド ディスクにカスタマー管理キーを使用でき、スポット インスタンスがサポートされます。
Azure Databricks管理者は、クラスター ポリシーを使用して、使用可能なインスタンスの種類、Databricksのバージョン、インスタンスのサイズなど、クラスターのさまざまな側面を制御できます。
Databricks仮想ネットワーク インジェクションは、Azure Databricksクラシック コンピューティング プレーン リソースを独自の仮想ネットワークにデプロイできる機能です。 この機能により、サービス エンドポイントまたはプライベート エンドポイントを使用して、より安全な方法でDatabricksを他のAzureサービスに 接続Azureできるようになります。 仮想ネットワーク ピアリングを使用して、Azure Databricksワークスペースが実行している仮想ネットワークを別のAzure仮想ネットワークとピアリングすることもできます。