Azure Data Factory のマネージド仮想ネットワーク
適用対象: Azure Data Factory Azure Synapse Analytics
ヒント
企業向けのオールインワン分析ソリューション、Microsoft Fabric の Data Factory をお試しください。 Microsoft Fabric は、データ移動からデータ サイエンス、リアルタイム分析、ビジネス インテリジェンス、レポートまで、あらゆるものをカバーしています。 無料で新しい試用版を開始する方法について説明します。
この記事では、Azure Data Factory におけるマネージド仮想ネットワークとマネージド プライベート エンドポイントについて説明します。
マネージド仮想ネットワーク
Data Factory マネージド仮想ネットワーク内に Azure 統合ランタイムを作成すると、マネージド仮想ネットワークを使用して統合ランタイムがプロビジョニングされます。 プライベート エンドポイントを使用して、サポートされているデータ ストアに安全に接続されます。
マネージド仮想ネットワーク内に統合ランタイムを作成することで、データ統合プロセスの分離と安全が確保されます。
マネージド仮想ネットワークを使用する利点は次のとおりです。
- マネージド仮想ネットワークを使用すると、仮想ネットワークを管理する負担を Data Factory にオフロードできます。 統合ランタイムのサブネットは最終的に仮想ネットワークの多くのプライベート IP を使用する可能性があり、事前のネットワーク インフラストラクチャ計画が必要になりますが、このサブネットを作成する必要がありません。
- データ統合を安全に行うために、Azure ネットワークに関する深い知識は必要ありません。 むしろ、データ エンジニアにとっては、セキュリティで保護された ETL の使用開始がはるかに簡単です。
- マネージド仮想ネットワークは、マネージド プライベート エンドポイントと共に、データ流出を防止します。
現在、マネージド仮想ネットワークは、Data Factory リージョンと同じリージョン内でのみサポートされます。
注意
既存のグローバル統合ランタイムを、Data Factory マネージド仮想ネットワーク内の統合ランタイムに切り替えることはできません。また、その逆も同様です。
データ ファクトリでマネージド仮想ネットワークを有効にするには、次の 2 つの方法があります。
- データ ファクトリの作成中にマネージド仮想ネットワークを有効にします。
- 統合ランタイム中にマネージド仮想ネットワークを有効にします。
マネージド プライベート エンドポイント
マネージド プライベート エンドポイントは、Azure リソースへのプライベート リンクを確立する Data Factory マネージド仮想ネットワークに作成されるプライベート エンドポイントです。 これらのプライベート エンドポイントは、Data Factory によって自動的に管理されます。
Data Factory ではプライベート リンクがサポートされます。 Azure プライベート リンクを使用して、Azure Storage、Azure Cosmos DB、Azure Synapse Analytics などの Azure のサービスとしてのプラットフォーム (PaaS) サービスにアクセスできます。
プライベート リンクを使用すると、データ ストアとマネージド仮想ネットワーク間のトラフィックは、全面的に Microsoft のバックボーンネットワークを介して転送されます。 プライベート リンクによって、データ流出のリスクから身を守ることができます。 リソースへのプライベート リンクは、プライベート エンドポイントを作成することによって確立します。
プライベート エンドポイントでは、マネージド仮想ネットワークでプライベート IP アドレスを使用して、効率的にサービスを取り込みます。 プライベート エンドポイントは、サービス全体にではなく Azure 内の特定のリソースにマップされます。 顧客は、その組織で承認されている特定のリソースに接続を制限することができます。 詳細については、プライベート リンクとプライベート エンドポイントに関するページを参照してください。
注意
リソース プロバイダー Microsoft.Network が、サブスクリプションに登録されている必要があります。
- データ ファクトリでマネージド仮想ネットワークが有効であることを確認します。
- 管理ハブで新しいマネージド プライベート エンドポイントを作成します。
- Data Factory にマネージド プライベート エンドポイントを作成すると、プライベート エンドポイント接続は保留状態で作成されます。 承認ワークフローが開始されます。 プライベート リンク リソースの所有者が接続の承認または拒否を担当します。
- 所有者が接続を承認した場合、プライベート リンクが確立されます。 それ以外の場合、プライベート リンクは確立されません。 どちらの場合も、マネージド プライベート エンドポイントは接続の状態で更新されます。
承認済み状態のマネージド プライベート エンドポイントのみが、特定のプライベート リンク リソースにトラフィックを送信できます。
注意
カスタム DNS は、マネージド仮想ネットワークではサポートされていません。
インタラクティブな作成
インタラクティブな作成機能は、テスト接続、フォルダー一覧とテーブル リストの参照、スキーマの取得、データのプレビューなどの機能に使用されます。 Azure Data Factory で管理されている仮想ネットワーク内の Azure 統合ランタイムを作成または編集する際に、インタラクティブな作成を有効にすることができます。 バックエンド サービスでは、インタラクティブな作成機能のためにコンピューティングが事前に割り当てられます。 そうしないと、インタラクティブな操作が実行されるたびにコンピューティングが割り当てられ、時間がかかります。 既定では、インタラクティブな編集の Time To Live (TTL) は 60 分です。つまり、前回のインタラクティブな編集操作から 60 分が経過すると、この機能が自動的に無効になります。 実際のニーズに応じて TTL 値を変更できます。
Time to Live
コピー アクティビティ
既定では、すべてのコピー アクティビティは、コピー アクティビティの構成に基づいて新しいコンピューティングを起動します。 マネージド仮想ネットワークが有効になっている場合、コールド コンピューティングの起動時間には数分かかり、完了するまでデータ移動を開始できません。 パイプラインに複数のシーケンシャル コピー アクティビティが含まれている場合、または foreach ループに多数のコピー アクティビティがあり、それらすべてを並列で実行できない場合は、Azure 統合ランタイム構成で Time to Live (TTL) 値を有効にすることができます。 コピー アクティビティに必要な Time to Live 値と DIU 番号を指定すると、対応するコンピューティングでは、実行が完了してから一定の期間、有効な状態が維持されます。 TTL 時間内に新しいコピー アクティビティが開始されると、既存のコンピューティングが再利用され、開始時間は大幅に減少します。 2 番目のコピー アクティビティが完了すると、コンピューティングは TTL 時間の間、再び有効な状態で維持されます。 定義済みのコンピューティング サイズ (小規模から中規模から大規模まで) から柔軟に選択できます。 または、特定の要件とリアルタイムのニーズに基づいてコンピューティング サイズをカスタマイズすることもできます。
Note
DIU 番号を再構成しても、現在のコピー アクティビティ実行への影響はありません。
注意
マネージド仮想ネットワークの Copy アクティビティでは、2 DIU のデータ統合単位 (DIU) メジャーはサポートされていません。
TTL で選択した DIU は、すべてのコピー アクティビティを実行するために使用されます。実際のニーズに応じて DIU のサイズが自動的にスケーリングされるわけではありません。 そのため、十分な DIU を選択する必要があります。
警告
多数のアクティビティを実行するためにいくつかの DIU を選択すると、キュー内で多くのアクティビティが保留中になり、全体的なパフォーマンスに深刻な影響を与えることになります。
パイプラインと外部アクティビティ
コピーと同様に、特定の要件に従ってコンピューティング サイズと TTL 期間を調整できます。 ただし、コピーとは異なり、パイプラインと外部 TTL は無効にできないことに注意してください。
Note
Time to Live (TTL) は、マネージド仮想ネットワークにのみ適用されます。
パイプラインと外部アクティビティの両方を実行するための最適なノード数を決定するには、次の表を参考にしてください。
活動の種類 | 容量 |
---|---|
パイプライン アクティビティ | ノードあたり約 50 SQL AlwaysEncrypted を使用したスクリプト アクティビティと検索アクティビティは、他のパイプライン アクティビティと比較して多くのリソースを消費する傾向があり、推奨される数はノードあたり約 10 です |
外部アクティビティ | ノードあたり約 800 |
さまざまな TTL の比較
次の表に、さまざまな種類の TTL の違いを示します。
特徴量 | インタラクティブな作成 | コンピューティング スケールのコピー | パイプラインと外部コンピューティング スケール |
---|---|---|---|
有効にするタイミング | 有効化の直後 | 最初のアクティビティの実行 | 最初のアクティビティの実行 |
無効の可否 | Y | 年 | N |
予約済みのコンピューティングは構成可能 | N | Y | Y |
注意
既定の自動解決 Azure 統合ランタイムで TTL を有効にすることはできません。 そのための新しい Azure 統合ランタイムを作成できます。
Note
コピー/パイプライン/外部コンピューティング スケール TTL がアクティブになると、請求先は予約済みのコンピューティング リソースによって決まります。 その結果、アクティビティの出力に billingReference が含まれません。これは TTL 以外のシナリオにのみ関係するためです。
Azure PowerShell を使用してマネージド仮想ネットワークを作成する
$subscriptionId = ""
$resourceGroupName = ""
$factoryName = ""
$managedPrivateEndpointName = ""
$integrationRuntimeName = ""
$apiVersion = "2018-06-01"
$privateLinkResourceId = ""
$vnetResourceId = "subscriptions/${subscriptionId}/resourceGroups/${resourceGroupName}/providers/Microsoft.DataFactory/factories/${factoryName}/managedVirtualNetworks/default"
$privateEndpointResourceId = "subscriptions/${subscriptionId}/resourceGroups/${resourceGroupName}/providers/Microsoft.DataFactory/factories/${factoryName}/managedVirtualNetworks/default/managedprivateendpoints/${managedPrivateEndpointName}"
$integrationRuntimeResourceId = "subscriptions/${subscriptionId}/resourceGroups/${resourceGroupName}/providers/Microsoft.DataFactory/factories/${factoryName}/integrationRuntimes/${integrationRuntimeName}"
# Create managed Virtual Network resource
New-AzResource -ApiVersion "${apiVersion}" -ResourceId "${vnetResourceId}" -Properties @{}
# Create managed private endpoint resource
New-AzResource -ApiVersion "${apiVersion}" -ResourceId "${privateEndpointResourceId}" -Properties @{
privateLinkResourceId = "${privateLinkResourceId}"
groupId = "blob"
}
# Create integration runtime resource enabled with virtual network
New-AzResource -ApiVersion "${apiVersion}" -ResourceId "${integrationRuntimeResourceId}" -Properties @{
type = "Managed"
typeProperties = @{
computeProperties = @{
location = "AutoResolve"
dataFlowProperties = @{
computeType = "General"
coreCount = 8
timeToLive = 0
}
}
}
managedVirtualNetwork = @{
type = "ManagedVirtualNetworkReference"
referenceName = "default"
}
}
注意
他のデータ ソースの groupId は、プライベート リンク リソースから取得できます。
Note
PowerShell コマンドを使って作成する場合、referenceName は "default" としてのみ設定する必要があります。
送信接続
サポートされているデータ ソースとサービス
次のサービスではネイティブ プライベート エンドポイントがサポートされています。 これらは、Data Factory マネージド仮想ネットワークからのプライベート リンクを介して接続できます。
- Azure Databricks
- Azure Functions (Premium プラン)
- Azure Key Vault
- Azure Machine Learning
- Azure Private Link
- Microsoft Purview
データ ソースのサポートについては、コネクタの概要に関するページを参照してください。 パブリック ネットワークを介して、Data Factory でサポートされているすべてのデータ ソースにアクセスできます。
オンプレミス データ ソース
プライベート エンドポイントを使用して、マネージド仮想ネットワークからオンプレミスのデータ ソースにアクセスする方法の詳細については、プライベート エンドポイントを使用する Data Factory マネージド仮想ネットワークからオンプレミスの SQL Server へのアクセスに関するページを参照してください。
Data Factory マネージド仮想ネットワークからのパブリック エンドポイントを介した送信方向の通信
送信方向の通信用には、すべてのポートが開かれています。
制限事項と既知の問題
Key Vault のリンク サービスの作成
Key Vault のリンク サービスを作成する場合、統合ランタイムの参照はありません。 そのため、Key Vault のリンク サービスの作成中にプライベート エンドポイントを作成することはできません。 しかし、Key Vault を参照するデータ ストアに対してリンク サービスを作成し、このリンク サービスにより、マネージド仮想ネットワークが有効になっている統合ランタイムが参照される場合は、作成時に Key Vault のプライベート エンドポイントを作成できます。
- テスト接続: Key Vault のリンク サービスのこの操作では単に URL 形式が検証され、ネットワーク操作は実行されません。
- プライベート エンド ポイントの使用: この列は、Key Vault 用のプライベート エンドポイントを作成した場合でも、常に空白として表示されます。
Azure HDInsight のリンク サービスの作成
プライベート リンク サービスおよびロード バランサーとポート転送を使用して HDInsight 用のプライベート エンドポイントを作成した場合でも、[プライベート エンドポイントの使用] 列は常に空白として表示されます。
Azure HDInsight の完全修飾ドメイン名 (FQDN)
カスタム プライベート リンク サービスを作成した場合は、プライベート エンドポイントを作成するときに、ドメイン名の先頭に privatelink を付けず、末尾に azurehdinsight.net を付けた FQDN にする必要があります。 ドメイン名で privatelink を使用する場合は、有効であり、解決できることを確認してください。
プライベート エンドポイントを使用したマネージド仮想ネットワークのアクセス制約
両側が Private Link とプライベート エンドポイントに公開されている場合、それぞれの PaaS リソースにアクセスできません。 この問題は、Private Link とプライベート エンドポイントの既知の制限です。
たとえば、ストレージ アカウント A のマネージド プライベート エンドポイントがあるとします。また、同じマネージド仮想ネットワーク内のパブリック ネットワークを介してストレージ アカウント B にアクセスすることもできます。 ただし、ストレージ アカウント B に他のマネージド仮想ネットワークまたはお客様の仮想ネットワークからのプライベート エンドポイント接続がある場合、パブリック ネットワーク経由でマネージド仮想ネットワーク内のストレージ アカウント B にアクセスすることはできません。
関連するコンテンツ
次のチュートリアルを参照してください。