Share via


자습서: 온-프레미스 워크로드에 대해 Azure Private Resolver를 사용하여 프라이빗 엔드포인트 DNS 인프라 만들기

Azure 프라이빗 엔드포인트가 만들어지면 기본적으로 이름 확인을 위해 Azure 프라이빗 DNS 영역을 사용합니다. 온-프레미스 워크로드가 엔드포인트에 액세스하려면 Azure 호스팅 DNS의 가상 머신에 대한 전달자 또는 프라이빗 엔드포인트에 대한 온-프레미스 DNS 레코드가 필요했습니다. Azure Private Resolver를 사용하면 DNS용 Azure에 VM을 배포하거나 온-프레미스 DNS 서버에서 프라이빗 엔드포인트 DNS 레코드를 관리할 필요성이 줄어듭니다.

자습서에서 만들어진 Azure 리소스 다이어그램.

이 자습서에서는 다음을 하는 방법을 알아볼 수 있습니다.

  • 클라우드 네트워크용 Azure Virtual Network와 가상 네트워크 피어링을 사용하여 시뮬레이션된 온-프레미스 네트워크를 만듭니다.
  • 클라우드 리소스를 시뮬레이션하는 Azure 웹앱을 만듭니다.
  • Azure Virtual Network에서 웹앱에 대한 Azure 프라이빗 엔드포인트를 만듭니다.
  • 클라우드 네트워크에서 Azure Private Resolver를 만듭니다.
  • 시뮬레이션된 온-프레미스 네트워크에서 Azure Virtual Machine을 만들어 웹앱에 대한 DNS 확인을 테스트합니다.

참고 항목

피어링이 포함된 Azure Virtual Network는 이 자습서의 목적에 따라 온-프레미스 네트워크를 시뮬레이션하는 데 사용됩니다. 프로덕션 시나리오에서는 프라이빗 엔드포인트에 액세스하기 위해 Azure Virtual Network에 연결하려면 Express Route 또는 사이트 간 VPN이 필요합니다.

시뮬레이션된 네트워크는 Azure Private Resolver를 가상 네트워크의 DNS 서버로 사용하여 구성됩니다. 프로덕션 시나리오에서 온-프레미스 리소스는 이름 확인을 위해 로컬 DNS 서버를 사용합니다. Azure Private Resolver에 대한 조건부 전달자는 온-프레미스 DNS 서버에서 프라이빗 엔드포인트 DNS 레코드를 확인하는 데 사용됩니다. DNS 서버의 조건부 전달자 구성에 대한 자세한 내용은 공급자의 설명서를 참조하세요.

필수 조건

Azure에 로그인

Azure 계정을 사용하여 Azure Portal 에 로그인합니다.

개요

Azure 웹앱용 가상 네트워크와 시뮬레이션된 온-프레미스 네트워크가 자습서의 리소스에 사용됩니다. 두 개의 가상 네트워크를 만들고 이를 피어링하여 온-프레미스와 Azure 간의 Express Route 또는 VPN 연결을 시뮬레이션합니다. Azure Bastion 호스트는 테스트 가상 머신에 연결하기 위해 시뮬레이션된 온-프레미스 네트워크에 배포됩니다. 테스트 가상 머신은 웹앱에 대한 프라이빗 엔드포인트 연결 및 DNS 확인을 테스트하는 데 사용됩니다.

다음 리소스는 이 자습서에서 온-프레미스 및 클라우드 네트워크 인프라를 시뮬레이션하는 데 사용됩니다.

리소스 이름 설명
시뮬레이션된 온-프레미스 가상 네트워크 vnet-1 온-프레미스 네트워크를 시뮬레이션하는 가상 네트워크입니다.
클라우드 가상 네트워크 vnet-2 Azure 웹앱이 배포되는 가상 네트워크입니다.
베스천 호스트 bastion 시뮬레이션된 온-프레미스 네트워크의 가상 머신에 연결하는 데 사용되는 Ba베스천 호스트입니다.
테스트 가상 머신 vm-1 웹앱 및 DNS 확인에 대한 프라이빗 엔드포인트 연결을 테스트하는 데 사용되는 가상 머신입니다.
가상 네트워크 피어 vnet-1-to-vnet-2 시뮬레이션된 온-프레미스 네트워크와 클라우드 가상 네트워크 간의 가상 네트워크 피어입니다.
가상 네트워크 피어 vnet-2-to-vnet-1 클라우드 가상 네트워크와 시뮬레이션된 온-프레미스 네트워크 간의 가상 네트워크 피어입니다.

