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

適用対象: Azure Data Factory Azure Synapse Analytics

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

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

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

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

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

  • マネージド仮想ネットワークを使用すると、仮想ネットワークを管理する負担を Data Factory にオフロードできます。 統合ランタイムのサブネットは最終的に仮想ネットワークの多くのプライベート IP を使用する可能性があり、事前のネットワーク インフラストラクチャ計画が必要になりますが、このサブネットを作成する必要がありません。
  • データ統合を安全に行うために、Azure ネットワークに関する深い知識は必要ありません。 むしろ、データ エンジニアにとっては、セキュリティで保護された ETL の使用開始がはるかに簡単です。
  • マネージド仮想ネットワークは、マネージド プライベート エンドポイントと共に、データ流出を防止します。

現在、マネージド仮想ネットワークは、Data Factory リージョンと同じリージョン内でのみサポートされます。

注意

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

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

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

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

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

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

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

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

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

Data Factory ではプライベート リンクがサポートされます。 Azure プライベート リンクを使用して、Azure Storage、Azure Cosmos DB、Azure Synapse Analytics などの Azure のサービスとしてのプラットフォーム (PaaS) サービスにアクセスできます。

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

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

注意

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

  1. データ ファクトリでマネージド仮想ネットワークが有効であることを確認します。
  2. 管理ハブで新しいマネージド プライベート エンドポイントを作成します。

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

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

[Azure portal で承認を管理] オプションを示すスクリーンショット。

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

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

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

注意

カスタム 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 時間の間、再び有効な状態で維持されます。

注意

DIU 番号を再構成しても、現在のコピー アクティビティ実行への影響はありません。

注意

マネージド仮想ネットワークの Copy アクティビティでは、2 DIU のデータ統合単位 (DIU) メジャーはサポートされていません。

TTL で選択した DIU は、すべてのコピー アクティビティを実行するために使用されます。実際のニーズに応じて DIU のサイズが自動的にスケーリングされるわけではありません。 そのため、十分な DIU を選択する必要があります。

警告

多数のアクティビティを実行するためにいくつかの DIU を選択すると、キュー内で多くのアクティビティが保留中になり、全体的なパフォーマンスに深刻な影響を与えることになります。

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

コピー アクティビティとは異なり、パイプラインと外部アクティビティには、既定で 60 分の Time to Live (TTL) があります。 実際のニーズに応じて、Azure 統合ランタイム構成の既定の TTL を変更できますが、TTL を無効にすることはサポートされていません。

Note

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

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

さまざまな TTL の比較

次の表に、さまざまな種類の TTL の違いを示します。

特徴量 インタラクティブな作成 コンピューティング スケールのコピー パイプライン & 外部コンピューティング スケール
有効にするタイミング 有効化の直後 最初のアクティビティの実行 最初のアクティビティの実行
無効の可否 Y Y N
予約済みのコンピューティングは構成可能 N Y N

Note

既定の自動解決 Azure 統合ランタイムで TTL を有効にすることはできません。 そのための新しい Azure 統合ランタイムを作成できます。

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 は、プライベート リンク リソースから取得できます。

送信接続

サポートされているデータ ソースとサービス

次のサービスではネイティブ プライベート エンドポイントがサポートされています。 これらは、Data Factory マネージド仮想ネットワークからのプライベート リンクを介して接続できます。

  • Azure Databricks
  • Azure Functions (Premium プラン)
  • Azure Key Vault
  • Azure Machine Learning
  • Azure Private Link
  • Microsoft Purview

データ ソースのサポートについては、コネクタの概要に関するページを参照してください。 パブリック ネットワークを介して、Data Factory でサポートされているすべてのデータ ソースにアクセスできます。

注意

SQL Managed Instance ネイティブ プライベート エンドポイントはプレビュー段階であるため、Private Link と Azure Load Balancer を使用することで、マネージド仮想ネットワークからアクセスできます。 詳細については、プライベート エンドポイントを使用する Data Factory マネージド仮想ネットワークから SQL Managed Instance へのアクセスに関するページを参照してください。

オンプレミス データ ソース

プライベート エンドポイントを使用して、マネージド仮想ネットワークからオンプレミスのデータ ソースにアクセスする方法の詳細については、プライベート エンドポイントを使用する Data Factory マネージド仮想ネットワークからオンプレミスの SQL Server へのアクセスに関するページを参照してください。

Data Factory マネージド仮想ネットワークからのパブリック エンドポイントを介した送信方向の通信

送信方向の通信用には、すべてのポートが開かれています。

制限事項と既知の問題

Key Vault のリンク サービスの作成

Key Vault のリンク サービスを作成する場合、統合ランタイムの参照はありません。 そのため、Key Vault のリンク サービスの作成中にプライベート エンドポイントを作成することはできません。 しかし、Key Vault を参照するデータ ストアに対してリンク サービスを作成し、このリンク サービスにより、マネージド仮想ネットワークが有効になっている統合ランタイムが参照される場合は、作成時に Key Vault のプライベート エンドポイントを作成できます。

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

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

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

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

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

両側が Private Link とプライベート エンドポイントに公開されている場合、それぞれの PaaS リソースにアクセスできません。 この問題は、Private Link とプライベート エンドポイントの既知の制限です。

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

次のステップ

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