-
[Azure Data Factory] Azure Data Factory로 원본 데이터 이관 ② Self-hosted Integration Runtime (SHIR) 배포 및 구성Azure 2026. 6. 8. 11:26
Self-hosted Integration Runtime (SHIR)
Self-hosted Integration Runtime (SHIR) 은 Azure Data Factory 또는 Azure Synapse Analytics 가 사용자 네트워크 내부의 데이터에 접근할 수 있도록 해주는 중계 에이전트입니다.
즉, Azure Data Factory가 온프레미스나 폐쇄망에 있는 데이터베이스에 직접 들어갈 수 없기 때문에, 고객 환경에 설치하는 데이터 수집용 프로그램입니다.
Self-hosted Integration Runtime (SHIR) 배포
1. SHIR 서버 권장 사양
항목 요구사항 운영체제 Windows 10, Windows 11, Windows Server 2016/2019/2022/2025 설치 제한 Domain Controller에는 설치 불가 .NET Framework .NET Framework 4.7.2 이상 시스템 아키텍처 64-bit 운영체제 권장 사양 4 Core CPU, 8GB RAM, 80GB 이상 여유 디스크 권한 로컬 관리자(Administrator) 권한 필요 전원 설정 절전 모드(Sleep/Hibernate) 비활성화 필요 Java (선택) Parquet, ORC, Avro 처리 시 OpenJDK 11 또는 Temurin 11 필요 환경 변수 JAVA_HOME 설정 및 PATH 등록 필요 (Java 사용 시) 2. SHIR 서버 구성 사양
항목 구성 배포 방식 Azure Virtual Machine (IaaS) 운영체제 Windows Server 2019 용도 Azure Data Factory와 원본 데이터베이스 간 데이터 연계를 위한 Self-hosted Integration Runtime(SHIR) 서버 SKU Standard_B4als_v2 SHIR 구성은 Azure Portal에서 Azure Data Factory 리소스 생성 후, ADF 포탈에서 하기 링크를 참고하여 진행합니다.
(UI를 이용해 자체 호스팅 IR 만들기, UI를 이용해 자체 호스팅 IR 구성 항목 참조)
[최종 SHIR 구성 화면]

ADF 포탈 > 연결 > 통합 런타임에서 생성한 SHIR이 정상 실행 중인지 확인합니다.
Self-hosted Integration Runtime (SHIR) 구성
정상적으로 SHIR을 배포하였으니, Azure Data Factory에 원본 리소스와 대상 리소스를 연결해 줄 단계입니다.
해당 테스트에서는 원본 SQL Server에서 대상 Azure Data Lake Gen2로 Azure Data Factory를 통해 데이터 수집을 진행합니다.
1. 원본 DB 서버 연결

연결 > 연결된 서비스 > 연결된 서비스 만들기 클릭

SQL Server 선택

연결된 서비스에 대한 정보를 입력합니다.
[참고]
항목 설명 필수 여부 이름* 연결된 서비스 이름으로 지정할 이름 기입 (ex. SqlServer1) 필수 통합 런타임을 통해 연결* 앞서 생성한 통합 런타임 지정 (ex. integrationRuntime1) 필수 버전 2.0 (Recommended) 필수 서버 이름* 원본 DB서버의 사설 IP 지정 (ex. 10.20.1.4) 필수 데이터베이스 이름* 이관할 원본 DB 지정 (ex. AdventureWorks2019) 필수 인증 형식 인증에 사용되는 형식 지정 (ex. SQL 인증) 필수 사용자 이름* 인증에 사용할 SQL 사용자 이름 입력 필수 암호* 인증에 사용할 SQL 사용자 암호 입력 필수 Always Encrypted 관리 ID 또는 서비스 주체를 사용하여 SQL Server에 저장된 중요한 데이터를 보호하기 위해 Always Encrypted를 사용하도록 설정하는 데 필요한 alwaysencryptedsettings 정보를 지정합니다. 선택 Encrypt 클라이언트와 서버 간에 전송되는 모든 데이터에 TLS 암호화가 필요한지 여부를 나타냅니다. 선택 Trust Server Certificate 신뢰의 유효성을 검사하기 위해 인증서 체인을 무시하면서 채널을 암호화할지 여부를 나타냅니다. 선택 
정보를 다 입력한 이후, 연결 테스트를 시행합니다.
연결 테스트 이후 연결 성공시 '만들기'를 클릭
참고 문서) Azure Data Factory 또는 Azure Synapse Analytics 사용하여 SQL Server 데이터 복사 및 변환
2. 대상 리소스 연결

