자습서: 프라이빗 엔드포인트를 사용하여 Data Factory Managed VNet에서 온-프레미스 SQL Server에 액세스하는 방법

이 자습서에서는 Azure Portal을 사용하여 프라이빗 링크 서비스를 설치하고 프라이빗 엔드포인트를 사용하여 관리되는 가상 네트워크에서 온-프레미스 SQL Server에 액세스하는 단계를 제공합니다. 관리형 가상 네트워크를 사용하면 온-프레미스 SQL 원본으로의 트래픽이 모두 사용자 고유의 프라이빗 엔드포인트를 통과하여 추가 보안 및 격리 계층으로 퍼블릭 클라우드에 대한 노출을 보호합니다. 아래 멘션 필요한 리소스는 시나리오를 지원하는 데 필요합니다.

참고 항목

이 문서에 나와 있는 솔루션은 SQL Server 연결에 대해 설명하지만 비슷한 방법을 사용하여 Azure Data Factory에서 지원되는 사용 가능한 다른 온-프레미스 커넥터를 연결하고 쿼리할 수 있습니다.

SQL Server의 액세스 모델을 보여 주는 스크린샷

필수 조건

  • Azure 구독. Azure 구독이 없는 경우 시작하기 전에 체험 계정을 만듭니다.
  • Virtual Network. 가상 네트워크가 없는 경우 가상 네트워크 만들기를 따라서 가상 네트워크를 만듭니다.
  • 가상 네트워크를 온-프레미스 네트워크로. ExpressRoute 또는 VPN을사용하여 가상 네트워크와 온-프레미스 네트워크 간에 연결을 만듭니다. 프라이빗 네트워크에서 클라우드 가상 머신을 사용하려는 경우 이 작업을 수행할 수도 있습니다. 클라우드 가상 머신에 대한 가상 네트워크와 가상 네트워크에 대한 프라이빗 링크를 만들고 클라우드에서 호스트되더라도 프라이빗 네트워크의 온-프레미스 컴퓨터인 것처럼 액세스할 수 있습니다.
  • Managed VNet이 사용하도록 설정된 Data Factory. Data Factory가 없거나 Managed VNet을 사용하도록 설정하지 않은 경우 Managed VNet을 사용하여 Data Factory 만들기에 따라 Data Factory를 만듭니다.

리소스에 대한 서브넷 만들기

포털을 사용하여 가상 네트워크에 서브넷을 만듭니다.

서브넷 설명
be-subnet 백 엔드 서버용 서브넷
fe-subnet 표준 내부 부하 분산 장치용 서브넷
pls-subnet Private Link Service에 대한 서브넷

서브넷을 보여 주는 스크린샷

표준 부하 분산 장치 만들기

포털을 사용하여 표준 내부 부하 분산 장치를 만듭니다.

  1. 화면 왼쪽 상단에서 리소스 만들기 > 네트워킹 > Load Balancer를 선택합니다.

  2. 부하 분산 장치 만들기 페이지의 기본 사항 탭에서 다음 정보를 입력하거나 선택합니다.

    설정
    Subscription 구독을 선택합니다.
    Resource group 리소스 그룹을 선택합니다.
    이름 myLoadBalancer를 입력합니다.
    지역 미국 동부를 선택합니다.
    유형 내부를 선택합니다.
    SKU 표준을 선택합니다.
    가상 네트워크 가상 네트워크를 선택합니다.
    서브넷 이전 단계에서 만든 fe-subnet을 선택합니다.
    IP 주소 할당 동적을 선택합니다.
    가용성 영역 영역 중복을 선택합니다.
  3. 나머지 설정에는 기본값을 적용한 다음, 검토 + 만들기를 선택합니다.

  4. 검토 + 만들기 탭에서 만들기를 선택합니다.

    표준 부하 분산 장치를 만드는 단계를 보여 주는 스크린샷

부하 분산 장치 리소스 만들기

백 엔드 풀 만들기

백 엔드 주소 풀에는 부하 분산 장치에 연결된 가상(NIC)의 IP 주소가 포함됩니다.

