티스토리 뷰

지난 글에서는 Azure App Service Network Flow에 대해서 살펴보았습니다. 이번글에서는 Worker Instance에 대해서 좀 더 자세히 살펴보도록 하겠습니다. Azure App Service에서 Worker Instance는 가상머신 환경으로 Windows, Linux 운영체제를 지원하며 실제 애플리케이션을 . 이번 글에서는 Worker Instance가 무엇이며, Windows와 Linux Worker Instance의 구조 그리고 Worker내에서 요청이 어떻게 처리되는지 살펴보도록 하겠습니다.

 

1. Worker Instance란?

Azure App Service에서 Worker Instance는 웹 애플리케이션이 실제로 실행되는 가상머신(VM)을 의미합니다. 각 Worker Instance는 애플리케이션 코드를 배포, 실행, 로깅 할 수 있습니다.

 

2. Azure App Service Worker Instance 구조

1) Windows 기반 Azure App Service Worker Instance 구조

Windows 기반의 Worker Instance는 Windows Server 운영체제 위에서 실행되며, IIS(Internet Information Services)를 통해 웹 애플리케이션을 호스팅합니다. 웹 애플리케이션은 워커 프로세스(w3wp.exe)에서 실행됩니다.

Windows Worker Instance Runtime Architecture in Azure App Service

  • Hypervisor: Azure 인프라에서 가상 머신을 관리하는 계층
  • Virtual Machine (Worker Instance): 애플리케이션을 실행하는 개별 가상 머신
  • Guest OS (Windows Server): Windows 기반 운영체제
  • IIS (Internet Information Services): 애플리케이션을 호스팅하는 웹 서버 역할
  • Worker Process (w3wp.exe) for Web App: IIS의 워커 프로세스로, 배포된 애플리케이션의 실행을 담당
  • Worker Process (w3wp.exe) for Kudu: Kudu(배포 관리 도구) 실행을 위한 별도 프로세스, 배포 및 애플리케이션 관리 기능 수행

2) Linux기반 Azure App Service Worker Instance 구조

Linux 기반의 Azure App Service는 컨테이너 환경을 활용하여 애플리케이션을 실행합니다. 즉, Docker 컨테이너를 통해 애플리케이션을 호스팅하는 방식으로 동작합니다.

Linux Worker Instance Runtime Architecture in Azure App Service

  • Hypervisor: 가상 머신을 관리하는 계층
  • Virtual Machine (Worker Instance): 애플리케이션을 실행하는 개별 가상 머신
  • Guest OS (Linux): Linux 기반 운영체제
  • Container Engine (Docker): 컨테이너 실행을 위한 엔진
  • Docker Container for Web App: 웹 애플리케이션을 실행하는 Docker 컨테이너
  • Docker Container for Kudu: Kudu를 실행하는 Docker 컨테이너, 배포 및 애플리케이션 관리 기능 수행

3. 여러 웹 애플리케이션 호스팅 시나리오

Azure App Service에서는 하나의 App Service Plan에서 여러 개의 웹 애플리케이션을 호스팅할 수 있으며, 각 애플리케이션은 개별적으로 실행됩니다. Windows와 Linux 환경에서의 차이를 살펴보겠습니다.

1) Windows 환경에서의 여러 애플리케이션 호스팅

하나의 App Service Plan에서 여러개의 웹 애플리케이션은 하나의 Worker Instance에서 독립적인 Worker Process(w3wp.exe)로 실행됩니다. Kudu(SCM) 서비스 애플리케이션마다 존재합니다.

예를 들어 app-1, app-2를 하나의 App Service Plan에 배포한 경우, 하나의 Worker Instance에는 2개의 웹 애플리케이션 Worker Process와 2개의 Kudu Worker Process가 존재합니다.

Windows Worker Instance Runtime Architecture in Azure App Service (Multiple Web Applications)

2) Linux 환경에서의 여러 애플리케이션 호스팅

하나의 App Service Plan에서 여러개의 웹 애플리케이션은 하나의 Worker Instance에서 독립적인 Docker 컨테이너에서 실행됩니다. Kudu(SCM) 서비스 애플리케이션마다 존재합니다.

예를 들어 app-3, app-4를 하나의 App Service Plan에 배포한 경우, 하나의 Worker Instance에 2개의 웹 애플리케이션 Docker 컨테이너와 2개의 Kudu Docker Container가 존재합니다.

Linux Worker Instance Runtime Architecture in Azure App Service (Multiple Web Applications)

4. Windows vs. Linux 환경 비교

Azure App Service에서는 Windows 기반과 Linux 기반의 Worker Instance를 사용할 수 있습니다. 각 환경에서 애플리케이션 실행 방식, 요청 처리 구조 등이 다릅니다.

구분 Windows Worker Linux Worker
실행 환경 Windows Server + IIS Linux + Docker
웹 서버 IIS (Internet Information Services) Nginx 또는 Apache
앱 실행 방식 w3wp.exe (IIS Worker Process)에서 실행 Docker 컨테이너 내부에서 실행
요청 처리 방식 http.sys → IIS → w3wp.exe → Web App Nginx/Apache → Docker Container → Web App
배포 방식 Web Deploy, FTP, Git, Zip Docker 이미지, Zip, Git, FTP
Kudu 지원 여부 완전 지원 (파일 탐색기, CMD, Process Explorer) 일부 지원 (파일 탐색기만 가능, SSH 기반 관리)

 

결론

Azure App Service의 Worker Instance는 Windows와 Linux 환경에 따라 서로 다른 방식으로 애플리케이션을 실행합니다.

  • Windows 환경에서는 IIS를 통해 애플리케이션을 실행하며, 워커 프로세스(w3wp.exe)가 애플리케이션과 Kudu를 각각 실행합니다.
  • Linux 환경에서는 Docker 기반으로 애플리케이션을 실행하며, 웹 애플리케이션과 Kudu가 각각의 컨테이너에서 구동됩니다.

컨테이너화된 환경이 필요하거나 리눅스 애플리케이션을 실행해야 한다면 Linux 기반의 Azure App Service를 고려하는 것이 적절하며, 기존 Windows 애플리케이션을 호스팅하려면 Windows 기반 App Service를 선택하는 것이 좋습니다.

 

참고자료

https://learn.microsoft.com/en-us/azure/app-service/overview

 

Overview of Azure App Service - Azure App Service

Learn how Azure App Service helps you develop and host web applications.

learn.microsoft.com

 

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2026/05   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31
글 보관함