연결 > 연결된 서비스 > 연결된 서비스 만들기 클릭 후 Azure Data Lake Storage Gen2 선택

정보를 다 입력한 이후, 연결 테스트를 시행합니다.
연결 테스트 이후 연결 성공시 '만들기'를 클릭
[참고]
항목 설명 필수 여부 이름* 연결된 서비스 이름으로 지정할 이름 기입 (ex. AzureDataLakeStorage1) 필수 통합 런타임을 통해 연결* 앞서 생성한 통합 런타임 지정 (ex. integrationRuntime1) 필수 인증 형식 계정 키 / SAS URI / 서비스 사용자 / 시스템이 할당한 관리 ID / 사용자가 할당할 관리 ID 중 선택 (ex. 계정 키) 필수 계정 선택 방법 From Azure subscripiton / Enter Manually 중 선택 필수 - Azure 구독 Data Lake Storage Gen2가 존재하는 구독 선택 필수 - 스토리지 계정 이름 Data Lake Storage Gen2 지정 필수 연결 테스트 연결된 서비스 / 파일 경로 중 선택 필수 정보를 다 입력한 이후, 연결 테스트를 시행합니다.
연결 테스트 이후 연결 성공시 '만들기'를 클릭
참고 문서) Azure Data Factory 또는 Azure Synapse Analytics 사용하여 Azure Data Lake Storage Gen2 데이터 복사 및 변환
Azure Data Lake Storage Gen2 데이터 복사 및 변환 - Azure Data Factory & Azure Synapse
Azure Data Lake Storage Gen2 데이터를 복사하고 Azure Data Factory 또는 Azure Synapse Analytics 파이프라인을 사용하여 Azure Data Lake Storage Gen2 데이터를 변환하는 방법을 알아봅니다.
learn.microsoft.com
3. 연결된 리소스 확인

ADF에 원본 서버인 SQL Server와 대상 스토리지인 Azure Data Lake Stroage Gen2가 정상적으로 연결되어 있는지 확인합니다.
Trouble Shooting (연결이 안된다면?)
1. Self Integration Runtime 서버에서 원본 DB 서버까지 통신이 되는지 확인
- 저와 같은 경우는, Self Integration Runtime 서버에서 원본 DB 서버까지 통신이 되지 않았습니다.
① Self Integration Runtime 서버에 붙어있는 NIC의 유효경로 확인

테스트 환경에서는 On-prem 네트워크 ↔ Azure Hub 네트워크 간 VPN으로 통신 연결 진행하고,
Azure Hub 네트워크 ↔ Spoke 네트워크 (Self Integration Runtime 서버 위치) 간 가상 네트워크 피어링으로 통신 구성하여 On-prem 네트워크 ↔ Azure Hub 네트워크 ↔ Azure Spoke 간 통신이 되어야 하는데, Self Integration Runtime 서버에서 원본 DB 서버까지 통신이 되지 않았습니다.
Self Integration Runtime 서버에 붙어있는 NIC의 유효경로를 확인하니 가상 네트워크 게이트웨이까지의 경로가 확인되지 않았다. (정상적인 통신이면 캡쳐 화면처럼 해당 유효경로가 확인되어야 합니다.)

이유는 피어링 옵션의 문제였는데, 이렇게 hub 가상 네트워크에 위치한 게이트웨이가 spoke 가상 네트워크에 전달 되도록 옵션을 설정해주어야 합니다.

spoke쪽 피어링 옵션에서도, hub 가상 네트워크에 위치한 게이트웨이가 spoke 가상 네트워크에 전달 되도록 옵션을 설정해줍니다.
② TCP 1433 통신 확인

원본 DB 서버에 TCP 1433(MSSQL)으로 통신 가능한지 확인합니다.
'Azure' 카테고리의 다른 글
[Azure Data Factory] Azure Data Factory로 원본 데이터 이관 ① 원본 DB 구성 (0) 2026.06.08 [Migration] 6R (0) 2026.01.27 APIM을 사용하여 Azure AI LLM에서 토큰 사용 추적 (0) 2025.11.24 [Microsoft Foundry] Microsoft Foundry를 활용한 LLM + RAG 구현 (3) (0) 2025.11.20 [Microsoft Foundry] Microsoft Foundry를 활용한 LLM + RAG 구현 (2) (0) 2025.11.19