Azure-SSIS IR에 대한 프록시로 자체 호스팅 IR 구성
적용 대상: Azure Data Factory Azure Synapse Analytics
팁
기업용 올인원 분석 솔루션인 Microsoft Fabric의 Data Factory를 사용해 보세요. Microsoft Fabric은 데이터 이동부터 데이터 과학, 실시간 분석, 비즈니스 인텔리전스 및 보고에 이르기까지 모든 것을 다룹니다. 무료로 새 평가판을 시작하는 방법을 알아봅니다!
이 문서에서는 자체 호스팅 IR(자체 호스팅 통합 런타임)을 프록시로 구성하여 Azure-SSIS IR(Azure-SSIS Integration Runtime)에서 SSIS(SQL Server Integration Services) 패키지를 실행하는 방법을 설명합니다.
이 기능을 사용하면 Azure-SSIS IR을 가상 네트워크에 조인하지 않고도 데이터에 액세스하고 온-프레미스에서 작업을 실행할 수 있습니다. 이 기능은 회사 네트워크에 구성이 너무 복잡하거나 정책이 너무 제한적이어서 Azure-SSIS IR을 삽입할 수 없는 경우에 유용합니다.
지금은 SSIS 데이터 흐름 태스크 및 SQL/프로세스 실행 태스크에서만 이 기능을 실행할 수 있습니다.
데이터 흐름 태스크에서 사용하도록 설정하면 이 기능은 적용 가능할 때마다 두 개의 준비 작업으로 분할됩니다.
- 온-프레미스 준비 작업: 이 작업은 자체 호스팅 IR에서 온-프레미스 데이터 저장소에 연결하는 데이터 흐름 구성 요소를 실행합니다. 온-프레미스 데이터 저장소에서 Azure Blob Storage의 준비 영역으로, 또는 그 반대로 데이터를 이동합니다.
- 클라우드 준비 작업: 이 작업은 Azure-SSIS IR에서 온-프레미스 데이터 저장소에 연결하지 않는 데이터 흐름 구성 요소를 실행합니다. Azure Blob Storage의 준비 영역에서 클라우드 데이터 저장소로, 또는 그 반대로 데이터를 이동합니다.
데이터 흐름 태스크가 온-프레미스에서 클라우드로 데이터를 이동하는 경우 첫 번째 및 두 번째 준비 작업은 각각 온-프레미스 준비 작업과 클라우드 준비 작업입니다. 데이터 흐름 태스크가 클라우드에서 온-프레미스로 데이터를 이동하는 경우 첫 번째 및 두 번째 준비 작업은 각각 클라우드 준비 작업과 온-프레미스 준비 작업입니다. 데이터 흐름 태스크가 온-프레미스에서 온-프레미스로 데이터를 이동하는 경우 첫 번째 및 두 번째 준비 작업은 모두 온-프레미스 준비 작업입니다. 데이터 흐름 태스크가 클라우드에서 클라우드로 데이터를 이동하는 경우에는 이 기능이 적용되지 않습니다.
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에서 새로 도입되었습니다. 아래 자체 호스팅 IR 명령줄 작업을 사용하여 SSIS 패키지 실행을 사용하거나 사용하지 않도록 설정합니다.
-EnableExecuteSsisPackage 자체 호스팅 IR 노드에서 SSIS 패키지 실행을 사용하도록 설정합니다.
-DisableExecuteSsisPackage 자체 호스팅 IR 노드에서 SSIS 패키지 실행을 사용하지 않도록 설정합니다.
-GetExecuteSsisPackage
자체 호스팅 IR 명령줄 세부 정보는 로컬 PowerShell을 통해 기존 자체 호스팅 IR 설정을 참조합니다.
버전 5.28.0 이상을 사용하여 새로 설치된 자체 호스팅 IR 노드인 ExecuteSsisPackage 속성은 기본적으로 사용하지 않도록 설정됩니다.
기존 자체 호스팅 IR 노드가 버전 5.28.0 이상으로 업데이트되고 ExecuteSsisPackage 속성은 기본적으로 사용하도록 설정됩니다.
패키지에서 OLEDB(개체 연결 및 포함 데이터베이스), ODBC(Open Database Connectivity) 또는 ADO.NET 커넥터를 사용하는 경우 자체 호스팅 IR이 설치된 컴퓨터에 관련 드라이버를 다운로드하여 설치합니다(아직 수행하지 않은 경우).
이전 버전의 SQL Server용 OLEDB 드라이버(SQL Server Native Client[SQLNCLI])를 사용하는 경우 64비트 버전을 다운로드합니다.
최신 버전의 SQL Server용 OLEDB 드라이버(MSOLEDBSQL)를 사용하는 경우 64비트 버전을 다운로드합니다.
PostgreSQL, MySQL, Oracle 등의 다른 데이터베이스 시스템에 OLEDB/ODBC/ADO.NET 드라이버를 사용하는 경우 해당 웹 사이트에서 64비트 버전을 다운로드할 수 있습니다.
패키지에 있는 Azure 기능 팩의 데이트 흐름 구성 요소를 사용하는 경우 자체 호스팅 IR이 설치된 머신와 동일한 머신에 SQL Server 2017용 Azure Feature Pack을 다운로드하고 설치합니다(아직 수행하지 않은 경우).
아직 설치하지 않은 경우 자체 호스팅 IR이 설치된 컴퓨터에서 64비트 버전의 VC(Visual C++) 런타임을 다운로드하여 설치합니다.
온-프레미스 작업에 Windows 인증 활성화
온-프레미스 준비 작업을 수행하고 자체 호스팅 IR에서 SQL/프로세스 실행 태스크에 Windows 인증이 필요한 경우에는 Windows 인증 기능을 Azure-SSIS IR에도 구성해야 합니다.
온-프레미스 준비 작업 및 SQL/프로세스 실행 태스크는 자체 호스팅 IR 서비스 계정(NT SERVICE\DIAHostService이 기본값)을 사용하여 호출되고, 데이터 저장소는 Windows 인증 계정을 사용하여 액세스됩니다. 두 계정 모두 특정 보안 정책을 할당해야 합니다. 자체 호스팅 IR 컴퓨터에서 로컬 보안 정책>로컬 정책>사용자 권한 할당으로 이동하여 다음을 수행합니다.
자체 호스팅 IR 서비스 계정에 '프로세스에 대한 메모리 할당량 조정' 및 '프로세스 수준 토큰 바꾸기' 정책을 할당합니다. 이는 기본 서비스 계정으로 자체 호스팅 IR을 설치할 때 자동으로 할당됩니다. 그렇지 않은 경우 해당 정책을 수동으로 할당합니다. 다른 서비스 계정을 사용하는 경우 동일한 정책을 할당합니다.
Windows 인증 계정에 '서비스로 로그온' 정책을 할당합니다.
스테이징을 위해 Azure Blob Storage 연결된 서비스 준비
아직 만들지 않은 경우 Azure-SSIS IR이 설정된 동일한 데이터 팩터리에 Azure Blob Storage 연결된 서비스를 만듭니다. 이렇게 하려면 Azure Data Factory 연결된 서비스 만들기를 참조하세요. 다음 단계는 반드시 수행해야 합니다.
- 데이터 저장소에서 Azure Blob Storage를 선택합니다.
- 통합 런타임을 통한 연결의 경우 AutoResolveIntegrationRuntime(자체 호스팅 IR 아님)을 선택하여, 이를 무시하고 대신 Azure-SSIS IR을 사용하여 Azure Blob Storage에 대한 액세스 자격 증명을 페치할 수 있습니다.
- 인증 방법에서 계정 키, SAS URI, 서비스 주체, 관리 ID 또는 사용자가 할당한 관리 ID를 선택합니다.
팁
데이터 팩터리 인스턴스가 Git을 사용하도록 설정된 경우 키 인증이 없는 연결된 서비스는 즉시 게시되지 않으므로 기능 분기의 연결된 서비스에 의존하는 통합 런타임을 저장할 수 없습니다. 계정 키 또는 SAS URI를 사용하여 인증하면 연결된 서비스가 즉시 게시됩니다.
팁
서비스 주체 방법을 선택하는 경우 서비스 주체에 '스토리지 Blob 데이터 기여자' 이상의 역할을 부여합니다. 자세한 내용은 Azure Blob Storage 커넥터를 참조하세요. 관리 ID/사용자가 할당한 관리 ID 방법을 선택하는 경우 ADF에 대해 지정한 시스템/사용자가 할당한 관리 ID에 Azure Blob Storage에 액세스할 수 있는 적절한 역할을 부여합니다. 자세한 내용은 ADF에 대해 할당된 시스템/사용자 할당 관리 ID로 Microsoft Entra 인증을 사용하여 Azure Blob Storage에 액세스를 참조하세요.
자체 호스팅 IR을 프록시로 사용하여 Azure-SSIS IR 구성
준비 프로세스를 위해 자체 호스팅 IR 및 Azure Blob Storage에 연결된 서비스를 준비한 후에는, 이제 데이터 팩터리 포털 또는 앱에서 자체 호스팅 IR을 사용하여 새 또는 기존 Azure-SSIS IR을 구성할 수 있습니다. 그러나 이렇게 하기 전에 기존 Azure-SSIS IR이 이미 실행 중인 경우에는 이를 중지, 편집 및 다시 시작할 수 있습니다.
통합 런타임 설정 창에서 일반 설정 및 배포 설정 페이지를 계속 버튼을 눌러서 넘어갑니다.
고급 설정 페이지에서 다음을 수행합니다.
자체 호스팅 통합 런타임을 Azure-SSIS Integration Runtime의 프록시로 설정 확인란을 선택합니다.
자체 호스팅 통합 런타임 드롭다운 목록에서 기존 자체 호스팅 IR을 Azure-SSIS IR의 프록시로 선택합니다.
준비 스토리지에 연결된 서비스 드롭다운 리스트에서, 기존 Azure Blob Storage에 연결된 서비스를 선택하거나 새로운 서비스를 준비 용도로 생성합니다.
준비 경로 상자에서 선택한 Azure Blob Storage 계정에 Blob 컨테이너를 지정하거나 준비 용도로 기본값 항목을 사용하도록 비워 둡니다.
계속 단추를 선택합니다.
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 프로젝트 확장 또는 독립 실행형 설치 프로그램으로 사용하면 지원되는 데이터 흐름 구성 요소의 연결 관리자에서 새 ConnectByProxy
속성을 찾고 SQL/프로세스 실행 태스크에서 ExecuteOnProxy
속성을 찾을 수 있습니다.
온-프레미스 데이터에 액세스하는 구성 요소를 사용하여 데이터 흐름 태스크가 포함된 새 패키지를 디자인할 때,관련된 연결 관리자의 속성 창에서 ConnectByProxy
속성을 True로 설정할 수 있습니다.
온-프레미스로 작동하는 SQL/프로세스 실행 태스크를 포함한 새 패키지를 디자인할 때, 작업 자체와 관련된 속성 창에서 ExecuteOnProxy
속성을 True로 설정합니다.
또한 기존 패키지를 실행하는 경우에는 속성을 수동으로 변경하지 않고도 ConnectByProxy
/ExecuteOnProxy
속성을 사용하도록 설정할 수 있습니다. 두 옵션이 있습니다.
옵션 A: 최신 SSDT를 사용하여 Azure-SSIS IR에서 실행할 패키지를 포함하는 프로젝트를 열고 다시 빌드하고 다시 배포합니다. 그런 다음 SSMS에서 패키지를 작동할 때 패키지 실행 팝업창의 연결 관리자 탭에 표시되는 연관된 연결 관리자에 대하여
ConnectByProxy
속성을 True로 설정하여 사용하도록 설정할 수 있습니다.Data Factory 파이프라인에서 패키지를 실행할 때 SSIS 패키지 실행 작업의 연결 관리자 탭에 표시되는 연관된 연결 관리자에 대하여
ConnectByProxy
속성을 True로 설정하여 사용하도록 설정할 수도 있습니다.옵션 B: SSIS IR에서 실행할 패키지를 포함하는 프로젝트를 다시 배포합니다. SSMS에서 패키지를 실행할 때 속성 경로 및
\Package.Connections[YourConnectionManagerName].Properties[ConnectByProxy]
/\Package\YourExecuteSQLTaskName.Properties[ExecuteOnProxy]
/\Package\YourExecuteProcessTaskName.Properties[ExecuteOnProxy]
를 제공하여ConnectByProxy
/ExecuteOnProxy
속성을 사용하도록 설정할 수 있으며, 또한 패키지 실행 팝업창의 고급 탭에서 속성이 재정의되면서 이를 True 로 설정하여 사용하도록 설정할 수 있습니다.Data Factory 파이프라인에서 패키지를 실행할 때 속성 경로 및
\Package.Connections[YourConnectionManagerName].Properties[ConnectByProxy]
/\Package\YourExecuteSQLTaskName.Properties[ExecuteOnProxy]
/\Package\YourExecuteProcessTaskName.Properties[ExecuteOnProxy]
를 제공하여ConnectByProxy
/ExecuteOnProxy
속성을 사용하도록 설정할 수 있으며, 또한 SSIS 패키지 실행 작업의 속성 재정의 탭에서 속성이 재정의되면서 이를 True로 설정하여 사용하도록 설정할 수도 있습니다.
온-프레미스 작업 및 클라우드 준비 작업 디버그
자체 호스팅 IR에서 C:\ProgramData\SSISTelemetry 폴더에 있는 런타임 로그와 C:\ProgramData\SSISTelemetry\ExecutionLog 폴더에 있는 온-프레미스 준비 작업의 실행 로그를 찾을 수 있습니다. SSISDB에서 패키지를 저장한 위치에 따라 SSISDB, 지정된 로깅 파일 경로 또는 Azure Monitor에서 클라우드 준비 작업의 실행 로그를 찾거나 Azure Monitor 통합을 사용하도록 설정하는 등의 작업을 수행할 수 있습니다. 클라우드 준비 작업의 실행 로그에서 온-프레미스 준비 작업의 고유 ID를 확인할 수도 있습니다.
고객 지원 티켓을 제출한 경우 조사를 위해 최신 작업/실행 로그를 보내기 위해 자체 호스팅 IR에 설치된 Microsoft Integration Runtime 구성 관리자의 진단 탭에서 로그 보내기 단추를 선택할 수 있습니다.
온-프레미스 작업 및 클라우드 준비 작업에 대한 청구
자체 호스팅 IR에서 실행되는 온-프레미스 준비 작업 및 SQL/프로세스 실행 태스크는 자체 호스팅 IR에서 실행되는 데이터 이동 작업과 마찬가지로 별도의 요금이 청구됩니다. 이는 Azure Data Factory 데이터 파이프라인 가격 책정 문서에 지정되어 있습니다.
Azure-SSIS IR에서 실행되는 클라우드 준비 작업은 별도로 청구되지 않지만 실행 중인 Azure-SSIS IR은 Azure-SSIS IR 가격 책정 문서에 지정된 대로 요금이 청구됩니다.
TLS 1.2 적용
스테이징에 Azure Blob Storage를 포함하여 가장 강력한 암호화/가장 안전한 네트워크 프로토콜(TLS 1.2)만 사용하도록 구성된 데이터 저장소에 액세스해야 하는 경우 TLS 1.2만 활성화하고 자체 호스팅 IR에서 이전 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은 현재 지원되지 않습니다. 차선책으로 변수를 사용한 SQL 명령을 AccessMode로 사용하고 식을 사용하여 SQL 명령에 변수/매개 변수를 삽입하세요. 그림으로 ParameterMappingSample.dtsx 패키지를 공개 미리 보기 Blob 컨테이너의 SelfHostedIRProxy/Limitations 폴더에서 찾아 참조하세요. Azure Storage Explorer를 사용하여 위의 SAS URI를 입력해 공개 미리 보기 Blob 컨테이너에 연결할 수 있습니다.
관련 콘텐츠
자체 호스팅 IR을 Azure-SSIS IR의 프록시로 구성한 후에는 Data Factory 파이프라인에서 SSIS 패키지 실행 작업으로 온-프레미스에서 데이터에 액세스하고 SQL 문/프로세스를 실행하기 위해 패키지를 배포하고 실행할 수 있습니다. 자세히 알아보려면 Data Factory 파이프라인에서 SSIS 패키지 실행 작업으로 SSIS 패키지 실행을 참조하세요. 또한 블로그: Azure Data Factory에서 SSIS를 사용하여 3단계로 모든 SQL Anywhere 실행 및 Azure Data Factory에서 SSIS를 사용하여 3단계로 모든 Process Anywhere 실행을 참조하세요.