본문 바로가기
Cloud/Part 3. 핵심 인프라

9. Azure Compute 서비스 선택

by yunalee-dev 2026. 7. 27.

(1) Compute 서비스가 담당하는 역할

Azure Compute는 애플리케이션 코드를 실제로 실행하는 자원을 제공하는 서비스군이다.

여러 서비스가 존재하는 이유는 제어권과 관리 부담을 어떻게 나눌지가 상황마다 다르기 때문이다.

제어권과 관리 부담은 서로 반대 방향으로 움직인다. 이 축을 기준으로 서비스를 배열하면 선택이 단순해진다.

제어권 큼 / 관리 부담 큼
   │  VM
   │  컨테이너 (AKS)
   │  컨테이너 (Container Apps, ACI)
   │  App Service
   │  서버리스 (Functions)
제어권 작음 / 관리 부담 작음
가상화가 이 모든 서비스의 기반 기술이라는 점은 개념 01에서 다루었다. 이 글은 가상화 원리가 아니라, 그 위에서 제공되는 실행 환경을 어떤 기준으로 선택하는지에 집중한다.

서비스 주요 특징 활용 사례
Azure Virtual macines 가상 네트워크 내 VM 배포 및 관리 전통적인 서버 워크로드, 맞춤형 OS/애플리케이션 실행
Azure app Service 웹/모바일 앱, API, 자동화된 비즈니스 프로세스 호스팅 웹사이트, SaaS 애플리케이션, RESTful API
Azure Functions 이벤트 기반 서버리스 컴퓨팅 데이터 처리, 자동화 작업, 마이크로서비스
Azure Kubernetes Service 관리형 Kubernetes 클러스터 대규모 컨테이너 오케스트레이션, 마이크로서비스 아키텍처
Azure Container Apps Kubernetes 기반 서버리스 컨테이너 서비스 간단한 컨테이너 배포, 이벤트 기반 애플리케이션
Azure Container Instances 빠르고 간편한 컨테이너 실행 단기 작업, 테스트 환경, 배치 작업
Azure Red Hat openShift 완전 관리형 OpenShift 클러스터 엔터프라이즈급 컨테이너 플랫폼, CI/CD 파이프라인
Azure service Fabric 분산 시스템 플랫폼, 온프레미스/클라우드 모두 지원 마이크로서비스, 상태 저장 애플리케이션
Azure Batch 대규모 병렬 및 HPC 애플리케이션 실행 과학 계산, 데이터 분석, 렌더링 작업

(2) VM을 선택해야 하는 상황

가상 머신(Azure VM)은 운영체제부터 그 위의 전 계층을 사용자가 직접 구성하는 IaaS 자원이다. Compute 서비스 중 제어권이 가장 크다.

1) 구성 요소와 특징

VM 한 대는 단독으로 동작하지 않고 여러 리소스가 함께 구성된다.

  • 운영체제 디스크: 운영체제가 설치되는 저장 공간
  • 가상 네트워크 인터페이스: VM을 네트워크에 연결하는 논리 장치
  • 이미지: VM 생성 시 사용하는 운영체제와 초기 구성의 원본
  • 크기(Size): CPU, 메모리, 디스크 성능을 결정하는 사양 조합

운영체제 수준 제어가 필요하거나 특정 소프트웨어를 직접 설치해야 하는 경우에 적합하며, 기존 온프레미스 서버를 구조 변경 없이 이전할 때도 사용한다.

2) VM 유형과 ACU

VM은 용도에 따라 유형이 나뉘며, 각 유형은 자원 배분 비율이 다르다.

유형 특징 적합한 용도
범용 CPU와 메모리가 균형 배분 일반 웹 서버, 테스트 환경
컴퓨팅 최적화 메모리 대비 CPU 비중이 높음 연산 집약 작업
메모리 최적화 CPU 대비 메모리 비중이 높음 데이터베이스, 인메모리 처리
스토리지 최적화 높은 디스크 처리량 제공 대용량 데이터 입출력
GPU 그래픽·병렬 연산 가속기 포함 모델 학습, 영상 처리
ACU(Azure Compute Unit)
서로 다른 VM 유형의 상대적 연산 성능을 비교하기 위한 기준 지표이다. 기준 VM을 100으로 두고, 다른 VM의 성능을 그 비율로 표시하여 유형 간 성능을 대략 비교할 수 있게 한다.