가상 네트워크 및 Azure 베스천 호스트 만들기

다음 프로시저에서는 리소스 서브넷, Azure Bastion 서브넷 및 베스천 호스트가 포함된 가상 네트워크를 만듭니다.

  1. 포털에서 가상 네트워크를 검색하여 선택합니다.

  2. 가상 네트워크 페이지에서 + 만들기를 선택합니다.

  3. 가상 네트워크 만들기기본 사항 탭에서 다음 정보를 입력하거나 선택합니다.

    설정
    프로젝트 세부 정보
    Subscription 구독을 선택합니다.
    Resource group 새로 만들기를 선택합니다.
    이름으로 test-rg를 입력합니다.
    확인을 선택합니다.
    인스턴스 세부 정보
    Name vnet-1을 입력합니다.
    지역 미국 동부 2를 선택합니다.

    Azure Portal에서 가상 네트워크를 만들기 위한 기본 탭의 스크린샷.

  4. 다음을 선택하여 보안 탭으로 이동합니다.

  5. Azure Bastion 섹션에서 Bastion 사용을 선택합니다.

    Bastion은 브라우저를 사용하여 개인 IP 주소를 사용하여 SSH(보안 셸) 또는 RDP(원격 데스크톱 프로토콜)를 통해 가상 네트워크의 VM에 연결합니다. VM에는 공용 IP 주소, 클라이언트 소프트웨어 또는 특수 구성이 필요하지 않습니다. 자세한 내용은 Azure Bastion이란?을 참조하세요.

    참고 항목

    시간당 가격은 아웃바운드 데이터 사용량에 관계없이 Bastion이 배포되는 순간부터 시작됩니다. 자세한 내용은 가격 책정SKU를 참조하세요. 자습서 또는 테스트의 일부로 Bastion을 배포하는 경우 이 리소스 사용을 마친 후 삭제하는 것이 좋습니다.

  6. Azure Bastion에서 다음 정보를 입력하거나 선택합니다.

    설정
    Azure Bastion 호스트 이름 bastion을 입력합니다.
    Azure Bastion 공용 IP 주소 공용 IP 주소 만들기를 선택합니다.
    이름에 public-ip-bastion을 입력합니다.
    확인을 선택합니다.

    Azure Portal에서 가상 네트워크를 만드는 과정에서 Azure 베스천 호스트를 사용하도록 설정하기 위한 옵션 스크린샷.

  7. 다음을 선택하여 IP 주소 탭으로 이동합니다.

  8. 서브넷의 주소 공간 입력란에서 기본 서브넷을 선택합니다.

  9. 서브넷 편집에서 다음 정보를 입력하거나 선택합니다.

    설정
    서브넷 세부 정보
    서브넷 템플릿 기본값인 기본값을 그대로 둡니다.
    속성 subnet-1을 입력합니다.
    시작 주소 기본값인 10.0.0.0을 그대로 둡니다.
    서브넷 크기 기본값인 /24(256개 주소)를 그대로 둡니다.

    서브넷 구성 세부 정보 스크린샷.

  10. 저장을 선택합니다.

  11. 창 하단에서 검토 + 만들기를 선택합니다. 유효성 검사를 통과하면 만들기를 선택합니다.

베스천 호스트 배포가 완료되는 데 몇 분 정도 걸립니다. 베스천 호스트는 자습서의 뒷부분에서 “온-프레미스” 가상 머신에 연결하여 프라이빗 엔드포인트를 테스트하는 데 사용됩니다. 가상 네트워크가 만들어지면 다음 단계를 진행할 수 있습니다.

클라우드 가상 네트워크 만들기

이전 단계를 반복하여 Azure 웹앱 프라이빗 엔드포인트에 대한 클라우드 가상 네트워크를 만듭니다. 클라우드 가상 네트워크에 대한 값을 다음 값으로 바꿉니다.

참고 항목

