랩: 부하 분산 장치

시나리오

이 모듈에서는 네트워크 트래픽을 분산하는 세 가지 방식 Azure Load Balancer, Azure Traffic Manager, Azure Application Gateway에 대해 알아봅니다. Azure Load Balancer는 애플리케이션에 고가용성 및 네트워크 성능을 제공합니다. Azure Traffic Manager는 서비스 엔드포인트로 전송되는 사용자 트래픽 분산을 제어합니다. Azure Application Gateway는 웹 애플리케이션으로 전송되는 트래픽을 관리하도록 하는 웹 트래픽 부하 분산 장치입니다.

이 랩은 다음 내용을 포함합니다.

  • Azure 부하 분산 장치
  • Azure 트래픽 매니저
  • Azure 애플리케이션 게이트웨이

연습 1: 표준 부하 분산 장치(Load Balancer)를 사용하여 네트워크 트래픽 분산

이 섹션에서는 가상 머신 부하를 분산할 수 있는 공용 부하 분산 장치를 생성합니다. 표준 Load Balancer는 표준 공용 IP 주소만 지원합니다. 따라서 표준 Load Balancer를 만들 때 Load Balancer용 프런트 엔드로 구성되는(기본 이름 : LoadBalancerFrontend) 표준 공용 IP 주소를 생성해야 합니다.

작업 1: 공용 부하 분산 장치 만들기

  1. Azure 포털 왼쪽 상단에서 리소스 만들기 > 네트워킹 > 부하 분산 장치를 클릭합니다.

  2. 부하 분산 장치 만들기 페이지에서 다음 정보를 입력한다. 기본 값은 그대로 두고 검토 + 만들기를 클릭한다.

    설정
    구독 이 랩에서 사용할 구독의 이름
    리소스 그룹 새로 만들기를 선택하고, az5000210 입력
    이름 myLoadBalancer
    지역 (Asia Pacific)동남아시아
    형식 공개
    SKU 표준
    공용 IP 주소 새로 만들기 선택하고, myPublicIP 입력
    가용성 영역 영역 중복

    Screenshot

  3. 유효성 검사에 통과하면 만들기를 클릭한다.

작업 2: 가상 네트워크 생성

  1. Azure 포털 왼쪽 상단에서 + 리소스 만들기 > 네트워킹 > 가상 네트워크를 클릭하고 다음 값을 입력한다.
    • myVnet - 가상 네트워크의 이름
    • az5000210 - 리소스 그룹의 이름

    IP 주소 탭을 선택하고 다음 값을 입력한다.

    • 10.0.0.0/16 - IPv4 주소 공간
    • myBackendSubnet - 서브넷 이름
    • 10.0.0.0/24 - 서브넷 주소 범위 </br>
  2. 검토 + 만들기를 클릭하고, 만들기를 클릭하여 가상 네트워크를 생성한다.

    Screenshot

작업 3: 가상 머신 생성

  1. Azure 포털 왼쪽 상단에서 리소스 만들기 > 컴퓨팅 > 가상 머신을 클릭하고 다음 값을 입력하여 가상 머신을 생성한다.

    • az5000210 - 리소스 그룹으로 선택
    • myVM1 - 가상 머신의 이름
    • Image - Windows Server 2019 Datacenter.
    • localadmin - 사용자 이름
    • Pa55w.rd1234 - 암호
    • HTTP (80) 및 RDP (3389) - 인바운드 포트 규칙 </br>

    Screenshot

  2. 네트워킹 탭을 클릭하고 공용 IP에서 새로 만들기를 클릭한다. IP 주소 이름을 myPIP1로 지정하고 표준 SKU, 확인을 차례로 클릭한다.

    참고: 표준 SKU를 선택하지 않으면 랩 뒷부분에서 문제가 발생합니다.

    Screenshot

  3. 관리 탭을 선택하고 모든 버튼이 아니요 또는 끄기로 설정된 것을 확인한다.

  4. 검토 + 만들기만들기를 차례로 클릭한다.

  5. 위 과정을 반복하여 두 번째 가상 머신 myVM2를 생성한다. 새 공용 IP 주소는 myPIP2로 지정한다.

작업 4: IIS 설치

  1. 모든 리소스를 클릭하여 az5000210 리소스 그룹 내의 myVM1을 선택한다.

  2. 개요 블레이드에서 연결을 클릭하고 RDP를 통해 가상 머신에 연결한다.

  3. localadmin 계정으로 로그인한다.

  4. PowerShell을 실행하고 다음 명령을 입력하여 IIS를 설치한다.

    Install-WindowsFeature Web-Server
    
  5. 1번부터 4번까지 과정을 myVM2에도 반복한다.

작업 5: 부하 분산 장치 리소스 생성

이 섹션에서는 백엔드 주소 풀과 상태 프로브에 대한 부하 분산 장치 설정을 구성하고, 부하 분산 규칙을 지정합니다.