3) Dedicated Host

일반 VM은 물리 서버를 다른 고객과 공유하지만, Dedicated Host는 물리 서버 한 대를 단일 고객이 전용으로 사용하는 방식이다.
  • 물리 서버를 다른 조직과 공유하지 않음
  • 규제나 라이선스 요건으로 물리적 격리가 필요할 때 사용
  • 유지 관리 시점을 사용자가 조정할 수 있음
  • 전용 사용에 따른 비용이 발생

4) Azure VM 특장점 

  • 자동 스케일링 
  • 가속화된 성능
  • 신속한 백업 및 복구
  • 다중 운영체제 지원
  • 기본 제공 모니터링 및 관리
  • AI 및 고성능 컴퓨팅

(3) 컨테이너를 선택해야 하는 상황

컨테이너는 운영체제 커널을 공유하면서 애플리케이션과 실행 구성 요소만 격리한 실행 단위이다.

VM보다 가볍고 시작이 빠르다는 특성은 개념 01에서 다루었다.

1) 컨테이너가 적합한 조건

  • 동일한 실행 환경을 여러 곳에 반복 배포해야 하는 경우
  • 기능을 작은 단위로 나눠 독립적으로 배포·확장하려는 경우
  • 배포 주기가 짧아 빠른 시작과 종료가 필요한 경우
  • 운영체제 전체가 아니라 애플리케이션 단위 격리로 충분한 경우

운영체제 자체를 제어할 필요가 없다면, VM보다 컨테이너가 자원 효율과 배포 속도 면에서 유리하다.

(4) ACI(Azure Container Instances), ACA( Azure Container Apps), AKS(Azure Kubernetes Service) 비교

1) ACI - PaaS

  • 가상 머신을 관리하거나 추가 서비스를 채택하지 않고도 Azure에서 컨테이너를 실행하는 가장 빠르고 간단한 방법
  • PaaS 제품 
  • 컨테이너 업로드 가능하며, 해당 서비스에서 컨테이너를 실행시켜줌 
  • 서비리스 환경, 이벤트 기반 애플리케이션에 적합 

2) ACA -  PaaS

  • 여러 가지 면에서 컨테이너 인스턴스와 비슷
  • 즉시 시작하고 실행할 수 있는 컨테이너 관리 부분을 제거
  • 단기 작업, 배치 처리, 간단한 앱에 적합 + 프로토타입 개발에 빠른 활용 가능 
  • Paas 제품
  • 차이점 : 부하 분산과 크기 조정을 통합하는 기능 존재  => 설계 탄력성 증가 

3) AKS

  • 컨테이너 오케스트레이션 서비스 
  • 컨테이너의 수명 주기를 관리 
  • 고급 네트워킹, 보안, 모니터링 기능 제공 

4) 정리

Azure는 컨테이너 실행을 위해 관리 수준이 다른 세 서비스를 제공한다.

특징/고려사항 ACA
(Azure Container Apps)
ACI
(Azure Container Instances)
AKS
(Azure Kubernetes Services)  
적합한 용도 단순, 무상태 워크로드 단기적 또는 순간적 워크로드 복잡하고 확장 가능한 워크로드
인프라 관리 완전 관리형, 서버리스 완전 관리형, 서비리스  완전 관리형 쿠버네티스 서비스
배포 간단하고 빠름 간단하고 빠름 설정 및 구성이 더 복잡함
고가용성 해당 없음 해당 없음 자동 스케일링 및 로드 밸런싱
자원 격리 작업 수준 격리 인스턴스 수준 격리 파드 수준 격리
스케일링 수평 스케일링 규칙 수평 스케일링 규칙 자동 스케일링
청구 컨테이너 인스턴스 또는 요청 기반 초당 청구 초당 청구
Azure 서비스와의 통합 기본 통합 기본 통합 광범위한 통합 및 생태계
복잡성 낮음 낮음 중간에서 높음 
Kubernetes와 AKS
Kubernetes는 다수의 컨테이너 배포·확장·복구를 자동화하는 오케스트레이션 도구이다.
AKS는 이 Kubernetes를 Azure가 관리형으로 제공하는 서비스로, 제어판 운영 부담을 줄여준다.
세밀한 제어가 필요하면 AKS, 그 부담까지 피하려면 Container Apps가 적합하다.

