【5分で流し読み】Azure Data Factoryのマネージド仮想ネットワーク/マネージドプライベートエンドポイント機能を理解する

おはようございます。

今日は、Azure Data Factoryのマネージド仮想ネットワーク/マネージドプライベートエンドポイント機能について勉強したので、分かったことをまとめておきたいと思います。

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

概要

https://docs.microsoft.com/ja-jp/azure/data-factory/managed-virtual-network-private-endpoint

  • Azure IRをAzure仮想ネットワーク内に展開できる
  • これによってData Factoryが、プライベートエンドポイントで保護されたAzureリソースに仮想ネットワーク経由でアクセスできるようになる
  • この仮想ネットワークはADFがManageするため、ユーザが意識することはない
公式ドキュメントより

統合する仮想ネットワークは画面上などでユーザが指定できるわけではないことから、ADFが内部的に用意した仮想ネットワークに展開されているようなイメージなのかなと思います。

UI上有効化/無効化の選択しかなく、VNETを選択することはできない(”マネージド”仮想ネットワークだからでしょう)

また、構成次第ではAzureリソースだけでなくオンプレミスのデータソースとの接続もできる模様。まだちゃんと読めてないですがリンクだけ貼っておきます。

https://docs.microsoft.com/ja-jp/azure/data-factory/tutorial-managed-virtual-network-on-premise-sql-server

公式ドキュメントより

利用時の注意点

以下のように、セキュリティとパフォーマンスとの間にトレードオフがあるようです。TTLをうまく設定できると問題にならないのかもしれません。

  • 既存のグローバル統合ランタイムを、Data Factory マネージド仮想ネットワーク内の統合ランタイムに切り替えることはできない。また、その逆も同様。
  • 送信方向にはすべてのポートが開かれている。(=パブリックなエンドポイントへの通信も可能ということっぽい?ということで、ADFからパブリックエンドポイントへの通信をさせたくないならSelf-Hosted IRを利用することになりそう)
  • 設計上、マネージド仮想ネットワーク内の統合ランタイムでは、グローバル統合ランタイムよりもキュー時間が長くなる。 Data Factory ごとに 1 つのコンピューティング ノードが予約されていないため、各アクティビティが開始される前にウォームアップが必要となるため。ウォームアップの時間は、統合ランタイム自体というよりは、仮想ネットワークへの参加でかかる。
  • ただし、マネージド仮想ネットワークの構成時にTTLを設定できて、その時間内であればウォームアップ済ノードが利用できるためキュー時間が短縮される。
  • COPYアクティビティではTTLはサポートされていない。

参考:

その他接続先サービス固有の制限もいくつかあるようです。

https://docs.microsoft.com/ja-jp/azure/data-factory/managed-virtual-network-private-endpoint#limitations-and-known-issues

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

概要

  • 再掲の図ですが、以下図の通りマネージド仮想ネットワーク内に接続先データソースのプライベートエンドポイントを配置できるという機能
  • 一般的なプライベートエンドポイントの機能の恩恵として、ADFからの通信をプライベートに行えることに加えて、ADFフルマネージドなのでユーザ側でエンドポイントの管理が不要。
  • マネージド仮想ネットワークを利用する場合、このマネージドプライベートエンドポイントと併用することでプライベート通信を実現できる

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

https://docs.microsoft.com/ja-jp/azure/data-factory/managed-virtual-network-private-endpoint#managed-private-endpoints

利用時の注意点

  • PaaS データ ストア (Azure Blob Storage、Azure Data Lake Storage Gen2、Azure Synapse Analytics など) に対してプライベート エンドポイントが既に作成されており、すべてのネットワークからのアクセスが許可されている場合でも、Data Factory からはマネージド プライベート エンドポイントを使用してアクセスすることしかできない。
  • 2022年6月末時点で、以下リソースで対応している。
    • Azure Functions (Premium プラン)
    • Azure Key Vault
    • Azure Machine Learning
    • Azure Private Link
    • Microsoft Purview

