Azure PowerShell を使用して Azure-SSIS 統合ランタイムを仮想ネットワークに参加させる

適用対象: Azure Data Factory Azure Synapse Analytics

ヒント

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

この記事では、Azure PowerShell を使用して、Azure Data Factory の既存の Azure-SQL Server Integration Services (SSIS) 統合ランタイム (IR) を仮想ネットワークに参加させる方法について説明します。

Note

Azure Synapse Analytics の Azure-SSIS IR については、対応する Azure Synapse Analytics PowerShell インターフェイスに置き換えてください: Set-AzSynapseIntegrationRuntime (Az.Synapse)Start-AzSynapseIntegrationRuntime、および Stop-AzSynapseIntegrationRuntime.。

変数の作成

$ResourceGroupName = "[your Azure resource group name]"
$DataFactoryName = "[your data factory name]"
$AzureSSISName = "[your Azure-SSIS IR name]"
# Virtual network info: Azure Resource Manager or Classic
$VnetId = "[your virtual network resource ID or leave it empty]" # REQUIRED if you use Azure SQL Database server configured with a private endpoint/IP firewall rule/virtual network service endpoint or Azure SQL Managed Instance that joins a virtual network to host SSISDB, or if you require access to on-premises data without configuring a self-hosted IR. We recommend Azure Resource Manager virtual network, because classic virtual network will be deprecated soon.
$SubnetName = "[your subnet name or leave it empty]" # WARNING: Use the same subnet as the one used for Azure SQL Database server configured with a virtual network service endpoint or a different subnet from the one used for Azure SQL Managed Instance that joins a virtual network
$SubnetId = $VnetId + '/subnets/' + $SubnetName 
# Virtual network injection method: Standard or Express. For comparison, see https://learn.microsoft.com/azure/data-factory/azure-ssis-integration-runtime-virtual-network-configuration.
$VnetInjectionMethod = "Standard" # Standard by default, whereas Express lets you use the express virtual network injection method
# Public IP address info: OPTIONAL to provide two standard static public IP addresses with DNS name under the same subscription and in the same region as your virtual network
$FirstPublicIP = "[your first public IP address resource ID or leave it empty]"
$SecondPublicIP = "[your second public IP address resource ID or leave it empty]"

仮想ネットワークを構成する

Azure-SSIS IR を仮想ネットワークに参加させる前に、仮想ネットワークを構成する必要があります。 Azure-SSIS IR を仮想ネットワークに参加させるよう、仮想ネットワークのアクセス許可および設定を自動的に構成するには、次のスクリプトを追加します。

# Make sure to run this script against the subscription to which the virtual network belongs.
if(![string]::IsNullOrEmpty($VnetId) -and ![string]::IsNullOrEmpty($SubnetName))
{
    # Register to the Azure Batch resource provider
    $BatchApplicationId = "ddbf3205-c6bd-46ae-8127-60eb93363864"
    $BatchObjectId = (Get-AzADServicePrincipal -ServicePrincipalName $BatchApplicationId).Id
    Register-AzResourceProvider -ProviderNamespace Microsoft.Batch
    while(!(Get-AzResourceProvider -ProviderNamespace "Microsoft.Batch").RegistrationState.Contains("Registered"))
    {
    Start-Sleep -s 10
    }
    if($VnetId -match "/providers/Microsoft.ClassicNetwork/")
    {
        # Assign the VM contributor role to Microsoft.Batch
        New-AzRoleAssignment -ObjectId $BatchObjectId -RoleDefinitionName "Classic Virtual Machine Contributor" -Scope $VnetId
    }
}

Azure-SSIS IR を作成して仮想ネットワークに参加させる

Azure-SSIS IR を作成し、作成と同時に仮想ネットワークに参加させることができます。 完全なスクリプトと手順については、Azure-SSIS IR の作成に関する記事を参照してください。

既存の Azure-SSIS IR を仮想ネットワークに参加させる

Azure-SSISIR の作成に関する記事では、Azure-SSIS IR を作成し、同じスクリプト内の仮想ネットワークに参加させる方法が説明されています。 既に Azure-SSIS IR がある場合は、次の手順に従って仮想ネットワークに参加させます。

  1. Azure-SSIS IR を停止します。
  2. 仮想ネットワークに参加させるよう Azure-SSIS IR を構成します。
  3. Azure-SSIS IR を開始します。

Azure-SSIS IR を停止する

Azure-SSIS IR を仮想ネットワークに参加させるには、先に停止させる必要があります。 このコマンドは、そのすべてのノードを解放し、課金を停止します。

Stop-AzDataFactoryV2IntegrationRuntime -ResourceGroupName $ResourceGroupName `
    -DataFactoryName $DataFactoryName `
    -Name $AzureSSISName `
    -Force 

仮想ネットワークに参加させるよう Azure-SSIS IR を構成する

Azure-SSIS IR を仮想ネットワークに参加させるには、Set-AzDataFactoryV2IntegrationRuntime コマンドを実行します。

Set-AzDataFactoryV2IntegrationRuntime -ResourceGroupName $ResourceGroupName `
    -DataFactoryName $DataFactoryName `
    -Name $AzureSSISName `
    -SubnetId $SubnetId `
    -VNetInjectionMethod $VnetInjectionMethod

# Add public IP address parameters if you use the standard virtual network injection method and bring your own static public IP addresses
if($VnetInjectionMethod -eq "Standard")
{
    if(![string]::IsNullOrEmpty($FirstPublicIP) -and ![string]::IsNullOrEmpty($SecondPublicIP))
    {
        $publicIPs = @($FirstPublicIP, $SecondPublicIP)
        Set-AzDataFactoryV2IntegrationRuntime -ResourceGroupName $ResourceGroupName `
            -DataFactoryName $DataFactoryName `
            -Name $AzureSSISName `
            -PublicIPs $publicIPs
    }
}

Azure-SSIS IR を開始する

Azure-SSIS IR を開始するには、次のコマンドを実行します。

Start-AzDataFactoryV2IntegrationRuntime -ResourceGroupName $ResourceGroupName `
    -DataFactoryName $DataFactoryName `
    -Name $AzureSSISName `
    -Force

高速または標準の仮想ネットワーク インジェクション方法を使用した場合、このコマンドの完了には、それぞれ 5 分、または 20 ~ 30 分かかります。

Azure-SSIS IR の詳細については、次の記事を参照してください。

  • Azure-SSIS IR」。 この記事では、Azure-SSIS IR を含め、IR に関する全般的な概念情報が説明されています。
  • チュートリアル:Azure への SSIS パッケージのデプロイに関するチュートリアルの手順に従って作成します。 このチュートリアルでは、Azure-SSIS IR の作成手順を示しています。 ここでは、SSISDB をホストするために Azure SQL Database サーバーを使用しています。
  • Azure-SSIS IR を作成する」。 この記事は、このチュートリアルを拡張しています。 仮想ネットワーク サービス エンドポイント、IP ファイアウォール規則、プライベート エンドポイントで構成された Azure SQL Database サーバー、または仮想ネットワークに参加する Azure SQL Managed Instance を使用して SSISDB をホストする手順について説明しています。 Azure-SSIS IR を仮想ネットワークに参加させる方法について説明します。
  • Azure-SSIS IR を監視する: この記事では、Azure-SSIS IR についての情報を取得して理解するための方法を示します。
  • Azure-SSIS IR を管理する: この記事では、Azure-SSIS IR を停止、開始、または削除する方法を示しています。 また、ノードを追加することで Azure-SSIS IR をスケールアウトする方法も説明されています。