연습 - Application Gateway 테스트

완료됨

마지막 단계에서는 애플리케이션 게이트웨이를 테스트하여, 부하 분산을 구현하고 사용할 수 없는 웹 서버로 트래픽을 보내려고 시도하지 않는지 확인합니다. 또한 경로 기반 라우팅이 제대로 작동하는지 확인하려고 합니다.

Diagram showing the resources that have been deployed.

차량 등록 웹앱에 대한 부하 분산 테스트

  1. Cloud Shell에서 다음 명령을 실행하여 Application Gateway의 루트 URL을 생성합니다.

    echo http://$(az network public-ip show \
      --resource-group $RG \
      --name appGatewayPublicIp \
      --query dnsSettings.fqdn \
      --output tsv)
    
  2. 웹 브라우저를 사용하여 이전 명령에서 반환된 URL의 웹 사이트로 이동합니다. 이는 애플리케이션 게이트웨이의 주소입니다. 차량 등록 웹앱의 홈 페이지가 표시되는지 확인합니다. 바닥글에 표시된 대로 사용하고 있는 웹 서버의 이름(webServer1 또는 webServer2)을 적어 둡니다.

    Screenshot showing an image of the vehicle registration web app.

  3. 웹 브라우저의 주소 표시줄에서 새로 고침을 선택합니다. 이제 세션이 다른 웹 서버에 연결되어 있습니다. 이 구성에서 Application Gateway는 라운드 로빈 부하 분산을 사용합니다.

  4. 차량 등록을 선택하고, 차량 세부 정보를 입력한 다음, 등록을 선택합니다.

  5. 새로 고침을 몇 번 더 선택합니다. 해당 요청이 서버 간에 왕복합니다.

Application Gateway의 실패한 서버에 대한 복원력 테스트

  1. Cloud Shell에서 다음 명령을 실행하여 webServer1에 대한 가상 머신을 중지하고 할당 취소합니다.

    az vm deallocate \
      --resource-group $RG \
      --name webServer1
    
  2. 웹 브라우저에서 애플리케이션으로 돌아가서 새로 고침을 여러 번 선택합니다. 이제 웹 브라우저는 webServer2에만 연결됩니다.

  3. 오른쪽의 Cloud Shell 창에서 webServer1 인스턴스를 다시 시작합니다.

    az vm start \
      --resource-group $RG \
      --name webServer1
    
  4. 웹 브라우저에서 웹 애플리케이션으로 돌아가서 새로 고침을 여러 번 선택합니다. 이제 요청이 두 웹 서버에 다시 분산되어 있다고 표시됩니다.

웹 애플리케이션이 실행되고 있는지 확인했습니다. Application Gateway는 부하 분산을 사용하여 서버 간에 요청을 분산시킵니다. Application Gateway에서는 서버가 실패했는지 여부를 감지하고 사용할 수 없는 서버로 요청을 라우팅하지 않습니다.

경로 기반 라우팅 테스트

이제 경로 기반 라우팅을 테스트해 보겠습니다. /VehicleRegistration/이 있고 사이트의 루트에 대한 해당 URL은 VM을 포함한 vmPool로 라우팅되고, /LicenseRenewal/에 대한 요청은 App Service를 포함한 appServicePool로 라우팅됩니다.

차량 등록 페이지를 끌어올 수 있었으므로 루트 페이지로의 라우팅이 작동한다는 것을 방금 확인했습니다. 이제 다른 경로를 사용하여 작동하는지 확인해 보겠습니다.

  1. 이제 애플리케이션 게이트웨이 페이지에서 차량 등록을 선택합니다. 이렇게 하면 차량 등록 사이트에 대한 차량 등록 페이지가 표시됩니다. URL에 /VehicleRegistration/이 있으면 차량 등록 사이트가 실행되는 vmPool로 라우팅됩니다.

    Screenshot showing a vehicle-registration web app.

  2. 이제 http://<vehicleAppGateway>/LicenseRenewal/Create를 방문합니다. 그러면 App Service에서 실행되는 라이선스 갱신 페이지로 이동됩니다. URL에 /LicenseRenewal/이 있으면 라이선스 갱신 사이트가 실행되는 appServicePool로 라우팅됩니다.

    Screenshot showing an image of the license-renewal web app.

이 구성을 사용하면 Application Gateway를 통해 두 사이트의 모든 사용자에게 하나의 루트 URL을 제공하여 기억하도록 지시할 수 있습니다. 웹을 확장함에 따라 사이트를 추가할 수 있습니다.

웹 애플리케이션 방화벽

WAF도 Application Gateway에서 사용하도록 설정했습니다. 이를 통해 보안 보호 기능이 두 웹 사이트에 자동으로 추가되었습니다. 이렇게 하면 일반적인 취약성으로부터 견고한 보호 계층을 제공하고 인프라와 데이터를 보호하는 데 도움이 됩니다.