클라우드 가상 네트워크의 경우 Azure Bastion 배포 섹션을 건너뛸 수 있습니다. 베스천 호스트는 시뮬레이션된 온-프레미스 네트워크에만 필요합니다.

설정
속성 vnet-2
위치 미국 동부 2
주소 공간 10.1.0.0/16
서브넷 이름 subnet-1
서브넷 주소 범위 10.1.0.0/24

가상 네트워크 피어 만들기

다음 단계를 사용하여 vnet1vnet2 간에 양방향 네트워크 피어를 만듭니다.

  1. 포털 맨 위에 있는 검색 상자에 가상 네트워크를 입력합니다. 검색 결과에서 가상 네트워크를 선택합니다.

  2. vnet-1을 선택합니다.

  3. 설정에서 피어링을 선택합니다.

  4. + 추가를 선택합니다.

  5. 피어링 추가에서 다음 정보를 입력하거나 선택합니다.

    설정
    이 가상 네트워크
    피어링 링크 이름 vnet-1에서 vnet-2로를 입력합니다.
    'vnet-1'이 'vnet-2'에 액세스하도록 허용 선택한 상태(기본값)를 그대로 둡니다.
    'vnet-1'이 'vnet-2'에서 전달된 트래픽을 수신하도록 허용 확인란을 선택합니다.
    'vnet-1'의 게이트웨이가 트래픽을 'vnet-2'로 전달하도록 허용 선택 취소된 기본값을 그대로 둡니다.
    'vnet-1'을 사용하여 'vnet-2' 원격 게이트웨이 사용 선택 취소된 기본값을 그대로 둡니다.
    원격 가상 네트워크
    피어링 링크 이름 vnet-2에서 vnet-1으로를 입력합니다.
    가상 네트워크 배포 모델 Resource Manager의 기본값을 그대로 둡니다.
    Subscription 구독을 선택합니다.
    가상 네트워크 vnet-2를 선택합니다.
    'vnet-2'가 'vnet-1'에 액세스하도록 허용 선택한 상태(기본값)를 그대로 둡니다.
    'vnet-2'가 'vnet-1'에서 전달된 트래픽을 수신하도록 허용 확인란을 선택합니다.
    'vnet-2'의 게이트웨이가 트래픽을 'vnet-1'로 전달하도록 허용 선택 취소된 기본값을 그대로 둡니다.
    'vnet-2'를 사용하여 'vnet-1'의 원격 게이트웨이 사용 선택 취소된 기본값을 그대로 둡니다.

    Azure Portal의 피어링 추가 스크린샷.

  6. 추가를 선택합니다.

웹앱 만들기

  1. 포털 맨 위에 있는 검색 상자에 App Service를 입력합니다. 검색 결과에서 App Services를 선택합니다.

  2. + 만들기를 선택합니다.

  3. 웹앱 만들기기본 탭에서 다음 정보를 입력하거나 선택합니다.

    설정
    프로젝트 세부 정보
    Subscription 구독을 선택합니다.
    리소스 그룹 test-rg를 선택합니다.
    인스턴스 세부 정보
    이름 웹앱의 고유한 이름을 입력합니다. webapp8675라는 이름은 이 자습서의 예제에 사용됩니다.
    게시 코드를 선택합니다.
    런타임 스택 .NET 6(LTS)를 선택합니다.
    운영 체제 Windows를 선택합니다.
    지역 미국 동부 2를 선택합니다.
    가격 책정 계획
    Windows 플랜(미국 서부 2) 기본 이름을 그대로 둡니다.
    요금제 크기 변경을 선택합니다.
  4. 사양 선택기에서 워크로드에 대한 프로덕션을 선택합니다.

  5. 권장 가격 책정 계층에서 P1V2를 선택합니다.

  6. 적용을 선택합니다.

  7. 다음: 배포를 선택합니다.

  8. 다음: 네트워킹을 선택합니다.

  9. ‘퍼블릭 액세스 사용’을 false로 변경합니다.

  10. 검토 + 만들기를 선택합니다.

  11. 만들기를 선택합니다.

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

Azure 프라이빗 엔드포인트는 가상 네트워크에서 지원되는 Azure 서비스에 대한 네트워크 인터페이스를 만듭니다. 프라이빗 엔드포인트를 사용하면 Azure Virtual Network 또는 온-프레미스 네트워크의 프라이빗 연결에서 Azure 서비스에 액세스할 수 있습니다.

