セルフホステッド IR を Azure-SSIS IR のプロキシとして構成する

適用対象: Azure Data Factory Azure Synapse Analytics

ヒント

企業向けのオールインワン分析ソリューション、Microsoft Fabric の Data Factory をお試しください。 Microsoft Fabric は、データ移動からデータ サイエンス、リアルタイム分析、ビジネス インテリジェンス、レポートまで、あらゆるものをカバーしています。 無料で新しい試用版を開始する方法について説明します。

この記事では、セルフホステッド統合ランタイム (セルフホステッド IR) をプロキシとして構成して、Azure-SSIS Integration Runtime (Azure-SSIS IR) で SQL Server Integration Services (SSIS) パッケージを実行する方法について説明します。

この機能を使用すると、Azure-SSIS IR を仮想ネットワークに参加させずに、オンプレミスのデータや実行タスクにアクセスすることができます。 この機能は、企業ネットワークの構成が複雑すぎるかポリシーの制限が厳しすぎて Azure-SSIS IR を導入できない場合に役立ちます。

この機能は、現時点では、SSIS データ フロー タスクと、SQL およびプロセス実行タスクでのみ有効にすることができます。

データ フロー タスクでこの機能を有効にすると、該当する場合は、次の 2 つのステージング タスクに分割されます。

  • オンプレミスのステージング タスク:このタスクでは、セルフホステッド IR 上のオンプレミスのデータ ストアに接続するデータ フロー コンポーネントが実行されます。 これは、データをオンプレミスのデータ ストアから Azure BLOB ストレージのステージング領域に、またはその逆に移動します。
  • クラウド ステージング タスク:このタスクでは、Azure-SSIS IR 上のオンプレミスのデータ ストアに接続しないデータ フロー コンポーネントが実行されます。 これは、データを Azure BLOB ストレージのステージング領域からクラウド データ ストアに、またはその逆に移動します。

データ フロー タスクを使用してオンプレミスからクラウドにデータを移動した場合、最初と 2 番目のステージング タスクは、それぞれオンプレミスとクラウドのステージング タスクになります。 データ フロー タスクを使用してクラウドからオンプレミスにデータを移動した場合、最初と 2 番目のステージング タスクは、それぞれクラウドとオンプレミスのステージング タスクになります。 データ フロー タスクを使用してオンプレミスからオンプレミスにデータを移動した場合、最初と 2 番目のステージング タスクは、両方ともオンプレミスのステージング タスクになります。 データ フロー タスクを使用してクラウドからクラウドにデータを移動した場合、この機能は適用されません。

この機能は、SQL およびプロセス実行タスクで有効になり、セルフホステッド IR で実行されます。

この機能の他の利点や機能としては、まだ Azure-SSIS IR でサポートされていないリージョンでのセルフホステッド IR の設定が可能になったり、データ ソースのファイアウォールでのセルフホステッド IR のパブリック静的 IP アドレスが許可されたりすることなどがあります。

セルフホステッド IR を準備する

この機能を使用するには、最初にデータ ファクトリを作成し、その中に Azure-SSIS IR を設定します。 まだ行っていない場合は、Azure-SSIS IR の設定に関する手順に従ってください。

次に、Azure-SSIS IR が設定されているのと同じデータ ファクトリで、セルフホステッド IR を設定します。 これを行うには、セルフホステッド IR の作成に関する記事を参照してください。