인터넷 트래픽의 부하를 분산하기 위한 가상 머신을 포함할 백 엔드 주소 풀 myBackendPool을 만듭니다.

  1. 왼쪽 메뉴에서 모든 서비스를 선택하고 모든 리소스를 선택한 다음, 리소스 목록에서 myLoadBalancer를 선택합니다.
  2. 설정에서 백 엔드 풀을 선택한 다음, 추가를 선택합니다.
  3. 백 엔드 풀 추가 페이지에서 이름에 백 엔드 풀의 이름인 myBackEndPool을 입력한 후 추가를 선택합니다.

상태 프로브 만들기

부하 분산 장치는 상태 프로브를 사용하여 앱의 상태를 모니터링합니다.

상태 프로브는 상태 검사의 응답에 따라 부하 분산 장치에서 VM을 추가하거나 제거합니다.

VM 상태를 모니터링할 myHealthProbe라는 상태 프로브를 만듭니다.

  1. 왼쪽 메뉴에서 모든 서비스를 선택하고 모든 리소스를 선택한 다음, 리소스 목록에서 myLoadBalancer를 선택합니다.

  2. 설정에서 상태 프로브를 선택한 다음, 추가를 선택합니다.

    설정
    속성 myHealthProbe를 입력합니다.
    프로토콜 TCP를 선택합니다.
    포트 22를 입력합니다.
    Interval 프로브 시도 간격(초)으로 15를 입력합니다.
    비정상 임계값 비정상 임계값 또는 VM이 비정상 상태로 간주되는 데 필요한 연속 프로브 오류 횟수로 2를 선택합니다.
  3. 나머지는 기본값으로 두고 확인을 선택합니다.

부하 분산 장치 규칙 만들기

부하 분산 장치 규칙은 VM으로 트래픽이 분산되는 방법을 정의하는 데 사용됩니다. 들어오는 트래픽에 대한 프런트 엔드 IP 구성 및 트래픽을 받는 백 엔드 IP 풀을 정의합니다. 원본 및 대상 포트는 규칙에 정의됩니다.

이 섹션에서 만드는 부하 분산 장치 규칙은 다음과 같습니다.

  1. 왼쪽 메뉴에서 모든 서비스를 선택하고 모든 리소스를 선택한 다음, 리소스 목록에서 myLoadBalancer를 선택합니다.

  2. 설정 아래에서 부하 분산 규칙을 선택한 다음, 추가를 선택합니다.

  3. 다음 값을 사용하여 부하 분산 규칙을 구성합니다.

    설정
    속성 myRule을 입력합니다.
    IP 버전 IPv4를 선택합니다.
    프런트 엔드 IP 주소 LoadBalancerFrontEnd를 선택합니다.
    프로토콜 TCP를 선택합니다.
    포트 1433을 입력합니다.
    백 엔드 포트 1433을 입력합니다.
    백 엔드 풀 myBackendPool을 선택합니다.
    상태 프로브 myHealthProbe를 선택합니다.
    유휴 제한 시간(분) 슬라이더를 15분으로 이동합니다.
    TCP 재설정 사용 안 함을 선택합니다.
  4. 나머지는 기본값으로 둔 다음, 확인을 선택합니다.