이전에 만든 웹앱에 대한 프라이빗 엔드포인트를 만듭니다.

  1. 포털 상단의 검색 상자에 프라이빗 엔드포인트를 입력합니다. 검색 결과에서 프라이빗 엔드포인트를 선택합니다.

  2. + 만들기를 선택합니다.

  3. 프라이빗 엔드포인트 만들기기본 탭에서 다음 정보를 입력하거나 선택합니다.

    설정
    프로젝트 세부 정보
    구독 구독 선택
    Resource group test-rg를 선택합니다.
    인스턴스 세부 정보
    이름 private-endpoint를 입력합니다.
    네트워크 인터페이스 이름 기본 이름을 그대로 둡니다.
    지역 미국 동부 2를 선택합니다.
  4. 다음: 리소스를 선택합니다.

  5. 리소스 탭에서 다음 정보를 입력하거나 선택합니다.

    설정
    연결 방법 내 디렉터리의 Azure 리소스에 연결을 선택합니다.
    Subscription 구독을 선택합니다.
    리소스 유형 Microsoft.Web/sites를 선택합니다.
    리소스 웹앱을 선택합니다. webapp8675라는 이름은 이 자습서의 예제에 사용됩니다.
    대상 하위 리소스 사이트를 선택합니다.
  6. 다음: Virtual Network를 선택합니다.

  7. 가상 네트워크 탭에서 다음 정보를 입력하거나 선택합니다.

    설정
    네트워킹
    가상 네트워크 vnet-2(test-rg)를 선택합니다.
    서브넷 subnet-1을 선택합니다.
    프라이빗 엔드포인트에 대한 네트워크 정책 사용 안 함(기본값)을 그대로 둡니다.
    개인 IP 구성 고정적으로 IP 주소 할당을 선택합니다.
    이름 ipconfig-1을 입력합니다.
    개인 IP 10.1.0.10을 입력합니다.
  8. 다음: DNS를 선택합니다.

  9. DNS 탭에 기본값을 그대로 둡니다.

  10. 다음: 태그를 선택하고 다음: 검토 + 만들기를 선택합니다.

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

프라이빗 확인자 만들기

프라이빗 엔드포인트가 있는 가상 네트워크에 프라이빗 확인자를 만듭니다. 확인자는 시뮬레이션된 온-프레미스 워크로드로부터 DNS 요청을 수신합니다. 이러한 요청은 Azure에서 제공하는 DNS로 전달됩니다. Azure에서 제공하는 DNS는 프라이빗 엔드포인트에 대한 Azure 프라이빗 DNS 영역을 확인하고 IP 주소를 온-프레미스 워크로드에 반환합니다.

  1. 포털 맨 위에 있는 검색 상자에 DNS Private Resolver를 입력합니다. 검색 결과에서 DNS 프라이빗 확인자를 선택합니다.

  2. + 만들기를 선택합니다.

  3. DNS 프라이빗 확인자 만들기기본 탭에서 다음 정보를 입력하거나 선택합니다.

    설정
    프로젝트 세부 정보
    Subscription 구독을 선택합니다.
    Resource group test-rg를 선택합니다.
    인스턴스 세부 정보
    이름 private-resolver를 입력합니다.
    지역 (미국) 미국 동부 2를 선택합니다.
    Virtual Network
    Virtual Network vnet-2를 선택합니다.
  4. 다음: 인바운드 규칙을 선택합니다.

  5. 인바운드 엔드포인트에서 + 엔드포인트 추가를 선택합니다.

  6. 인바운드 엔드포인트 추가에서 다음 정보를 입력하거나 선택합니다.

    설정
    엔드포인트 이름 inbound-endpoint를 입력합니다.
    서브넷 새로 만들기를 선택합니다.
    이름subnet-resolver를 입력합니다.
    기본 서브넷 주소 범위를 그대로 둡니다.
    만들기를 선택합니다.
  7. 저장을 선택합니다.

  8. 검토 + 만들기를 선택합니다.

  9. 만들기를 선택합니다.

프라이빗 확인자 배포가 완료되면 다음 단계를 계속 진행합니다.

시뮬레이션된 네트워크에 대한 DNS 설정