最後に、次のように、オンプレミスのマシンまたは Azure 仮想マシン (VM) に、セルフホステッド IR の最新バージョン、および追加のドライバーとランタイムをダウンロードしてインストールします。

  • セルフホステッド IR の最新バージョンをダウンロードしてインストールします。

  • セルフホステッド IR のバージョンが 5.28.0 以降の場合、セルフホステッド統合ランタイム ノードで SSIS パッケージの実行を有効にします。

    ExecuteSsisPackage プロパティは、セルフホステッド IR バージョン 5.28.0 から新たに導入されました。 SSIS パッケージの実行を有効または無効にするには、次のセルフホステッド IR コマンド ライン アクションを使います。

    • -EnableExecuteSsisPackage: セルフホステッド IR ノード上で SSIS パッケージの実行を有効にします。

    • -DisableExecuteSsisPackage: セルフホステッド IR ノード上で SSIS パッケージの実行を無効にします。

    • -GetExecuteSsisPackage

    セルフホステッド IR コマンド ラインの詳細については、「ローカル PowerShell を使用して既存のセルフホステッド IR をセットアップする」を参照してください。

    バージョン 5.28.0 以降を使って新しくインストールしたセルフホステッド IR ノードの ExecuteSsisPackage プロパティは既定で無効です。

    バージョン 5.28.0 以降に更新された既存のセルフホステッド IR ノードの場合、ExecuteSsisPackage プロパティは既定で有効です。

  • パッケージでオブジェクトのリンクと埋め込みデータベース (OLE DB)、Open Database Connectivity (ODBC)、または ADO.NET コネクタを使用する場合は、セルフホステッド IR がインストールされている同じコンピューターに、関連するドライバーをダウンロードしてインストールしてください (まだ行っていない場合)。

    SQL Server 用の OLEDB ドライバーの以前のバージョン (SQL Server Native Client (SQLNCLI)) を使用する場合は、64 ビット版をダウンロードします

    SQL Server 用の OLEDB ドライバーの最新バージョン (MSOLEDBSQL) を使用する場合は、64 ビット版をダウンロードします

    PostgreSQL、MySQL、Oracle などの他のデータベース システム用の OLEDB/ODBC/ADO.NET ドライバーを使用する場合は、それらの Web サイトから 64 ビット版をダウンロードできます。

  • パッケージで Azure Feature Pack のデータ フロー コンポーネントを使用する場合は、セルフホステッド IR がインストールされているのと同じマシンに SQL Server 2017 用の Azure Feature Pack をダウンロードしてインストールします (まだインストールしていない場合)。

  • セルフホステッド IR がインストールされているのと同じコンピューターに、64 ビット版の Visual C++ (VC) ランタイムをダウンロードしてインストールします (まだ行っていない場合)。

オンプレミスのタスクで Windows 認証を有効にする

セルフホステッド IR 上のオンプレミスのステージング タスクと、SQL およびプロセス実行タスクが Windows 認証を必要とする場合は、Azure-SSIS IR で windows 認証機能も構成する必要があります。

オンプレミスのステージング タスクと、SQL およびプロセス実行タスクは、セルフホステッド IR サービス アカウント (既定では NT SERVICE\DIAHostService) を使用して起動し、データ ストアには Windows 認証アカウントを使用してアクセスします。 どちらのアカウントにも、特定のセキュリティ ポリシーが割り当てられている必要があります。 セルフホステッド IR コンピューターで、 [ローカル セキュリティ ポリシー]>[ローカル ポリシー]>[ユーザー権利の割り当て] を選択し、次の操作を行います。

  1. [プロセスのメモリ クォータの増加] ポリシーと [プロセス レベル トークンの置き換え] ポリシーをセルフホステッド IR サービス アカウントに割り当てます。 これは、既定のサービス アカウントを使用してセルフホステッド IR をインストールするときに自動的に実行されます。 そうでない場合は、手動でこれらのポリシーを割り当てます。 別のサービス アカウントを使用する場合は、同じポリシーを割り当てます。

  2. [サービスとしてログオン] ポリシーを Windows 認証アカウントに割り当てます。

Azure Blob Storage のリンクされたサービスをステージング用に準備する

Azure Blob Storage のリンクされたサービスを、Azure-SSIS IR が設定されているのと同じデータ ファクトリに作成します (まだそうしていない場合)。 これを行うには、Azure Data Factory のリンクされたサービスの作成 に関する記事を参照してください。 次のことを行ってください。

  • [データ ソース][Azure Blob Storage] を選択します。
  • 統合ランタイム経由で接続する場合は、Azure Blob Storage のアクセス資格情報を取り込むために Azure-SSIS IR を使うのでなく、(Azure-SSIS IR でもセルフホステッド IR でもなく) AutoResolveIntegrationRuntime を選択します。
  • [認証方法] で、 [アカウント キー][SAS URI][サービス プリンシパル][マネージド ID] 、または [ユーザー割り当てマネージド ID] を選択します。

