ㅁ 연습 시나리오
필수 조건
- PremiumV2 계층 이상의 App Service 요금제가 Azure 구독에 배포된 Azure 웹앱
- 아래 단계에서는 필요한 리소스 그룹과 웹앱을 만드는 방법을 살펴봅니다.
- M07 폴더에서 parameters.json을 찾아서 엽니다. 메모장에서 열어 “value” 줄을 찾습니다. "GEN-UNIQUE". 자리 표시자 GEN-UNIQUE 문자열을 웹앱 이름의 고유 값으로 바꿉니다. 이 변경 사항을 저장합니다.
- Azure Portal의 Cloud Shell 창에서 PowerShell 세션을 엽니다.
- Cloud Shell 창의 도구 모음에서 파일 관리 아이콘을 선택하고 드롭다운 메뉴에서 업로드를 선택한 후 template.json 및 parameters.json 파일을 Cloud Shell 홈 디렉터리에 하나씩 업로드합니다.
- 작업 1: 리소스 그룹 만들기
- 작업 2: 가상 네트워크 및 베스천 호스트 만들기
- 작업 3: 테스트 가상 머신 만들기
- 작업 4: 프라이빗 엔드포인트 만들기
- 작업 5: 프라이빗 DNS 영역 구성
- 작업 6: 프라이빗 엔드포인트에 대한 연결 테스트
New-AzResourceGroup -Name 'CreatePrivateEndpointQS-rg' -Location 'eastus'
다음 ARM 템플릿을 배포하여 이 연습에 필요한 PremiumV2-tier Azure 웹앱을 만듭니다.
$RGName = "CreatePrivateEndpointQS-rg"
New-AzResourceGroupDeployment -ResourceGroupName $RGName -TemplateFile template.json -TemplateParameterFile parameters.json
(예를 들어 포털에서 배포 상태를 조사하는 동안) “이름이 GEN-UNIQUE인 웹 사이트가 이미 있음”과 같은 오류가 표시되는 경우 템플릿 편집과 관련하여 위에서 언급한 필수 구성 요소로 이동하세요.
가상 네트워크, 서브넷 및 베스천 호스트를 만듭니다.
베스천 호스트는 가상 머신에 안전하게 연결하여 프라이빗 엔드포인트를 테스트하는 데 사용됩니다.
가상 네트워크 및 베스천 호스트 만들기
- New-AzVirtualNetwork
- New-AzPublicIpAddress
- New-AzBastion
## Create backend subnet config. ##
$subnetConfig = New-AzVirtualNetworkSubnetConfig -Name myBackendSubnet -AddressPrefix 10.0.0.0/24
## Create Azure Bastion subnet. ##
$bastsubnetConfig = New-AzVirtualNetworkSubnetConfig -Name AzureBastionSubnet -AddressPrefix 10.0.1.0/24
## Create the virtual network. ##
$parameters1 = @{
Name = 'MyVNet'
ResourceGroupName = 'CreatePrivateEndpointQS-rg'
Location = 'eastus'
AddressPrefix = '10.0.0.0/16'
Subnet = $subnetConfig, $bastsubnetConfig
}
$vnet = New-AzVirtualNetwork @parameters1
## Create public IP address for bastion host. ##
$parameters2 = @{
Name = 'myBastionIP'
ResourceGroupName = 'CreatePrivateEndpointQS-rg'
Location = 'eastus'
Sku = 'Standard'
AllocationMethod = 'Static'
}
$publicip = New-AzPublicIpAddress @parameters2
## Create bastion host ##
$parameters3 = @{
ResourceGroupName = 'CreatePrivateEndpointQS-rg'
Name = 'myBastion'
PublicIpAddress = $publicip
VirtualNetwork = $vnet
}
New-AzBastion @parameters3
이 섹션에서는 프라이빗 엔드포인트를 테스트하는 데 사용될 가상 머신을 만듭니다.
다음 명령을 사용하여 가상 머신을 만듭니다.
- 자격 증명 가져오기(참고: 관리 암호를 입력하라는 메시지가 표시됩니다.)
- New-AzNetworkInterface
- New-AzVM
- New-AzVMConfig
- Set-AzVMOperatingSystem
- Set-AzVMSourceImage
- Add-AzVMNetworkInterface
## Set credentials for server admin and password. ##
$cred = Get-Credential
## Command to get virtual network configuration. ##
$vnet = Get-AzVirtualNetwork -Name myVNet -ResourceGroupName CreatePrivateEndpointQS-rg
## Command to create network interface for VM ##
$parameters1 = @{
Name = 'myNicVM'
ResourceGroupName = 'CreatePrivateEndpointQS-rg'
Location = 'eastus'
Subnet = $vnet.Subnets[0]
}
$nicVM = New-AzNetworkInterface @parameters1
## Create a virtual machine configuration.##
$parameters2 = @{
VMName = 'myVM'
VMSize = 'Standard_DS1_v2'
}
$parameters3 = @{
ComputerName = 'myVM'
Credential = $cred
}
$parameters4 = @{
PublisherName = 'MicrosoftWindowsServer'
Offer = 'WindowsServer'
Skus = '2019-Datacenter'
Version = 'latest'
}
$vmConfig = New-AzVMConfig @parameters2 | Set-AzVMOperatingSystem -Windows @parameters3 | Set-AzVMSourceImage @parameters4 | Add-AzVMNetworkInterface -Id $nicVM.Id
## Create the virtual machine ##
New-AzVM -ResourceGroupName 'CreatePrivateEndpointQS-rg' -Location 'eastus' -VM $vmConfig
Azure는 공용 IP 주소가 할당되지 않았거나 내부 기본 Azure Load Balancer의 백 엔드 풀에 있는 Azure Virtual Machines에 대한 임시 IP를 제공합니다. 임시 IP 메커니즘은 구성할 수 없는 아웃바운드 IP 주소를 제공합니다.
공용 IP 주소가 가상 머신에 할당되거나 아웃바운드 규칙이 있거나 없는 표준 Load Balancer의 백 엔드 풀에 가상 머신이 배치되면 임시 IP가 비활성화됩니다. Azure Virtual Network NAT 게이트웨이 리소스가 가상 머신의 서브넷에 할당되면 임시 IP가 비활성화됩니다.
Azure의 아웃바운드 연결에 대한 자세한 내용은 아웃바운드 연결에 SNAT(원본 네트워크 주소 변환) 사용을 참조하세요.
이 섹션에서는 다음을 사용하여 프라이빗 엔드포인트와 연결을 만듭니다.
- New-AzPrivateLinkServiceConnection
- New-AzPrivateEndpoint
## Place web app into variable. This assumes that only one web app exists in the resource group. ##
$webapp = Get-AzWebApp -ResourceGroupName CreatePrivateEndpointQS-rg
## Create Private Endpoint connection. ##
$parameters1 = @{
Name = 'myConnection'
PrivateLinkServiceId = $webapp.ID
GroupID = 'sites'
}
$privateEndpointConnection = New-AzPrivateLinkServiceConnection @parameters1
## Place virtual network into variable. ##
$vnet = Get-AzVirtualNetwork -ResourceGroupName 'CreatePrivateEndpointQS-rg' -Name 'myVNet'
## Disable private endpoint network policy ##
$vnet.Subnets[0].PrivateEndpointNetworkPolicies = "Disabled"
$vnet | Set-AzVirtualNetwork
## Create private endpoint
$parameters2 = @{
ResourceGroupName = 'CreatePrivateEndpointQS-rg'
Name = 'myPrivateEndpoint'
Location = 'eastus'
Subnet = $vnet.Subnets[0]
PrivateLinkServiceConnection = $privateEndpointConnection
}
New-AzPrivateEndpoint @parameters2
이 섹션에서는 다음을 사용하여 프라이빗 DNS 영역을 만들어 구성합니다.
- New-AzPrivateDnsZone
- New-AzPrivateDnsVirtualNetworkLink
- New-AzPrivateDnsZoneConfig
- New-AzPrivateDnsZoneGroup
## Place virtual network into variable. ##
$vnet = Get-AzVirtualNetwork -ResourceGroupName 'CreatePrivateEndpointQS-rg' -Name 'myVNet'
## Create private dns zone. ##
$parameters1 = @{
ResourceGroupName = 'CreatePrivateEndpointQS-rg'
Name = 'privatelink.azurewebsites.net'
}
$zone = New-AzPrivateDnsZone @parameters1
## Create dns network link. ##
$parameters2 = @{
ResourceGroupName = 'CreatePrivateEndpointQS-rg'
ZoneName = 'privatelink.azurewebsites.net'
Name = 'myLink'
VirtualNetworkId = $vnet.Id
}
$link = New-AzPrivateDnsVirtualNetworkLink @parameters2
## Create DNS configuration ##
$parameters3 = @{
Name = 'privatelink.azurewebsites.net'
PrivateDnsZoneId = $zone.ResourceId
}
$config = New-AzPrivateDnsZoneConfig @parameters3
## Create DNS zone group. ##
$parameters4 = @{
ResourceGroupName = 'CreatePrivateEndpointQS-rg'
PrivateEndpointName = 'myPrivateEndpoint'
Name = 'myZoneGroup'
PrivateDnsZoneConfig = $config
}
New-AzPrivateDnsZoneGroup @parameters4
이 섹션에서는 이전 단계에서 만든 가상 머신을 사용하여 프라이빗 엔드포인트에서 웹앱에 연결합니다.
- Azure 포털
- 왼쪽 탐색 창에서 리소스 그룹을 선택합니다.
- CreatePrivateEndpointQS-rg를 선택합니다.
- myVM을 선택합니다.
- myVM에 대한 개요 페이지에서 연결을 선택한 다음, Bastion을 선택합니다.
- 파란색 Bastion 사용 단추를 선택합니다.
- 가상 머신 만들기에서 입력한 사용자 이름과 암호를 입력합니다.
- 연결한 후 서버에서 Windows PowerShell을 엽니다.
- nslookup <your- webapp-name>.azurewebsites.net을 입력합니다. <your-webapp-name>은 이전 단계에서 만든 웹앱의 이름으로 바꿉니다. 아래 표시된 것과 유사한 메시지가 표시됩니다.
Server: UnKnown
Address: 168.63.129.16
Non-authoritative answer:
Name: mywebapp8675.privatelink.azurewebsites.net
Address: 10.0.0.5
Aliases: mywebapp8675.azurewebsites.net
웹앱 이름에 대해 10.0.0.5의 개인 IP 주소가 반환됩니다. 이 주소는 이전에 만든 가상 네트워크의 서브넷에 있습니다.
- myVM에 대한 베스천 연결에서 Internet Explorer를 엽니다.
- 웹앱의 URL, https://<your-webapp-name>.azurewebsites.net을 입력합니다.
- 애플리케이션이 배포되지 않은 경우 다음과 같은 기본 웹앱 페이지를 받게 됩니다.
- myVM에 대한 연결을 닫습니다.
'클라우드' 카테고리의 다른 글
Azure : 리눅스 웹 서비스 만들기 (docker 활용) (0) | 2024.12.16 |
---|---|
Azure Monitor를 사용하여 부하 분산 장치 리소스 모니터링 (실습) (0) | 2024.11.27 |
Azure 가상 네트워크 서비스 엔드포인트로 PaaS 리소스에 대한 네트워크 액세스 제한 (실습) (0) | 2024.11.26 |
Azure Portal을 사용하여 가상 네트워크에서 DDoS 보호 구성 (실습) (0) | 2024.11.25 |
Azure Firewall Manager를 사용하여 가상 허브 보호 (실습) (0) | 2024.11.25 |