Advanced Application Restart 주요 기능
-
타이머 설정: 여러 인스턴스가 있을 경우, Advanced Application Restart 기능을 통해 각 인스턴스가 동시에 재시작되지 않도록 타이머를 설정할 수 있습니다. 이를 통해 인스턴스는 순차적으로 재시작되어 서비스 가용성에 미치는 영향을 최소화할 수 있습니다.
-
프로세스 제어: ASP.NET Core와 같은 애플리케이션에서 프로세스를 제어하고 변경된 Process ID를 확인할 수 있습니다. 예를 들어,
System.Diagnostics.Process.GetCurrentProcess().Id
를 사용하여 현재 프로세스 ID를 추적하고, Advanced Application Restart가 트리거될 때 ID가 변경되는지 확인할 수 있습니다. -
무중단 서비스 지원: 여러 인스턴스가 동시에 재시작되는 것을 방지하므로, 사용자는 서비스 중단 없이 안정적으로 운영을 유지할 수 있습니다.
이 기능은 애플리케이션의 안정성과 성능을 유지하며, 높은 가용성을 요구하는 환경에서 매우 유용합니다.
그럼 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로 변경된 것을 확인해 볼 수 있습니다.
