Azure Data Factory のマネージド仮想ネットワーク

適用対象: Azure Data Factory Azure Synapse Analytics

ヒント

Data Factory in Microsoft Fabric は、よりシンプルなアーキテクチャ、組み込みの AI、および新機能を備えた次世代のAzure Data Factoryです。 データ統合を初めて使用する場合は、Fabric Data Factory から始めます。 既存の ADF ワークロードをFabricにアップグレードして、データ サイエンス、リアルタイム分析、レポートの新機能にアクセスできます。

この記事では、Azure Data Factoryのマネージド仮想ネットワークとマネージド プライベート エンドポイントについて説明します。

マネージド仮想ネットワーク

Data Factory マネージド仮想ネットワーク内にAzure統合ランタイムを作成すると、統合ランタイムはマネージド仮想ネットワークと共にプロビジョニングされます。 プライベート エンドポイントを使用して、サポートされているデータ ストアに安全に接続されます。

マネージド仮想ネットワーク内に統合ランタイムを作成することで、データ統合プロセスの分離と安全が確保されます。

マネージド仮想ネットワークを使用する利点は次のとおりです。

  • マネージド仮想ネットワークを使用すると、仮想ネットワークを管理する負担を Data Factory にオフロードできます。 統合ランタイムのサブネットは最終的に仮想ネットワークの多くのプライベート IP を使用する可能性があり、事前のネットワーク インフラストラクチャ計画が必要になりますが、このサブネットを作成する必要がありません。
  • データ統合を安全に行うのに、深いAzureネットワーク知識は必要ありません。 代わりに、安全な抽出・変換・ロード(ETL)の導入はデータエンジニアにとってはるかに簡単です。
  • マネージド仮想ネットワークは、マネージド プライベート エンドポイントと共に、データ流出を防止します。

データファクトリーは、データファクトリーと同じ地域でのみ管理された仮想ネットワークをサポートします。

Note

既存のグローバル統合ランタイムを、Data Factory マネージド仮想ネットワーク内の統合ランタイムに切り替えることはできません。また、その逆も同様です。

Data Factory で管理される仮想ネットワーク アーキテクチャを示す図。

データ ファクトリでマネージド仮想ネットワークを有効にするには、次の 2 つの方法があります。

  1. データ ファクトリの作成中にマネージド仮想ネットワークを有効にします。

データ ファクトリの作成中にマネージド仮想ネットワークを有効にするスクリーンショット。

  1. 統合ランタイム中にマネージド仮想ネットワークを有効にします。

統合ランタイムでマネージド仮想ネットワークを有効にするスクリーンショットです。

マネージド プライベート エンドポイント

マネージドプライベートエンドポイントとは、Data Factory管理の仮想ネットワーク内で作成し、Azureリソースへのプライベートリンクを確立するプライベートエンドポイントのことです。 Data Factoryはこれらのプライベートエンドポイントを管理してくれます。

Data Factory ではプライベート リンクがサポートされます。 Azure Private Linkを使って、Azure Storage、Azure Cosmos DB、Azure Synapse AnalyticsなどのAzure platform as a service(PaaS)サービスにアクセスできます。

プライベート リンクを使用すると、データ ストアとマネージド仮想ネットワーク間のトラフィックは、Microsoftバックボーン ネットワーク経由で完全に通過します。 プライベート リンクによって、データ流出のリスクから身を守ることができます。 リソースへのプライベート リンクは、プライベート エンドポイントを作成することによって確立します。

プライベートエンドポイントは管理された仮想ネットワーク内のプライベートIPアドレスを使ってサービスをそこに持ち込みます。 プライベート エンドポイントは、サービス全体ではなく、Azure内の特定のリソースにマップされます。 組織が承認した特定のリソースに接続を制限することができます。 詳細については、プライベート リンクとプライベート エンドポイントに関するページを参照してください。

Note

リソースプロバイダー Microsoft.Network はサブスクリプションに登録する必要があります。

  1. データ ファクトリでマネージド仮想ネットワークが有効であることを確認します。

  2. Manage Hubで新しいマネージドプライベートエンドポイントを作成します。

    新しいマネージド プライベート エンドポイントを示すスクリーンショット。

  3. Data Factoryでマネージドプライベートエンドポイントを作成する場合、保留中のプライベートエンドポイント接続を作成します。 この状態が承認ワークフローを開始します。 プライベート リンク リソースの所有者が接続の承認または拒否を担当します。

    Azure ポータルで承認を管理するオプションを示すスクリーンショット

  4. 所有者が接続を承認した場合、プライベート リンクが確立されます。 そうでなければ、プライベートリンクは確立されません。 どちらの場合も、マネージド プライベート エンドポイントは接続の状態で更新されます。

    マネージド プライベート エンドポイントの承認を示すスクリーンショット。

承認済み状態のマネージド プライベート エンドポイントのみが、特定のプライベート リンク リソースにトラフィックを送信できます。

Note

マネージドバーチャルネットワークではカスタムDNSはサポートされていません。

Note

マネージド仮想ネットワークとマネージド プライベート エンドポイントの両方が、サブスクリプションMicrosoft下にあります。

インタラクティブなオーサリング