なるほど、ADFマネージド仮想ネットワークはユーザが意識できない場所で作られるので、データソースとのプライベート通信を行うにはマネージドプライベートエンドポイントを使うしか方法はないのですね。(マネージド仮想ネットワークが認識できないので、通常のプライベートエンドポイントをユーザ作業で配置することもできませんからね・・・)

ここに対応していないリソースへのプライベート接続を実現したい場合は、現段階だとSelf-Hosted統合ランタイムを利用することになりそうです。

参考:

https://docs.microsoft.com/ja-jp/azure/data-factory/managed-virtual-network-private-endpoint#managed-private-endpoints

https://docs.microsoft.com/ja-jp/azure/data-factory/managed-virtual-network-private-endpoint#supported-data-sources-and-services

実際につかってみた

今回、これらの機能を実際に使ってみました。以下にちょうどよいチュートリアルがあったので、こちらをなぞってみました。操作感のイメージアップになれば幸いです。

プライベート エンドポイントを使用して Azure Blob Storage から SQL データベースに安全にデータをコピーする

https://docs.microsoft.com/ja-jp/azure/data-factory/tutorial-copy-data-portal-private

事前準備

Azure Blob Storageに適当なファイルを配置し・・・

Azure SQL Databaseにインポート先テーブルを作成しておきます。

Azure Data Factoryマネージド仮想ネットワーク内にAzure統合ランタイムを作成

ここからはADFの設定です。

Data Factory Studioでマネージド仮想ネットワーク内に新しい統合ランタイムを作成します。

Azure統合ランタイムを指定し・・

仮想ネットワーク設定で、「仮想ネットワークの構成」を有効化すればOKです。

作成したら、統合ランタイムの一覧にサブタイプ”マネージド仮想ネットワーク”として追加されていることが確認できます。

パイプラインの作成

Azure Blob Storage -> Azure SQL Databaseにデータをコピーするパイプラインを構成していきます。

Blob Storage上に先ほど配置したファイルをソースとして追加し・・・

ここで、リンクサービスの設定が今回の肝です。

対象Blob Storageを選択し、統合ランタイムを先ほど作成したマネージド仮想ネットワークのものを指定するのに加えて、マネージドプライベートエンドポイントを作成します。

マネージドプライベートエンドポイントの承認は明示的に行う必要があるようなので、Blob Storageのネットワーク>プライベートエンドポイント接続タブから承認します。

また、本当にプライベートアクセスになっているか確かめたい場合は、Storageのネットワーク設定から、パブリックアクセスを無効化しておくと良いでしょう。( or 診断設定を有効化していれば、そのログからアクセス元がプライベートIPになっていることでも確認できそうです)

次にシンクの設定です。

インポート先のSQL Databaseを設定します。

こちらも同様、リンクサービスのランタイムをマネージド仮想ネットワーク経由に変更し、

SQL Databaseに対してマネージドプライベートエンドポイントを作成した後、SQL Database側で承認を行えば準備完了です。(こちらも、検証のためパブリックアクセスを無効化しておくと良いでしょう)

パイプラインの発行とテスト

設定が完了したらデバッグし、問題なければ公開します。

そして、「トリガーの追加」>「今すぐ実行」で実行してみます。

モニタリング画面でみていると、確かに初回はキューにはいってから処理中になるまで1分ほどかかりました。

2回目以降は、TTLの設定が効いているのかキュー待機時間はほぼありませんでした

データは無事登録されています。

以上、Azure Data Factoryのマネージド仮想ネットワーク機能とマネージドプライベートエンドポイント機能への理解を深める、の回でした。勉強になりました。

最後に、参考になった!という場合には以下の「いいね」ボタンをポチって頂けると励みになります!

おしまい

この記事を気に入っていただけたらシェアをお願いします!

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

ABOUT US
Yuu113
初めまして。ゆうたろうと申します。 兵庫県出身、東京でシステムエンジニアをしております。現在は主にデータ分析、機械学習を活用してビジネスモデリングに取り組んでいます。 日々学んだことや経験したことを整理していきたいと思い、ブログを始めました。旅行、カメラ、IT技術、江戸文化が大好きですので、これらについても記事にしていきたいと思っています。