次の方法で共有


セルフホステッド 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 にアクセスする方法に関するページをご覧ください。

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

セルフホステッド 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](続行) を選択します。

    セルフホステッド 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 に設定します。

ConnectByProxy および ExecuteOnProxy プロパティを有効にする

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

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

    ConnectByProxy および ExecuteOnProxy プロパティを有効にする 2

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

    ConnectByProxy および ExecuteOnProxy プロパティを有効にする 3

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

    ConnectByProxy および ExecuteOnProxy プロパティを有効にする 4

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

    ConnectByProxy および ExecuteOnProxy プロパティを有効にする 5

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

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

1 番目のステージング タスクの一意の ID

カスタマー サポート チケットを発行した場合は、セルフホステッド 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 バージョンは同時に無効にする必要があります。 これを行うには、https://github.com/Azure/Azure-DataFactory/tree/main/SamplesV2/SQLServerIntegrationServices/publicpreview/CustomSetupScript/UserScenarios/TLS%201.2 から main.cmd スクリプトをダウンロードして実行します。

現在の制限

  • 現在、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 つの簡単なステップで任意の場所で任意のプロセスを実行する」も参照してください。