インタラクティブオーサリング機能は、テスト接続、フォルダリストやテーブルリストの閲覧、スキーマ取得、プレビューデータなどの機能をサポートします。 Azure Data Factory管理の仮想ネットワークでAzure統合ランタイムを作成または編集する際に、インタラクティブオーサリングを有効にすることができます。 バックエンドサービスはインタラクティブなオーサリング機能のために計算を事前割り当てします。 そうでなければ、インタラクティブ操作を行うたびに計算が割り当てられ、その場合はより多くの時間がかかります。 インタラクティブオーサリングのタイム・トゥ・ライブ(TTL)はデフォルトで60分であり、これは最後のインタラクティブオーサリング操作から60分後に自動的に無効化されることを意味します。 TTLの値は必要に応じて変更できます。

インタラクティブな作成を示すスクリーンショット。

Time to Live

Copy アクティビティ

デフォルトでは、コピー活動ごとにコピーアクティビティの設定に基づいて新しい計算が起動します。 マネージド仮想ネットワークが有効になると、コールドコンピュートの起動時間は数分かかり、データ移動は完了するまで開始できません。 パイプラインに複数の逐次コピー活動が含まれている場合や、foreachループに多数のコピー活動がありそれらを並列に実行できない場合、Azure統合ランタイム設定でタイム・トゥ・ライブ(TTL)値を有効にできます。 コピー活動に必要なTTL値とデータ統合ユニット(DIU)番号を指定することで、実行完了後も一定時間対応する計算が存続します。 TTL時間中に新しいコピー活動が始まると、既存の計算を再利用し、起動時間が大幅に短縮されます。 2回目のコピー活動が完了すると、計算はTTL時間の間再び生き続けます。 小から中、大まで、あらかじめ定義された計算サイズから選択できます。 あるいは、ご自身の要件やリアルタイムのニーズに応じて計算サイズをカスタマイズすることも可能です。

Note

DIU番号を再設定しても、現在のコピー活動の実行には影響しません。

Note

マネージド仮想ネットワークにおけるCopy アクティビティでは、2 DIUのDIU指標はサポートされていません。

Data FactoryはTTLで選択したDIUを使ってすべてのコピー活動を実行します。 DIUのサイズは実際のニーズに応じて自動スケールされないため、十分なDIUを選ぶ必要があります。

警告

多くの活動を実行するために選択するDIUが少なすぎると、多くの活動がキューに保留状態になり、全体のパフォーマンスに深刻な影響を与えます。

パイプラインと外部アクティビティ

コピーと同様に、計算サイズやTTLの持続時間を自分の要件に合わせて調整できます。 ただし、コピーとは違い、パイプラインや外部TTLは無効化できません。

Note

Time to Live (TTL) は、マネージド仮想ネットワークにのみ適用されます。

TTL 構成を示すスクリーンショット。

以下の表を参考にして、パイプラインと外部活動の両方を実行できる最適なノード数を決定してください。

アクティビティの種類 容量
パイプライン アクティビティ ノードあたり約 50
SQL AlwaysEncrypted を使う Script アクティビティと Lookup アクティビティは、他のパイプライン アクティビティと比べて多くのリソースを消費する傾向があり、推奨される数はノードあたり約 4 です
外部アクティビティ ノードあたり約 800

さまざまな TTL の比較

以下の表はTTLの種類の違いを示しています。

機能 インタラクティブなオーサリング 計算スケールの複製 パイプラインと外部コンピューティング スケール
有効にするタイミング 有効化の直後 最初のアクティビティの実行 最初のアクティビティの実行
無効にできる Y Y N
予約済みのコンピューティングは構成可能 N Y Y

Note

既定の自動解決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"
        }
    }

Note

他のデータ ソースの 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用のプライベート エンドポイントを作成できます。

  • Test connection: Key Vault のリンクされたサービスに対するこの操作は、URL 形式のみを検証しますが、ネットワーク操作は行いません。
  • プライベート エンドポイントの使用:この列は、Key Vaultのプライベート エンドポイントを作成した場合でも常に空白として表示されます。

Azure HDInsightのリンクされたサービスの作成

プライベート リンク サービスおよびロード バランサーとポート転送を使用して HDInsight 用のプライベート エンドポイントを作成した場合でも、[プライベート エンドポイントの使用] 列は常に空白として表示されます。

Key Vault のプライベート エンドポイントを示すスクリーンショット。

Azure HDInsightの完全限定ドメイン名(FQDN)

カスタムプライベートリンクサービスを作成した場合、プライベートエンドポイントを作成する際にドメイン名にリードリンクが入らないFQDNは azurehdinsight.net で終わるはずです。 ドメイン名にprivatelinkを使う場合は、有効かどうか確認し、解決できることを確認してください。

プライベート エンドポイントを使用したマネージド仮想ネットワークのアクセス制約

両側がプライベートリンクとプライベートエンドポイントに曝露していると、各PaaSリソースにアクセスできなくなります。 この問題はプライベートリンクおよびプライベートエンドポイントの既知の制限です。

たとえば、ストレージ アカウント A のマネージド プライベート エンドポイントがあるとします。また、同じマネージド仮想ネットワーク内のパブリック ネットワークを介してストレージ アカウント B にアクセスすることもできます。 ただし、ストレージ アカウント B に他のマネージド仮想ネットワークまたはお客様の仮想ネットワークからのプライベート エンドポイント接続がある場合、パブリック ネットワーク経由でマネージド仮想ネットワーク内のストレージ アカウント B にアクセスすることはできません。

次のチュートリアルを参照してください。