(5) 서버리스와 Functions

서버리스는 사용자가 서버 인스턴스를 인식하거나 관리하지 않고, 실행 단위로만 코드를 동작시키는 방식이다.
Azure Functions가 대표적인 서비스이다.

1) 특징

  • 특정 이벤트가 발생할 때만 코드가 실행됨
  • 호출이 없으면 자원이 유지되지 않아 유휴 비용이 발생하지 않음
  • 실행 횟수와 실행 시간을 기준으로 과금됨
  • 요청량에 따라 자동으로 확장·축소됨

2) 적합한 작업

  • 파일 업로드, 메시지 도착 같은 이벤트에 반응하는 처리
  • 일정 주기로 실행되는 작업
  • 짧게 실행되고 끝나는 단위 작업
서버리스는 상시 실행이 필요하거나 실행 시간이 긴 작업에는 부적합하다. 호출이 드물다가 갑자기 실행될 때 초기 지연이 발생할 수 있으며, 지속적으로 돌아가야 하는 워크로드는 App Service나 컨테이너가 더 적합하다.

(6) App Service - PaaS

App Service는 웹 애플리케이션과 API를 실행하기 위한 PaaS이다.
운영체제와 인프라 관리를 제공자가 담당하고, 사용자는 애플리케이션 코드에 집중한다.

1) Azure App Service 종류

HTTP기반 서비스로서 웹 서비스를 구성하기 위해서 필요한 여러 요소들을 Azure에서 관리하여 개발자가 손쉽게 웹 서비스를 개발할 수 있게 해줌

  • Web app : ASPNET, ASPNET Core, Java, Ruby, Node.js, PHP 또는 Python을 사용하여 웹앱 호스트가 전체 지원 됨. 
  • API App
    • 웹 사이트를 호스트하는 것처럼 언어 및 프레임워크를 사용하여 Rest 기반 웹 API를 빌드할 수 있음
    • Swagger지원과 함께 Azure Marketplace에서 API를 패키지 및 게시하는 기능을 사용할 수 있음 
    • 생성된 앱은 HTTP 또는 HTTPS 기반 클라이언트에서 사용 가능
  • WebJobs 
    • 웹앱, API앱 또는 모바일 앱과 동일한 컨텍스트에서 프로그램 또는 스크립트를 실행할 수 있음
    • 프로그램과 스크립트는 트리거를 통해 예약하거나 실행할 수 있음 
    • 종종 애플리케이션 로직의 일부로 백그라운드 작업을 실행하는 데 사용됨
  • Mobile App 
    • iOS 및 Android앱의 백 엔드를 빠르게 빌드   가능 1) Azure App Service 종류

2) Azure App Service 특장점

  1.  원하는 언어로 개발
  2. 자동 배포 및 확장
  3. 제로 트러스트 원칙을 도입
  4. 고가용성 및 복원성 확보
  5. 사이버 공격에서 앱을 보호
  6. 미래에 대비한 웹 앱과 API를 구축 
N-tier 아키텍처
애플리케이션을 표현 계층, 비즈니스 로직 계층, 데이터 계층으로 나누어 구성하는 구조이다. App Service는 이 중 웹·API 계층을 실행하는 데 자주 사용되며, 각 계층을 분리하면 계층별로 독립적인 확장과 관리가 가능해진다.

(7) Logic Apps - 자동화 플랫폼

워크플로 통합 및 자동화 - Azure Logic Apps ❘ Microsoft Learn

Logic Apps는 코드를 직접 작성하지 않고, 미리 정의된 연결 구성 요소를 조합하여 업무 흐름을 자동화하는 서비스이다.

  • 여러 서비스 간의 작업을 시각적 흐름으로 연결
  • 이벤트 발생 시 정해진 단계를 순차 실행
  • 코드 작성 없이 시스템 간 연동을 구성