ヒント

データ ファクトリ インスタンスが Git 対応の場合、キー認証のないリンク サービスはすぐには発行されません。つまり、feature-branch のリンク サービスに依存する統合ランタイムを保存することはできません。 アカウント キーまたは SAS URI を使用して認証すると、リンク サービスが直ちに発行されます。

ヒント

サービス プリンシパル方法を選択した場合は、サービス プリンシパルに少なくともストレージ BLOB データ共同作成者のロールを付与します。 詳細については、「Azure Blob Storage コネクタ」をご覧ください。 [マネージド ID]/[ユーザー割り当てマネージド ID] の方式を選択した場合は、ADF の指定のシステムまたはユーザー割り当てマネージド ID に、Azure Blob Storage にアクセスするための適切なロールを付与します。 詳細については、 ADF の指定されたシステム/ユーザー割り当てマネージド ID で Microsoft Entra 認証を使用して Azure Blob Storage にアクセスする方法に関するページを参照してください。

Prepare the Azure Blob storage-linked service for staging

セルフホステッド IR をプロキシとして使用して Azure-SSIS IR を構成する

セルフホステッド IR と Azure Blob Storage のリンク サービスをステージング用に準備したので、次にデータ ファクトリ ポータルまたはアプリでセルフホステッド IR をプロキシとして使用して、新規または既存の Azure-SSIS IR を構成することができます。 ただし、上記を実行する前に、既存の Azure-SSIS IR が実行されている場合は、これを停止し、後で再起動してください。

  1. [統合ランタイムのセットアップ] ペインで、 [続行] ボタンを選択して、 [全般設定][デプロイ設定] ページをスキップします。

  2. [詳細設定] ページで、次の手順を実行します。

    1. [Set up Self-Hosted Integration Runtime as a proxy for your Azure-SSIS Integration Runtime](セルフホステッド IR を Azure-SSIS 統合ランタイムのプロキシとして設定する) チェックボックスをオンにします。

    2. [Self-Hosted Integration Runtime](セルフホステッド統合ランタイム) ドロップダウン リストで、既存のセルフホステッド IR を Azure-SSIS IR のプロキシとして選択します。

    3. [ステージング ストレージのリンク サービス] ドロップダウン リストで、既存の Azure BLOB ストレージのリンク サービスを選択するか、またはステージング用の新しいリンク サービスを作成します。

    4. [ステージング パス] ボックスで、選択した Azure ストレージ アカウント内の BLOB コンテナーを指定するか、またはこれを空のままにしてステージング用の既定のパスを使用します。

    5. [Continue](続行) を選択します。

    Advanced settings with a self-hosted IR

また、PowerShell を使用し、セルフホステッド IR をプロキシとして使用して新規または既存の Azure-SSIS IR を構成することもできます。

$ResourceGroupName = "[your Azure resource group name]"
$DataFactoryName = "[your data factory name]"
$AzureSSISName = "[your Azure-SSIS IR name]"
# Self-hosted integration runtime info - This can be configured as a proxy for on-premises data access 
$DataProxyIntegrationRuntimeName = "" # OPTIONAL to configure a proxy for on-premises data access 
$DataProxyStagingLinkedServiceName = "" # OPTIONAL to configure a proxy for on-premises data access 
$DataProxyStagingPath = "" # OPTIONAL to configure a proxy for on-premises data access 