가상 머신에 트래픽을 분산하기 위해 백 엔드 주소 풀에는 부하 분산 장치에 연결된 가상 NIC의 IP 주소가 포함됩니다. VM1VM2를 포함하는 백엔드 풀 myBackendPool을 생성합니다.

  1. 모든 리소스를 선택하여 myLoadBalancer를 클릭한다.

  2. 설정에서 백 엔드 풀을 클릭하고, 추가를 클릭한다.

    Screenshot

  3. 백 엔드 풀 추가 페이지에서 다음을 설정한다.
    • 이름 : myBackendPool
    • 가상 네트워크 : myVNet.
    • 가상 머신 : myVM1my VM2을 해당 IP 주소와 함께 추가 </br>

    Screenshot

  4. 부하 분산 장체 백 엔드 풀 설정에 VM1VM2가 모두 표시되는지 확인한다.

    Screenshot

작업 6: 상태 프로브 생성

부하 분산 장치가 애플리케이션의 상태를 모니터할 수 있도록 상태 프로브를 사용합니다. 상태프로브는 상태 검사에 대한 응답에 기반하여 부하 분산 장치 로테이션에 VM을 추가하거나 제거합니다. VM의 상태를 모니터링하기 위해 상태 프로브 myHealthProbe를 생성합니다.

  1. 부하 분산 장치 블레이드에서 설정상태 프로브를 클릭하고, 추가를 클릭한다.

    Screenshot

  2. 다음 설정을 사용하여 상태 프로브를 추가한다.
    • 이름 : myHealthProbe
    • 프로토콜 : HTTP
    • 포트 : 80
    • 경로 : /
    • 간격 : 15 - 프로브 시도 간 시간 간격
    • 비정상 임계값 : 2 - VM을 비정상 상태로 간주하려면 발생해야 하는 비정상 임계값(연속 프로브 오류 횟수) </br>

    Screenshot

  3. 확인을 클릭한다.

작업 7: 부하 분산 규칙 생성

부하 분산 장치 규칙은 트래픽이 가상 머신에 분산되는 방식을 결정하는 데 사용됩니다. 들어오는 트래픽에 대한 프런트엔드 IP 구성과 트래픽을 수신하기 위한 백엔드 IP 풀, 그리고 필요한 원본 포트 및 대상 포트를 정의합니다. 프런트 엔드 FrontendLoadBalancer에 포트 80을 수신 대기하고, 80번 포트를 사용하여 부하 분산된 네트워크 트래픽을 백 엔드 주소 풀(myBackEndPool)로 전송하는 부하 분산 규칙 myLoadBalancerRuleWeb을 생성합니다.

  1. 부하 분산 장치 블레이드의 설정에서 부하 분산 규칙을 클릭한다.

    Screenshot

  2. 다음 값을 사용하여 부하 분산 규칙을 구성한다.
    • 이름 : myHTTPRule
    • 프로토콜 : TCP
    • 포트 : 80
    • 백 엔드 포트 : 80
    • 백 엔드 풀 : myBackendPool
    • 상태 프로브 : myHealthProbe </br>

      Screenshot

  3. 확인을 클릭한다.

작업 8: 부하 분산 장치 테스트

  1. 개요 화면에서 부하 분산 장치의 공용 IP 주소를 확인한다.

    Screenshot

  2. 공용 IP 주소를 복사하여 브라우저에서 접속한다. IIS 웹 서버의 기본 페이지가 표시된다.

    Screenshot

  3. IIS 기본 페이지를 확인한다.

  4. Azure 포털에서 가상 머신을 클릭한다. myVM1을 선택하고 개요 블레이드에서 중지를 클릭하여 가상머신을 중지한다.

    Screenshot

  5. myVM1 가상 머신을 중지할 때까지 기다렸다가 로드밸런서의 공용 IP가 표시된 브라우저 탭으로 돌아간다. 새로 고침을 클릭하여 myVM2가 요청을 계속 처리하고 있으며 부하 분산 장치가 정상 작동하고 있음을 확인한다.

연습 2: 부하 분산 장치 ARM 배포

작업 1: ARM 템플릿 배포

부하 분산 장치 아래에 가상 머신 2개를 만들고 80번 포트에서 부하 분산 규칙을 구성하는 템플릿을 사용합니다. 해당 템플릿은 스토리지 계정, 가상 네트워크, 공용 IP 주소, 가용성 집합 및 네트워크 인터페이스를 배포합니다. 또한 리소스 루프 기능을 사용하여 네트워크 인터페이스와 가상 머신을 생성합니다.

  1. 브라우저를 열고 https://aka.gd/2E2MAjh로 이동한다.

  2. Deploy to Azure를 클릭한다.

    Screenshot

  3. 템플릿 블레이드에 다음 설정을 입력한다.

    • 리소스 그룹: az5000210LB
    • Admin Username: localadmin
    • Admin Password: Pa55w.rd1234
  4. 위에 명시된 사용 약관에 동의함을 클릭하고, 구매를 클릭한다.

연습 3: 애플리케이션 게이트웨이 배포

작업 1: 애플리케이션 게이트웨이 생성