구분 Logic Apps Power Automate
주 사용자 개발자·IT 담당 일반 업무 사용자
용도 시스템 간 통합 자동화 개인·부서 업무 자동화
관리 방식 리소스로 관리·배포 사용자 환경에서 구성

(8) VMSS와 Auto Scaling

VM Scale Sets(VMSS)는 수천 개의  동일 구성 VM  인스턴스를 자동으로 생성, 관리, 확장하는 서비스

=> 부하 분산과 고가용성을 지원 

1) 자동 확장 동작 및 축소

부하 증가 → 기준값 초과 감지 → VM 인스턴스 추가 → 부하 분산
부하 감소 → 기준값 미만 감지 → VM 인스턴스 축소 → 비용 절감
  • CPU, 메모리 사용량, 네트워크 트래픽 등 다양한 성능 메트릭을 기반으로 인스턴스 수를 자동으로 조절 가능
  • 높은 가용성 : 여러 가용성 영역이나 업데이트 도메인에 Vm을 배포하여 장애에 강한 구조 제공
  • 대규모 배포 : 최대 1,000개의 VM 인스턴스를 공유된 구성으로 배포 가능
  • 유연한 오케스트레이션 모드 : 플랫 오케스트레이션 또는 분산 오케스트레이션을 지원하며, 사용자 정의 및 관리 가능 

2) 비용 절감 옵션

  • 예약 VM: 장기간 사용을 약정하고 할인받는 방식
  • Hybrid Benefit: 보유한 라이선스를 클라우드에 적용해 비용을 낮추는 방식

(9) Compute 서비스 선택표

상황 권장 서비스
운영체제 제어나 특정 소프트웨어 설치가 필요함 VM
물리적 격리가 규제상 필요함 Dedicated Host
단일 컨테이너를 잠깐 실행함 ACI
마이크로서비스를 자동 확장하되 관리 부담은 줄이고 싶음 Container Apps
복잡한 대규모 컨테이너 운영을 직접 제어함 AKS
이벤트에 반응하는 짧은 작업을 실행함 Azure Functions
상시 실행되는 웹 앱이나 API를 운영함 App Service
코드 없이 시스템 간 흐름을 자동화함 Logic Apps

(10) 온라인 주문 API 배포 비교

동일한 주문 API를 각 서비스에 배포한다고 가정하면, 담당 범위와 특성이 다음과 같이 달라진다.

서비스 배포 방식 사용자 담당 범위
VM VM 생성 후 직접 구성 운영체제, 런타임, 배포, 확장, 패치 전부
컨테이너(AKS) 이미지로 패키징 후 클러스터 배포 이미지 구성, 클러스터 운영, 확장 설정
App Service 코드를 플랫폼에 배포 애플리케이션 코드와 확장 기준
Functions 요청 처리 함수 단위 배포 함수 코드만

아래로 갈수록 사용자가 신경 쓸 범위가 줄어드는 대신, 실행 방식이 플랫폼이 정한 틀에 맞춰진다. 상시 트래픽이 있는 API라면 App Service, 주문 완료 후 부가 처리 같은 이벤트성 작업이라면 Functions가 적합하다.

(11) 자료 외 보완

1) Stateless와 Stateful 애플리케이션

구분 Stateless Stateful
상태 보관 자체에 상태를 두지 않음 자체에 상태를 유지
확장 용이성 높음(인스턴스 자유 증감) 낮음(상태 동기화 필요)
적합한 서비스 서버리스, 컨테이너, App Service 전용 저장소를 갖춘 VM 등

자동 확장이 잘 동작하려면 애플리케이션이 상태를 외부 저장소에 분리한 Stateless 구조여야 한다.
상태를 인스턴스 내부에 두면 대수를 늘렸을 때 데이터가 일관되지 않을 수 있다.