# Add self-hosted integration runtime parameters if you configure a proxy for on-premises data access
if(![string]::IsNullOrEmpty($DataProxyIntegrationRuntimeName) -and ![string]::IsNullOrEmpty($DataProxyStagingLinkedServiceName))
{
    Set-AzDataFactoryV2IntegrationRuntime -ResourceGroupName $ResourceGroupName `
        -DataFactoryName $DataFactoryName `
        -Name $AzureSSISName `
        -DataProxyIntegrationRuntimeName $DataProxyIntegrationRuntimeName `
        -DataProxyStagingLinkedServiceName $DataProxyStagingLinkedServiceName

    if(![string]::IsNullOrEmpty($DataProxyStagingPath))
    {
        Set-AzDataFactoryV2IntegrationRuntime -ResourceGroupName $ResourceGroupName `
            -DataFactoryName $DataFactoryName `
            -Name $AzureSSISName `
            -DataProxyStagingPath $DataProxyStagingPath
    }
}
Start-AzDataFactoryV2IntegrationRuntime -ResourceGroupName $ResourceGroupName `
    -DataFactoryName $DataFactoryName `
    -Name $AzureSSISName `
    -Force

SSIS パッケージでプロキシを使用できるようにする

最新の SSDT を Visual Studio の SSIS Projects 拡張機能またはスタンドアロンのインストーラのいずれかとして使用すると、サポートされているデータ フロー コンポーネントの接続マネージャーでは新しい ConnectByProxy プロパティを、SQL およびプロセス実行タスクでは ExecuteOnProxy プロパティを見つけることができます。

オンプレミスでデータにアクセスするコンポーネントを持つデータ フロー タスクを含む新しいパッケージを設計する場合、ConnectByProxy プロパティを有効にするには、関連する接続マネージャーの [プロパティ] ウィンドウでこれを "True" に設定します。

オンプレミスで実行する SQL およびプロセス実行タスクを含む新しいパッケージを設計する場合、ExecuteOnProxy プロパティを有効にするには、関連するタスク自身の [プロパティ] ペインでこれを True に設定します。

Enable ConnectByProxy/ExecuteOnProxy property

また、既存のパッケージを実行する場合も、それらを 1 つずつ手動で変更することなく、ConnectByProxy/ExecuteOnProxy プロパティを有効にできます。 2 つのオプションがあります。

  • オプション A: Azure-SSIS IR で実行する、最新の SSDT を備えたこれらのパッケージを含むプロジェクトを開いて、再構築し、再デプロイする。 SSMS からパッケージを実行するときに [パッケージの実行] ポップアップ ウィンドウの [接続マネージャー] タブに表示される、関連する接続マネージャーに対して True に設定することで ConnectByProxy プロパティを有効にできます。

    Enable ConnectByProxy/ExecuteOnProxy property2

    また、Data Factory パイプラインでパッケージを実行するときに SSIS パッケージの実行アクティビティ[接続マネージャー] タブに表示される、関連する接続マネージャーに対して True に設定することで ConnectByProxy プロパティを有効にできます。

    Enable ConnectByProxy/ExecuteOnProxy property3

  • オプション B: SSIS IR で実行するこれらのパッケージを含むプロジェクトを再デプロイする。 次に、プロパティ パス \Package.Connections[YourConnectionManagerName].Properties[ConnectByProxy]/\Package\YourExecuteSQLTaskName.Properties[ExecuteOnProxy]/\Package\YourExecuteProcessTaskName.Properties[ExecuteOnProxy] を指定し、SSMS からパッケージを実行するときに [パッケージの実行] ポップアップ ウィンドウの [詳細] タブでプロパティ オーバーライドとして True に設定することで ConnectByProxy/ExecuteOnProxy プロパティを有効にできます。

    Enable ConnectByProxy/ExecuteOnProxy property4

    また、プロパティ パス \Package.Connections[YourConnectionManagerName].Properties[ConnectByProxy]/\Package\YourExecuteSQLTaskName.Properties[ExecuteOnProxy]/\Package\YourExecuteProcessTaskName.Properties[ExecuteOnProxy] を指定し、Data Factory パイプラインでパッケージを実行するときに SSIS パッケージ実行アクティビティ[プロパティのオーバーライド] タブでプロパティ オーバーライドとして True に設定することで ConnectByProxy/ExecuteOnProxy プロパティを有効にできます。

    Enable ConnectByProxy/ExecuteOnProxy property5

オンプレミス タスクとクラウドのステージング タスクをデバッグする

セルフホステッド IR では、ランタイム ログは C:\ProgramData\SSISTelemetry フォルダー内にあり、オンプレミスのステージング タスクと、SQL およびプロセス実行タスクの実行ログは C:\ProgramData\SSISTelemetry\ExecutionLog フォルダー内にあります。 クラウドにあるステージング タスクの実行ログは、パッケージを格納した場所が SSISDB であるかどうかや、Azure Monitor の統合などを有効にするかどうかに応じて、SSISDB 内、指定されたロギング ファイル パス、または Azure Monitor にあります。オンプレミスのステージング タスクの一意の ID も、クラウドにあるステージング タスクの実行ログ内にあります。

Unique ID of the first staging task

カスタマー サポート チケットを発行した場合は、セルフホステッド IR にインストールされている Microsoft Integration Runtime Configuration Manager[診断] タブ で [ログの送信] ボタンを選択して、最近の操作/実行ログを調査対象として送信できます。

オンプレミス タスクとクラウドのステージング タスクの請求

セルフホステッド IR で実行されるオンプレミスのステージング タスクと SQL およびプロセス実行タスクは、セルフホステッド IR で実行されるあらゆるデータ移動アクティビティが課金されるのと同じように、個別に課金されます。 これは、Azure Data Factory データ パイプラインの価格に関するページに記載されています。

Azure-SSIS IR で実行されるクラウドにあるステージング タスクは個別に課金されませんが、実行中の Azure-SSIS IR は、Azure-SSIS IR の価格に関する記事の指定どおりに課金されます。

TLS 1.2 を適用する

最も強力な暗号化や、最も安全なネットワーク プロトコル (TLS 1.2) のみを使用するように構成されている、ステージング用の Azure Blob Storage などのデータ ストアにアクセスする必要がある場合は、セルフホステッド IR で TLS 1.2 のみを有効にし、古い SSL/TLS バージョンは同時に無効にする必要があります。 パブリック プレビューの BLOB コンテナーの CustomSetupScript/UserScenarios/TLS 1.2 フォルダーに用意されている main.cmd スクリプトをダウンロードして実行してください。 Azure Storage Explorer を使用して、次の SAS URI を入力することで、パブリック プレビュー BLOB コンテナーに接続できます。

https://ssisazurefileshare.blob.core.windows.net/publicpreview?sp=rl&st=2020-03-25T04:00:00Z&se=2025-03-25T04:00:00Z&sv=2019-02-02&sr=c&sig=WAD3DATezJjhBCO3ezrQ7TUZ8syEUxZZtGIhhP6Pt4I%3D

現在の制限

  • 現在、Hadoop/HDFS/DQS コンポーネントを除き、Azure-SSIS IR Standard Edition に組み込まれているか、事前にインストールされているデータ フロー コンポーネントのみがサポートされています。Azure-SSIS IR に組み込まれているか、事前にインストールされているすべてのコンポーネントに関するページをご覧ください。
  • 現在、マネージド コード (.NET Framework) で記述されたカスタム/サードパーティのデータ フロー コンポーネントのみがサポートされています。ネイティブ コード (C++) で記述されたコンポーネントは、現在サポートされていません。
  • オンプレミスとクラウドの両方のステージング タスクで変数値を変更することは、現在サポートされていません。
  • オンプレミスのステージング タスクでオブジェクト型の変数値を変更しても、他のタスクには反映されません。
  • OLEDB ソースの ParameterMapping は現在サポートされていません。 回避策として、AccessMode として変数からの SQL コマンドを使用し、を使用して SQL コマンドに変数やパラメーターを挿入してください。 図のように、パブリック プレビュー BLOB コンテナーの SelfHostedIRProxy/Limitations フォルダーに置かれた ParameterMappingSample.dtsx パッケージを参照してください。 Azure Storage Explorer を使用して、上の SAS URI を入力することで、パブリック プレビュー BLOB コンテナーに接続できます。

セルフホステッド IR を Azure-SSIS IR のプロキシとして構成したら、Data Factory パイプラインの SSIS パッケージ実行アクティビティとしてパッケージをデプロイおよび実行して、オンプレミスでデータにアクセスしたり SQL ステートメントやプロセスを実行したりできます。 方法については、Data Factory パイプラインの SSIS パッケージ実行アクティビティとしての SSIS パッケージの実行に関する記事を参照してください。 ブログ「Azure Data Factory の SSIS を使用して、3 つの簡単な手順で任意の場所で任意の SQL を実行する」および「Azure Data Factory で SSIS を使用して、3 つの簡単なステップで任意の場所で任意のプロセスを実行する」も参照してください。