이 섹션에서는 표준 부하 분산 장치 뒤에 Private Link 서비스를 만듭니다.

  1. Azure Portal의 왼쪽 상단에서 리소스 만들기를 선택합니다.

  2. Marketplace 검색 상자에서 Private Link를 검색합니다.

  3. 만들기를 실행합니다.

  4. Private Link 센터개요에서 파란색 Private Link 서비스 만들기 단추를 선택합니다.

  5. 프라이빗 링크 서비스 만들기기본 탭에서 다음 정보를 선택합니다.

    설정
    프로젝트 세부 정보
    Subscription 구독을 선택합니다.
    리소스 그룹 리소스 그룹을 선택합니다.
    인스턴스 세부 정보
    이름 myPrivateLinkService를 입력합니다.
    지역 미국 동부를 선택합니다.
  6. 아웃바운드 설정 탭을 선택하거나 페이지 하단에 있는 다음: 아웃바운드 설정을 선택합니다.

  7. 아웃바운드 설정 탭에서 다음 정보를 입력하거나 선택합니다.

    설정
    부하 분산 장치 myLoadBalancer를 선택합니다.
    부하 분산 장치 프런트 엔드 IP 주소 LoadBalancerFrontEnd를 선택합니다.
    원본 NAT 서브넷 pls-subnet을 선택합니다.
    TCP 프록시 V2 사용 아니요(기본값)를 그대로 둡니다.
    개인 IP 주소 설정
    기본 설정을 그대로 둡니다.
  8. 액세스 보안 탭을 선택하거나 페이지 맨 아래에 있는 다음: 액세스 보안 선택합니다.

  9. 액세스 보안 탭에서 기본값인 역할 기반 액세스 제어만을 그대로 둡니다.

  10. 태그 탭을 선택하거나 페이지 아래쪽에서 다음: 태그를 선택합니다.

  11. 검토 + 만들기 탭을 선택하거나 페이지 하단에서 다음: 검토 + 만들기를 선택합니다.

  12. 검토 + 만들기 탭에서 만들기를 선택합니다.

백 엔드 서버 만들기

  1. 포털의 왼쪽 위에서 리소스 만들기 > 컴퓨팅 > 가상 머신을 차례로 선택합니다.

  2. 가상 머신 만들기기본 탭에서 값을 입력하거나 선택합니다.

    설정
    프로젝트 세부 정보
    구독 Azure 구독을 선택합니다.
    리소스 그룹 리소스 그룹을 선택합니다.
    인스턴스 세부 정보
    가상 머신 이름 myVM1을 입력합니다.
    지역 미국 동부를 선택합니다.
    가용성 옵션 가용성 영역을 선택합니다.
    가용성 영역 1을 선택합니다.
    이미지 Ubuntu Server 22.04 LTS를 선택합니다.
    Azure Spot 인스턴스 아니오를 선택합니다.
    크기 VM 크기를 선택하거나 기본 설정을 사용합니다.
    관리자 계정
    사용자 이름 사용자 이름을 입력합니다.
    SSH 공개 키 원본 새 키 쌍을 생성합니다.
    키 쌍 이름 mySSHKey.
    인바운드 포트 규칙
    공용 인바운드 포트 없음
  3. 네트워킹 탭을 선택하거나 다음: 디스크, 다음: 네트워킹을 차례로 선택합니다.

  4. 네트워킹 탭에서 다음을 선택하거나 입력합니다.

    설정
    네트워크 인터페이스
    가상 네트워크 가상 네트워크를 선택합니다.
    서브넷 be-subnet.
    공용 IP 없음을 선택합니다.
    NIC 네트워크 보안 그룹 추가 없음을 선택합니다.
    부하 분산
    기존 부하 분산 솔루션 뒤에 이 가상 머신을 배치하시겠습니까? 를 선택합니다.
    부하 분산 설정
    부하 분산 옵션 Azure 부하 분산을 선택합니다.
    부하 분산 장치 선택 myLoadBalancer를 선택합니다.
    백 엔드 풀 선택 myBackendPool을 선택합니다.
  5. 검토 + 만들기를 선택합니다.

  6. 설정을 검토한 다음, 만들기를 선택합니다.

  7. 1~6단계를 반복하여 HA용 백 엔드 서버 VM을 1개 이상 사용할 수 있습니다.