다음 단계에서는 프라이빗 확인자를 시뮬레이션된 온-프레미스 네트워크 vnet-1의 기본 DNS 서버로 설정합니다.

프로덕션 환경에서는 이러한 단계가 필요하지 않으며 프라이빗 엔드포인트에 대한 DNS 확인을 시뮬레이션하는 데만 사용됩니다. 로컬 DNS 서버에는 온-프레미스 네트워크의 프라이빗 엔드포인트 DNS 레코드를 확인하기 위해 이 IP 주소에 대한 조건부 전달자가 있습니다.

  1. 포털 맨 위에 있는 검색 상자에 DNS Private Resolver를 입력합니다. 검색 결과에서 DNS 프라이빗 확인자를 선택합니다.

  2. private-resolver를 선택합니다.

  3. 설정에서 인바운드 엔드포인트를 선택합니다.

  4. inbound-endpoint라는 엔드포인트의 IP 주소를 기록해 둡니다. 이 자습서의 예제에서 IP 주소는 10.1.1.4입니다.

  5. 포털 맨 위에 있는 검색 상자에 가상 네트워크를 입력합니다. 검색 결과에서 가상 네트워크를 선택합니다.

  6. vnet-1을 선택합니다.

  7. 설정에서 DNS 서버를 선택합니다.

  8. DNS 서버에서 사용자 지정를 선택합니다.

  9. 이전에 적어 둔 IP 주소를 입력합니다. 이 자습서의 예제에서 IP 주소는 10.1.1.4입니다.

  10. 저장을 선택합니다.

테스트 가상 머신 만들기

다음 절차에서는 가상 네트워크에 vm-1이라는 테스트 VM(가상 머신)을 만듭니다.

  1. 포털에서 가상 머신을 검색하여 선택합니다.

  2. 가상 머신에서 + 만들기를 선택한 다음, +Azure 가상 머신을 선택합니다.

  3. 가상 머신 만들기기본 탭에서 다음 정보를 입력하거나 선택합니다.

    설정
    프로젝트 세부 정보
    Subscription 구독을 선택합니다.
    Resource group test-rg를 선택합니다.
    인스턴스 세부 정보
    가상 머신 이름 vm-1을 입력합니다.
    지역 미국 동부 2를 선택합니다.
    가용성 옵션 인프라 중복이 필요하지 않습니다.를 선택합니다.
    보안 유형 기본값인 표준을 그대로 둡니다.
    이미지 Windows Server 2022 Datacente - x64 Gen2를 선택합니다.
    VM 아키텍처 x64(기본값)를 그대로 둡니다.
    크기 크기를 선택합니다.
    관리자 계정
    인증 유형 암호를 선택합니다.
    사용자 이름 azureuser를 입력합니다.
    암호 암호를 입력합니다.
    암호 확인 암호를 다시 입력합니다.
    인바운드 포트 규칙
    공용 인바운드 포트 없음을 선택합니다.
  4. 페이지 위쪽에 있는 네트워킹 탭을 선택합니다.

  5. 네트워킹 탭에서 다음 정보를 입력하거나 선택합니다.

    설정
    네트워크 인터페이스
    가상 네트워크 vnet-1을 선택합니다.
    서브넷 subnet-1(10.0.0.0/24)을 선택합니다.
    공용 IP 없음을 선택합니다.
    NIC 네트워크 보안 그룹 추가 고급을 선택합니다.
    네트워크 보안 그룹 구성 새로 만들기를 선택합니다.
    이름으로 nsg-1을 입력합니다.
    나머지는 기본값으로 두고 확인을 선택합니다.
  6. 나머지 설정은 기본값으로 두고 검토 + 만들기를 선택합니다.

  7. 설정을 검토하고 생성를 선택합니다.

참고 항목

베스천 호스트가 있는 가상 네트워크의 가상 머신에는 공용 IP 주소가 필요하지 않습니다. Bastion은 공용 IP를 제공하고 VM은 개인 IP를 사용하여 네트워크 내에서 통신합니다. 베스천 호스트된 가상 네트워크의 모든 VM에서 공용 IP를 제거할 수 있습니다. 자세한 내용은 Azure VM에서 공용 IP 주소 연결 해제를 참조하세요.

참고 항목

