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

알림

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

로그인하시겠습니까?

아니요

닫기

주문 불가 알림

주문권한이 없습니다.

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

확인

닫기

알림

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

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

아니요

닫기
C&C Tech
img

Azure App Service 사용 꿀팁 시리즈2 - Advanced Application Restart

img 배정환
| 2024.04.19
  • AppService
  • Azure
  • Cloud
  • WebApp
  • ServiceHealing
  • Restart

Azure App Service에서 제공하는 Service Healing 기능 중 Advanced Application Restart에 대해 설명합니다.

Azure App ServiceAdvanced Application Restart는 애플리케이션의 문제 발생 시 프로세스를 안전하게 재시작하는 Service Healing 기능 중 하나입니다. 이 기능은 특히 여러 인스턴스에서 애플리케이션이 실행 중일 때 유용합니다. 일반적인 상황에서는 여러 인스턴스가 동시에 재시작되면 서비스 가용성에 영향을 미칠 수 있지만, Advanced Application Restart는 이러한 문제를 해결합니다.

Advanced Application Restart 주요 기능

  1. 타이머 설정: 여러 인스턴스가 있을 경우, Advanced Application Restart 기능을 통해 각 인스턴스가 동시에 재시작되지 않도록 타이머를 설정할 수 있습니다. 이를 통해 인스턴스는 순차적으로 재시작되어 서비스 가용성에 미치는 영향을 최소화할 수 있습니다.

  2. 프로세스 제어: ASP.NET Core와 같은 애플리케이션에서 프로세스를 제어하고 변경된 Process ID를 확인할 수 있습니다. 예를 들어, System.Diagnostics.Process.GetCurrentProcess().Id를 사용하여 현재 프로세스 ID를 추적하고, Advanced Application Restart가 트리거될 때 ID가 변경되는지 확인할 수 있습니다.

  3. 무중단 서비스 지원: 여러 인스턴스가 동시에 재시작되는 것을 방지하므로, 사용자는 서비스 중단 없이 안정적으로 운영을 유지할 수 있습니다.

이 기능은 애플리케이션의 안정성과 성능을 유지하며, 높은 가용성을 요구하는 환경에서 매우 유용합니다.

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

Advanced Application Restart 구성 방법

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



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



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



그리고 Azure Portal에 접속하여 App Service로 이동 후 "문제 진단 및 해결(Diagnose and solve problems)" 페이지에서 "Diagnostic Tools" 를 선택합니다.



그리고 해당 페이지 왼쪽 하단에 Advanced Application Restart 를 클릭합니다.



Advanced Application Restart 페이지로 이동하면 아래와 같이 현재 떠 있는 프로세스를 확인할 수 있으며, 체크하여 다시 시작 버튼을 클릭합니다.



다시 시작한 후 다시 앱을 확인해보면, PID가 기존 1680에서 2784로 변경된 것을 확인해 볼 수 있습니다.

결론

예시를 통해 Azure App Service의 Advanced Application Restart 기능을 사용하여 가동 중지 시간 없이 애플리케이션을 안전하게 다시 시작할 수 있었습니다. 이는 다시 시작한 후 프로세스 ID가 어떻게 변경되는지 보여 주었으며, 복구 작업 중에도 애플리케이션이 원활하게 실행되도록 보장하며, 특히 프로덕션 환경에서 고가용성을 유지하는 데 유용합니다.
 
img
배정환 | Cloud Consulting Team

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