연습 - 환경 설정
이 연습에서는 Load Balancer를 포함하는 미리 구성된 환경을 설정하고, Load Balancer의 상태를 모니터링하는 차트를 만듭니다.
이 연습은 선택 사항입니다. 연습을 완료하려면 Azure 리소스를 만들 수 있는 Azure 구독에 대한 액세스 권한이 필요합니다. Azure 구독이 아직 없는 경우, 시작하기 전에 체험 계정을 만듭니다.
환경 설정
Azure Portal에 로그인합니다.
오른쪽 위의 메뉴 모음에서 Cloud Shell을 선택합니다.
Bash를 선택합니다.
다음 명령을 실행하여 이 연습에 사용할 스크립트를 다운로드합니다.
git clone https://github.com/MicrosoftDocs/mslearn-troubleshoot-inbound-network-connectivity-azure-load-balancer load-balancer
load-balancer/src/scripts 폴더로 이동합니다.
cd ~/load-balancer/src/scripts
다음 명령을 실행하여 VM의 사용자 이름을 설정합니다. 사용자 이름을 다른 이름으로 변경할 수 있습니다. 연습의 뒷부분에서 사용자 이름이 필요하므로 사용하는 이름을 적어 둡니다.
export USERNAME=azureuser
다음 명령을 실행하여 스크립트를 통해 생성된 가상 머신의 암호를 만듭니다. 암호는 변수에 저장되며 나중에 필요한 경우를 대비해 passwd.txt 텍스트 파일에도 기록됩니다.
export PASSWORD=$(openssl rand -base64 32) echo $PASSWORD > passwd.txt
리소스 그룹 이름을 설정합니다.
export RESOURCEGROUP=learn-ts-loadbalancer-rg
위치를 설정합니다. eastus 값을 사용자에게 가까운 위치로 바꿉니다.
export LOCATION=eastus
다음 목록에는 사용할 수 있는 몇 가지 위치 값이 있습니다.
- westus2
- southcentralus
- centralus
- eastus
- westeurope
- southeastasia
- japaneast
- brazilsouth
- australiasoutheast
- centralindia
다음 명령을 실행하여 리소스 그룹을 만듭니다.
az group create --name $RESOURCEGROUP --location $LOCATION
다음 명령을 실행하여 부하 분산 장치, 가상 머신 및 가상 네트워크를 만듭니다.
bash setup.sh $RESOURCEGROUP
스크립트를 실행하는 데 최대 25분이 걸립니다.
생성된 리소스 확인
Azure Portal에서 리소스 그룹을 검색합니다.
learn-ts-loadbalancer-rg를 선택합니다.
종류를 기준으로 리소스 목록을 정렬합니다.
리소스 그룹에는 이 표에 표시된 리소스를 포함되어야 합니다.
이름 형식 Description retailappvm1_disk1_xxx 및 retailappvm1_disk2_xxx 디스크 두 VM의 가상 하드 디스크입니다. retailapplb 부하 분산 장치 VM에서 실행되는 앱의 부하 분산 장치입니다. 부하 분산 장치의 백 엔드 풀은 retailappvm1 및 retailappvm2 가상 머신을 가리킵니다. nicvm1 및 nicvm2 네트워크 인터페이스 두 VM의 네트워크 인터페이스입니다. retailappnicvm1nsg 및 retailappnicvm2nsg NSG(네트워크 보안 그룹) 이름 각 VM으로 들어오는 트래픽을 제어하는 NSG입니다. retailappnsg 네트워크 보안 그룹 두 가상 머신 모두에 대한 초기 필터 역할을 하지만 각 가상 머신에 대한 NSG를 사용하면 컴퓨터별로 트래픽을 필터링할 수 있습니다. retailappip 공용 IP 주소 부하 분산 장치에 대한 프런트 엔드 액세스를 제공하는 공용 IP 주소입니다. retailappvm1 및 retailappvm2 가상 머신 소매 애플리케이션을 실행하는 VM입니다. retailappvmjumpbox 가상 머신 가상 네트워크에 있지만 공용 IP 주소가 있는 VM입니다. 관리자는 이 가상 머신에 로그인하여 프라이빗 IP 주소만 있는 retailappvm1 및 retailappvm2 VM에 액세스할 수 있습니다. retailappvnet 가상 네트워크 VM의 가상 네트워크입니다. retailapplb 부하 분산 장치를 선택합니다.
설정에서 부하 분산 규칙을 선택합니다.
retailapprule을 선택합니다. 부하 분산 장치는 프런트 엔드 주소의 포트 80에 도착하는 트래픽을 백 엔드 풀에 있는 머신의 포트 80으로 라우팅하도록 구성되었습니다.
retailapprule 창을 닫습니다.
설정에서 상태 프로브를 선택합니다.
retailapphealthprobe를 선택합니다. 백 엔드 풀의 상태 프로브도 메시지를 포트 80으로 전송하여, 각 가상 머신에서 애플리케이션을 사용할 수 있는지 확인합니다.
retailapphealthprobe 창을 닫습니다.
부하 분산 장치 테스트
Azure Cloud Shell로 돌아갑니다.
다음 명령을 실행하여 부하 분산 장치 프런트 엔드의 공용 IP 주소를 찾습니다.
bash findip.sh
브라우저 창을 열고 해당 IP 주소로 이동합니다. 결과는 부하 분산 장치에서 요청을 라우팅한 방법에 따라 retailappvm1 또는 retailappvm2 메시지를 포함하는 페이지입니다.
Cloud Shell에서 다음 명령을 실행하여 src/stresstest 폴더로 이동합니다.
cd ~/load-balancer/src/stresstest
해당 폴더에는 Load Balancer를 통해 요청을 가상 머신으로 전송하는 수백 명의 동시 사용자를 시뮬레이트하는 .NET Core 애플리케이션이 포함되어 있습니다.
다음 명령을 실행하여 애플리케이션을 시작합니다. <ip address>를 부하 분산 장치의 프런트 엔드 IP 주소로 바꿉니다.
dotnet run <ip address>
애플리케이션은 retailappvm1 또는 retailappvm2에서 응답이 수신되었는지를 나타내는 일련의 메시지로 응답합니다.
애플리케이션을 5분 동안 실행합니다. Enter 키를 눌러 애플리케이션을 중지합니다.
메트릭을 모니터링하는 차트 만들기
Azure Portal에서 learn-ts-loadbalancer-rg 리소스 그룹으로 이동합니다.
retailapplb 부하 분산 장치를 선택합니다.
모니터링에서 메트릭을 선택합니다.
빈 차트에 다음 메트릭을 추가합니다.
속성 값 범위 retailapplb 메트릭 네임스페이스 부하 분산 장치 표준 메트릭 메트릭 패킷 개수 집계 평균 페이지 맨 위에서 시간 범위를 지난 30분으로 설정합니다. 여기에 표시된 것과 유사한 차트가 표시됩니다. 평균 패킷 개수의 최댓값을 확인합니다.
대시보드에 고정을 선택합니다.
새로 만들기를 선택하고 다음 값을 입력합니다.
필드 값 형식 Private 대시보드 이름 dashboard-learn-ts-loadbalancer 만들기 및 고정을 선택합니다.
새 차트를 선택하고 다음 메트릭을 추가합니다.
속성 값 범위 retailapplb 메트릭 네임스페이스 부하 분산 장치 표준 메트릭 메트릭 상태 프로브 상태 집계 평균 메트릭 추가를 선택하고, 다음 값을 입력하여 다른 메트릭을 차트에 추가합니다.
속성 값 범위 retailapplb 메트릭 네임스페이스 부하 분산 장치 표준 메트릭 메트릭 데이터 경로 가용성 집계 평균 시간 범위를 지난 30분으로 설정합니다. 차트에서 두 통계가 모두 100%로 보고됩니다.
대시보드에 고정>기존을 선택합니다.
대시보드에서 dashboard-learn-ts-loadbalancer를 선택합니다.
고정을 선택합니다.
이제 올바르게 실행되는 시스템의 메트릭 기준 집합이 생성되었습니다.