Azure는 공용 IP 주소가 할당되지 않았거나 내부 기본 Azure Load Balancer의 백 엔드 풀에 있는 VM에 대한 기본 아웃바운드 액세스 IP를 제공합니다. 기본 아웃바운드 액세스 IP 메커니즘은 구성할 수 없는 아웃바운드 IP 주소를 제공합니다.

다음 이벤트 중 하나가 발생하면 기본 아웃바운드 액세스 IP가 사용하지 않도록 설정됩니다.

  • 공용 IP 주소가 VM에 할당됩니다.
  • VM은 아웃바운드 규칙 유무에 관계없이 표준 Load Balancer의 백 엔드 풀에 배치됩니다.
  • Azure NAT Gateway 리소스는 VM의 서브넷에 할당됩니다.

유연한 오케스트레이션 모드에서 가상 머신 확장 집합을 사용하여 만드는 VM에는 기본 아웃바운드 액세스 권한이 없습니다.

Azure의 아웃바운드 연결에 대한 자세한 내용은 Azure의 기본 아웃바운드 액세스아웃바운드 연결에 SNAT(원본 네트워크 주소 변환) 사용을 참조하세요.

프라이빗 엔드포인트에 연결 테스트

이 섹션에서는 이전 단계에서 만든 가상 머신을 사용하여 프라이빗 엔드포인트에서 웹앱에 연결합니다.

  1. 포털 맨 위에 있는 검색 상자에 가상 머신을 입력합니다. 검색 결과에서 가상 머신을 선택합니다.

  2. vm-1을 선택합니다.

  3. vm-1에 대한 개요 페이지에서 연결을 선택한 다음 배스천을 선택합니다.

  4. 가상 머신 만들기에서 입력한 사용자 이름과 암호를 입력합니다.

  5. 연결 단추를 선택합니다.

  6. 연결한 후 서버에서 Windows PowerShell을 엽니다.

  7. nslookup <webapp-name>.azurewebsites.net를 입력합니다. <webapp-name>을 이전 단계에서 만든 웹앱의 이름으로 바꿉니다. 다음 출력과 유사한 메시지가 표시됩니다.

    Server:  UnKnown
    Address:  168.63.129.16
    
    Non-authoritative answer:
    Name:    webapp.privatelink.azurewebsites.net
    Address:  10.1.0.10
    Aliases:  webapp.azurewebsites.net
    

    웹앱 이름에 대해 10.1.0.10이라는 개인 IP 주소가 반환됩니다. 이 주소는 이전에 만든 vnet-2 가상 네트워크의 subnet-1 서브넷에 있습니다.

  8. Microsoft Edge를 열고 웹앱 https://<webapp-name>.azurewebsites.net의 URL을 입력합니다.

  9. 기본 웹앱 페이지가 표시되는지 확인합니다.

    기본 웹앱 페이지를 보여 주는 Microsoft Edge의 스크린샷

  10. vm-1에 대한 연결을 닫습니다.

  11. 로컬 컴퓨터에서 웹 브라우저를 열고 웹앱 https://<webapp-name>.azurewebsites.net의 URL을 입력합니다.

  12. 403 페이지가 표시되는지 확인합니다. 이 페이지는 웹앱이 외부에서 액세스할 수 없음을 나타냅니다.

    외부 웹앱 주소에 대해 오류 403이 있는 파란색 페이지를 보여 주는 웹 브라우저의 스크린샷

리소스 정리

만든 리소스 사용을 마치면 리소스 그룹과 해당 리소스를 모두 삭제할 수 있습니다.

  1. Azure Portal에서 리소스 그룹을 검색하고 선택합니다.

  2. 리소스 그룹 페이지에서 test-rg 리소스 그룹을 선택합니다.

  3. test-rg 페이지에서 리소스 그룹 삭제를 선택합니다.

  4. 삭제 확인을 위한 리소스 그룹 이름 입력test-rg를 입력한 다음 삭제를 선택합니다.

다음 단계

이 자습서에서는 프라이빗 확인자 및 프라이빗 엔드포인트를 배포하는 방법을 알아보았습니다. 시뮬레이션된 온-프레미스 네트워크에서 프라이빗 엔드포인트에 대한 연결을 테스트했습니다.

아래 내용에 대한 다음 문서를 진행하세요.