주메뉴 바로가기 본문 바로가기

알림

콘솔 이동 시 로그인이 필요합니다.

로그인하시겠습니까?

아니요

닫기

주문 불가 알림

주문권한이 없습니다.

콘솔에 접근할 수 없는 계정입니다.

확인

닫기

알림

신용카드 등록이 필요합니다.

신용카드 등록 페이지로 이동하시겠습니까?

아니요

닫기
C&C Tech
img

Azure App Service 사용 꿀팁 시리즈3 - Reboot Worker

img 배정환
| 2024.08.02
  • Redeploy
  • Reboot
  • AppService
  • Azure
  • Cloud

Azure App Service에서 Azure VM의 Redeploy와 유사한 기능을 제공하는 Reboot Worker에 대해서 설명합니다.

이번 게시물에서는 애플리케이션 환경의 문제를 복구하는 데 도움이 되도록 설계된 Service Healing 기능 중 하나인 Azure App Service의 Reboot Worker 기능을 살펴보겠습니다.

Reboot Worker 개요
앱을 관리할 때 서버 또는 프로세스 다시 시작을 통해 서비스 복구가 필요한 문제가 발생할 수 있습니다. Azure 가상 머신(VM) 환경에서는 VM 백엔드 호스트 머신이 문제가 발생했을 경우 Redeploy(재배포)를 통해 호스트 머신을 변경할 수 있도록 기능을 제공하고 있습니다. Azure App Service에서도 이와 유사한 복구 메커니즘을 Reboot Worker라는 기능을 통해 제공하고 있으며, 이를 통해 백엔드에 문제가 있을 때 앱 서비스의 호스트 머신을 변경할 수 있습니다.
- Azure Portal을 통한 일반적인 Restart는 기본 호스트를 변경하지 않습니다.
- Reboot Worker는 강제로 앱을 다른 백엔드 호스트에 재할당하도록 합니다.

그럼 ASP.NET Core 샘플 어플리케이션을 띄워서 Reboot Worker 기능을 이용해 Host Machine Name과 Process ID가 변경되는 것을 확인해보겠습니다.

Reboot Worker 구현 방법
먼저, ASP.NET Core 어플리케이션의 Index cs 파일에 아래와 같이 using문을 사용해 System 네임스페이스와 System.Diagnostics 네임스페이스를 선언합니다.
그리고 Environment 클래스의 MachineName 변수를 machineName이라는 변수에 저장하고, Process.GetCurrentProcess() 메소드를 통해 nProcessID라는 변수를 선언합니다.



그리고 아래와 같이 Index.cshtml 파일에 machineName과 nProcessID를 출력하도록 정의해 줍니다.



그리고 해당 앱을 App Service에 배포해 보면 아래와 같이 Machine Name과 PID가 출력되는 것을 볼 수 있으며, 현재의 Machine Name은 RD00155D4DD557, PID 값은 2784인 것을 확인해 볼 수 있습니다.



이제 Reboot Worker를 진행해보겠습니다.
Reboot Worker는 아래와 같은 API로 제공하고 있으며, 자세한 내용은 아래의 링크를 참고하길 바랍니다.
POST https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/serverfarms/{name}/workers/{workerName}/reboot?api-version=2021-02-01
[참고링크 : https://docs.microsoft.com/en-us/rest/api/appservice/app-service-plans/reboot-worker?WT.mc_id=IoT-MVP-5002068]



필요한 Parameter를 등록 후 API를 찔러보면 아래와 같이 Return Code 200으로 정상적으로 적용이 된 것을 볼  수 있습니다.



Reboot Worker는 약 2-3분 정도의 시간이 소요되며, 아래와 같이 Machine Name과 PID가 변경된 것을 확인해 볼 수 있습니다.



결론
결론적으로 Azure App Service의 Reboot Worker 기능은 VM 재배포와 유사하게 문제가 발생할 경우 백엔드 호스트를 전환하여 서비스 복구를 보장하는 효과적인 방법을 제공합니다. 정기적으로 다시 시작하면 단순히 동일한 호스트에서 앱이 다시 초기화되지만 Reboot Worker는 앱이 새 백엔드 시스템에 재할당되도록 보장하여 향상된 안정성과 성능 연속성을 제공합니다. 이 데모를 통해 Reboot Worker를 사용하면 호스트 머신 이름 및 프로세스 ID가 효과적으로 변경되어 성공적인 호스트 전환이 확인되는 것을 확인했습니다. 이 기능은 특히 동적 클라우드 환경에서 애플리케이션의 고가용성을 유지하는 데 중요합니다.
img
배정환 | Cloud Consulting Team

Microsoft MVP로 활동중이며, SK C&C에서 Azure/GCP 클라우드 컨설팅을 담당하고 있습니다.