엔드포인트에 전달 규칙을 만드는 중

  1. 로그인하고 ip_fwd.sh 스크립트를 백 엔드 서버 VM에 복사합니다.

  2. 다음 옵션을 사용하여 스크립트를 실행합니다.

    sudo ./ip_fwd.sh -i eth0 -f 1433 -a <FQDN/IP> -b 1433
    

    자리 표시자 <FQDN/IP>를 대상 SQL Server IP로 설정합니다.

    참고 항목

    Azure DNS 영역에 레코드를 추가하지 않으면 온-프레미스 SQL Server에 대해 FQDN이 작동하지 않습니다.

  3. 다음 명령을 실행하고 백 엔드 서버 VM에서 iptable을 확인합니다. iptable에서 대상 IP를 통해 하나의 레코드를 볼 수 있습니다.

    sudo iptables -t nat -v -L PREROUTING -n --line-number**
    

    명령 레코드를 보여 주는 스크린샷.

    참고 항목

    SQL Server 또는 데이터 원본이 둘 이상 있는 경우 여러 개의 부하 분산 장치 규칙과 다른 포트를 사용하는 IP 테이블 레코드를 정의해야 합니다. 그렇지 않으면 충돌이 발생합니다. 예를 들면 다음과 같습니다.

    부하 분산 장치 규칙의 포트 부하 분산 규칙의 백 엔드 포트 백 엔드 서버 VM에서 실행되는 명령
    SQL Server 1 1433 1433 sudo ./ip_fwd.sh -i eth0 -f 1433 -a <FQDN/IP> -b 1433
    SQL Server 2 1434 1434 sudo ./ip_fwd.sh -i eth0 -f 1434 -a <FQDN/IP> -b 1433

    참고 항목

    VM(가상 머신) 내의 구성이 영구적이지 않다는 점에 유의해야 합니다. 즉, VM이 다시 시작될 때마다 재구성이 필요합니다.

  1. 왼쪽 메뉴에서 모든 서비스를 선택하고 모든 리소스를 선택한 다음, 리소스 목록에서 데이터 팩터리를 선택합니다.

  2. 작성 및 모니터링을 선택하여 별도의 탭에서 Data Factory UI를 선택합니다.

  3. 관리 탭으로 이동한 다음 관리형 프라이빗 엔드포인트 섹션으로 이동합니다.

  4. 관리형 프라이빗 엔드포인트에서 + 새로 만들기를 선택합니다.

  5. 목록에서 Private Link 서비스 타일, 계속을 차례로 선택합니다.

  6. 프라이빗 엔드포인트의 이름을 입력하고 프라이빗 링크 서비스 목록에서 myPrivateLinkService를 선택합니다.

  7. 대상 온-프레미스 SQL Server의 <FQDN>를 추가합니다.

    프라이빗 엔드포인트 설정을 보여 주는 스크린샷.

    참고 항목

    가상 네트워크 내의 가상 머신에 SQL Server 배포하는 경우 privatelink를 추가하여 FQDN을 향상하는 것이 필수입니다. 그렇지 않으면 DNS 설정의 다른 레코드와 충돌합니다. 예를 들어 SQL Server의 FQDN을 sqlserver.westus.cloudapp.azure.net에서 sqlserver.privatelink.westus.cloudapp.azure.net으로 수정만 하면 됩니다.

  8. 프라이빗 엔드포인트 만들기

연결된 서비스 만들기 및 연결 테스트

  1. 관리 탭으로 이동한 다음 연결된 서비스 섹션으로 이동합니다.

  2. 연결된 서비스에서 + 새로 만들기를 선택합니다.

  3. 목록에서 SQL Server 타일, 계속을 차례로 선택합니다.

    연결된 서비스 만들기 페이지를 보여 주는 스크린샷.

  4. 대화형 작성을 사용하도록 설정합니다.

    대화형 작성을 사용하도록 설정하는 방법을 보여 주는 스크린샷

  5. 온-프레미스 SQL Server의 FQDN, 사용자 이름암호를 입력합니다.

  6. 다음으로 연결 테스트를 클릭합니다.

    SQL Server 연결된 서비스 만들기 페이지를 보여 주는 스크린샷

    참고 항목

    둘 이상의 SQL Server가 있고 포트가 다른 여러 부하 분산 장치 규칙 및 IP 테이블 레코드를 정의해야 하는 경우 연결된 서비스를 편집할 때 FQDN 뒤에 포트 이름을 명시적으로 추가해야 합니다. NAT VM은 포트 변환을 처리합니다. 명시적으로 지정하지 않으면 연결이 항상 시간 초과됩니다.

문제 해결

백 엔드 서버 VM으로 이동하여 SQL Server가 작동하는 텔넷을 확인합니다(텔넷 <FQDN> 1433).

프라이빗 엔드포인트를 사용하여 Data Factory Managed VNet에서 Microsoft Azure SQL Managed Instance로 액세스하는 방법을 알아보려면 다음 자습서를 계속 진행하세요.