2) 이벤트 기반 실행과 상시 실행의 차이

  • 이벤트 기반: 특정 사건이 발생할 때만 실행되고 종료됨 → 서버리스에 적합
  • 상시 실행: 요청을 항상 대기하며 지속 동작함 → App Service, 컨테이너에 적합
  • 드물게 발생하는 작업에 상시 실행을 쓰면 유휴 비용이, 잦은 상시 트래픽에 이벤트 기반을 쓰면 초기 지연이 문제가 됨

3) 서비스 선택 결정 흐름

운영체제 제어가 필요한가?
   ├─ 예 → VM (격리 필요 시 Dedicated Host)
   └─ 아니오
        │
   코드 없이 흐름 자동화면 되는가?
   ├─ 예 → Logic Apps
   └─ 아니오
        │
   이벤트에 반응하는 짧은 작업인가?
   ├─ 예 → Functions
   └─ 아니오
        │
   컨테이너로 배포하는가?
   ├─ 예 → 규모·제어 필요: AKS / 간단: Container Apps·ACI
   └─ 아니오 → App Service

(12) 핵심 정리

  • Azure Compute 서비스는 제어권과 관리 부담을 어떻게 나눌지에 따라 선택한다.
  • VM은 제어권이 가장 크며 운영체제 제어나 기존 서버 이전에 적합하다.
  • 컨테이너는 운영체제 제어가 불필요하고 빠른 반복 배포가 필요할 때 유리하다.
  • ACI는 단순 실행, Container Apps는 관리 부담이 적은 자동 확장, AKS는 대규모 직접 제어에 적합하다.
  • 서버리스는 이벤트성·단발성 작업에, App Service는 상시 실행 웹·API에 적합하다.
  • Logic Apps는 코드 없이 시스템 간 흐름을 자동화하는 데 사용한다.
  • VMSS와 Auto Scaling은 부하에 따라 인스턴스 대수를 자동 조정하며, 예약 VM과 Hybrid Benefit으로 비용을 낮출 수 있다.
  • 자동 확장은 상태를 외부에 분리한 Stateless 구조에서 안정적으로 동작한다.

(13) 핵심 키워드

키워드 의미
Azure VM 운영체제 이상을 사용자가 구성하는 IaaS 컴퓨팅 자원
VM Scale Sets 동일 구성 VM을 자동으로 확장·축소하는 집합
Dedicated Host 물리 서버를 단일 고객이 전용으로 사용하는 방식
ACU VM 유형 간 상대 성능을 비교하는 기준 지표
ACI 단일 컨테이너를 빠르게 실행하는 서비스
Container Apps 오케스트레이션을 감춘 관리형 컨테이너 실행 환경
AKS Azure가 관리형으로 제공하는 Kubernetes 서비스
Serverless 서버를 인식하지 않고 실행 단위로 코드를 동작시키는 방식
Azure Functions 이벤트에 반응해 짧은 코드를 실행하는 서버리스 서비스
App Service 웹 앱과 API를 실행하는 PaaS
Logic Apps 코드 없이 시스템 간 흐름을 자동화하는 서비스
Autoscaling 부하에 따라 인스턴스 수를 자동 조정하는 기능
Hybrid Benefit 보유 라이선스를 적용해 비용을 낮추는 옵션
  • 상위 개념: Azure Compute
  • 선행 개념: 클라우드 컴퓨팅과 가상화(개념 01), Azure 구독과 리소스 그룹(개념 05)
  • 관련 개념: 컨테이너, Kubernetes, 서버리스, Auto Scaling, Stateless 구조
  • 다음 학습: Linux와 VM 운영(개념 08)
  • 대응 실습 후보: 자료를 기준으로 명확한 실습 노트를 확인하기 어려움

(15) 다음 학습

  1. Linux와 VM 운영(개념 08): 이 글에서 선택한 VM 위에서 실제 운영체제를 다루는 방법을 확인하기 위해 필요하다.
  2. Azure 네트워크 구조(개념 10): Compute 자원이 네트워크에 어떻게 연결되는지 확인하기 위해 필요하다.
  3. 스토리지와 디스크(개념 12): VM과 컨테이너가 사용하는 저장 자원의 구성을 확인하기 위해 필요하다.