Data FactoryのAzure-SSIS Integration Runtime
Data Factory v2になり、Azure-SSIS Integration Runtime (以降SSIS IR)という機能でSSISパッケージを実行できるようになった。これは既存のSSISパッケージをクラウド上でも使いたいときとか、SSISに慣れていてETLはSSISで実装したいですっていう場合に良い選択肢となる。
BI環境のLift & Shiftに適したサービスで、せっかくDWHをSQL Data WarehouseにしたりSSASをAzure Analysis Servicesにしてモダナイズしても、SSISどうするよってなるが、これをData Factoryに任せられるようになるよっていう感じだ。あとは、もともとSSISの開発に長けている人とか組織の場合、新規パッケージをSSIS IRを使ってホストするのもよさそう。
From: https://docs.microsoft.com/ja-jp/azure/data-factory/concepts-integration-runtime
オンプレや他のVNetに接続するには
BI環境をLift & Shiftしても、もともとのデータソースとしてよくある業務のデータベースはオンプレにおいたままだったりするので、このSSIS IRからアクセスできるようにしないといけない(素直にアクセスさせるか、いろいろ制約が付くか、または完全にNGかは企業のポリシーによるが)。
SSIS IRをVNetやオンプレネットワークに接続できるようにするためには、SSIS IR自体をVNetに配置する必要がある。そのうえでVPNとかExpressRouteとかVNet Peeringとかを使って目的のネットワークと接続する。
https://docs.microsoft.com/ja-jp/azure/data-factory/join-azure-ssis-integration-runtime-virtual-network
パブリックサービスにしか接続しない場合はVNetに配置する必要はない (設定時に配置しないようにもできる)。
接続構成の例と設定時のポイント
以下のようなHub-Spokeトポロジを想定して、SSIS IRをVNetに配置してオンプレのDBをデータソースとしたETL処理を機能させる際のポイントをメモしておく。
- SSIS IRを配置するネットワークにはGatewaySubnetとかSQL Database Managed Instanceとかの排他的なサブネットを選択できない。
- VNetに独自のDNSを使用している場合は注意が必要。Azureのパブリックサービスのホスト名が解決できない状態でデプロイすると不可解なエラーで止まる。この場合はAzureの再帰的リゾルバーのIPアドレス(168.63.129.16)をセカンダリDNSサーバーとして登録する。
- 意外といろいろな通信をする。NSGをかける際は 通信要件 を必ず確認。
- これはSSIS IRの場合に限らないが、VPN Gatewayを擁するHUB-VNETとVNetピアリングで接続した場合、ゲートウェイトランジット/リモートゲートウェイの設定が必要。具体的な方法は ここ を参照。
- SSISのカタログDBをSQL Databaseにホストする場合で、サービスエンドポイントで保護したい場合は、SSISが所属しているVNetとの接続にする。
- 構成が完了し、SSISパッケージをデプロイして実行してうまくDBにつながらない場合に意外と原因を調べにくい。ネットワークの接続性確認のため、一時的にSSIS IRのサブネット内に仮想マシンを構築してpingとかDBアクセスのツール等を使って調べると良い。また、その仮想マシンのNICの effective routes を確認するとそもそも経路あるんたっけ?っていうのがわかりやすい。
- SSISパッケージ内でデータソースの接続先を名前で設定している場合、SSIS IRでの実行時に解決できない場合がある。パッケージ自体を修正するか名前解決できるようにDNSを設定する。