생성한 리소스가 서로 통신하려면 가상 네트워크가 필요합니다. 이 예제에서는 서브넷 두 개를 만듭니다. 그 중 하나는 애플리케이션 게이트웨이용이고 다른 하나는 백 엔드 서버용입니다. 애플리케이션 게이트웨이와 가상 네트워크를 동시에 만들 수 있습니다.

  1. 애플리케이션 게이트웨이를 포함할 서브넷을 만들어야 한다. 포털에서 가상 네트워크를 클릭하고, myVNet을 선택한다.

    Screenshot

  2. 서브넷을 선택하고 + 서브넷을 클릭한다.

    Screenshot

  3. 이름으로 myAppGWSubnet를 입력하고 확인을 클릭한다.

    Screenshot

  4. Azure 포털 왼쪽 위의 리소스 만들기를 클릭한다.

  5. 네트워킹을 선택하고, 애플리케이션 게이트웨이를 클릭한다.

    Screenshot

  6. 애플리케이션 게이트웨이 만들기 블레이드의 기본 사항에 다음 설정을 입력하고, 다음을 클릭한다.

    • 게이트웨이 이름 : myAppGateway
    • 리소스 그룹 : az5000210LB
    • 가상 네트워크 : myVnet </br>

      Screenshot

  7. 프런트 엔드 탭에서 프런트 엔드 IP 형식공용으로 설정되어 있음을 확인한다. 공용 IP 주소의 click 새로 추가를 클릭하고, 이름으로 myAGPublicIPAddress를 입력한다.

    Screenshot

  8. 다음을 클릭한다.

  9. +백 엔드 풀 추가를 선택한다.

  10. 이름으로 appGatewayBackendPool를 입력한다. 백 엔드 대상으로 가상 머신을 선택하고, myVM1과 myVM2 가상 머신과 관련 네트워크 인터페이스를 추가한 후 추가를 클릭한다.

    Screenshot

  11. 다음을 클릭한다.

  12. 구성 탭에서 라우팅 규칙을 사용하여 프런트 엔드 및 백 엔드 풀을 연결한다.

  13. 회람 규칙 추가를 선택한다.

  14. 회람 규칙 추가 창이 열리면 규칙 이름으로 myRoutingRule을 클릭한다.

  15. 수신기 탭에서 다음 설정을 이용하여 수신기를 설정한다.

    • 수신기 이름: myListener
    • 프런트 엔드 IP: 공용

      수신기 탭의 다른 설정은 기본으로 두고 백 엔드 대상 탭에서 나머지 라우팅 규칙을 구성한다.

      Screenshot

  16. 백 엔드 대상 탭에서 백엔드 대상으로 appGatewayBackendPool을 선택한다.

  17. HTTP 설정에서 새로 추가를 선택하여 새 HTTP 설정을 만든다. HTTP 설정에 따라 라우팅 규칙의 동작이 결정된다. HTTP 설정 추가 창이 열리면 HTTP 설정 이름으로 myHTTPSetting을 입력한다. HTTP 설정 추가 창의 기타 설정에는 기본값을 적용하고 추가를 선택하여 회람 규칙 추가 창으로 돌아간다.

    Screenshot

  18. 회람 규칙 추가 창에서 추가를 입력하여 회람 규칙을 저장하고 구성 탭으로 돌아온다.

    Screenshot

  19. 다음: 태그를 선택하고 다음: 검토 + 만들기를 클릭한다.

작업 2: 애플리케이션 게이트웨이 테스트

  1. 모든 리소스를 클릭하고 myAGPublicIPAddress를 클릭한다. 개요에서 애플리케이션 게이트웨이의 공용 IP 주소를 확인한다.

    Screenshot

  2. 공용 IP 주소를 복사하여 브라우저에서 접속한다.

    Screenshot

연습 4: 랩 리소스 삭제

작업 1: Cloud Shell 열기

  1. Azure 포털 상단에서 Cloud Shell 아이콘을 클릭하여 Cloud Shell 창을 엽니다.

  2. Cloud Shell 인터페이스에서 Bash를 선택합니다.

  3. Cloud Shell 명령 프롬프트에서 다음 명령을 입력하고 Enter를 눌러 이 랩에서 생성한 모든 리소스 그룹을 나열합니다.

     az group list --query "[?starts_with(name,'az500')].name" --output tsv
    
  4. 출력된 결과가 이 랩에서 생성한 리소스 그룹만 포함되어 있는지 확인합니다. 이 그룹은 다음 작업에서 삭제됩니다.

작업 2: 리소스 그룹 삭제하기

  1. Cloud Shell 명령 프롬프트에서 다음 명령을 입력하고 Enter를 눌러 이 랩에서 생성한 모든 리소스 그룹을 삭제합니다.

     az group list --query "[?starts_with(name,'az500')].name" --output tsv | xargs -L1 bash -c 'az group delete --name $0 --no-wait --yes'
    
  2. Cloud Shell 명령 프롬프트를 닫습니다.

결과: 이 연습을 완료한 후 이 랩에서 사용된 리소스 그룹을 제거했습니다.