Azure 컴퓨팅 서비스 선택

Azure App Service
AKS(Azure Kubernetes Service)

Azure는 애플리케이션 코드를 호스팅하는 다양한 방법을 제공합니다. 컴퓨팅이라는 용어는 애플리케이션이 실행되는 리소스의 호스팅 모델을 나타냅니다. 이 문서는 애플리케이션에 대한 컴퓨팅 서비스를 선택하는 데 도움이 됩니다.

후보 서비스 선택

다음 순서도를 사용하여 후보 컴퓨팅 서비스를 선택합니다.

Diagram that shows a decision tree for Azure compute services.

이 의사 결정 트리의 Visio 파일을 다운로드합니다.

이 다이어그램은 다음 두 가지 마이그레이션 전략을 참조합니다.

  • 리프트 앤 시프트: 애플리케이션을 다시 디자인하거나 코드를 변경하지 않고 워크로드를 클라우드로 마이그레이션하기 위한 전략입니다. 재호스팅이라고도 합니다. 자세한 내용은 Azure 마이그레이션 및 현대화 센터를 참조하세요.
  • 클라우드 최적화: 클라우드 네이티브 기능 및 기능을 활용하기 위해 애플리케이션을 리팩터링하여 클라우드로 마이그레이션하기 위한 전략입니다.

이 순서도의 출력이 시작점입니다. 다음으로 서비스를 평가하여 요구 사항을 충족하는지 확인합니다.

이 문서에는 서비스를 선택할 수 있도록 하는 여러 표가 포함되어 있습니다. 순서도의 초기 후보는 애플리케이션 또는 워크로드에 적합하지 않을 수 있습니다. 이 경우 분석을 확장하여 다른 컴퓨팅 서비스를 포함합니다.

애플리케이션이 여러 워크로드로 구성된 경우 각 워크로드를 개별적으로 평가합니다. 완전한 솔루션은 둘 이상의 컴퓨팅 서비스를 통합할 수 있습니다.

기본 기능 이해

이전 섹션에서 선택한 Azure 서비스에 익숙하지 않은 경우 다음 개요 설명서를 참조하세요.

  • Azure Virtual Machines: Azure 가상 네트워크 내에서 VM(가상 머신)을 배포하고 관리하는 서비스입니다.
  • Azure 앱 서비스: 웹앱, 모바일 앱 백 엔드, RESTful API 또는 자동화된 비즈니스 프로세스를 호스팅하기 위한 관리 서비스입니다.
  • Azure Functions: 서비스로서의 관리되는 함수입니다.
  • AKS(Azure Kubernetes Service ): 컨테이너화된 애플리케이션을 실행하기 위한 관리되는 Kubernetes 서비스입니다.
  • Azure Container Apps: Kubernetes를 기반으로 하는 관리되는 서비스로, 서버리스 환경에서 컨테이너화된 애플리케이션의 배포를 간소화합니다.
  • Azure Container Instances: 이 서비스는 Azure에서 컨테이너를 실행하는 빠르고 간단한 방법입니다. VM을 프로비전하거나 상위 수준 서비스를 채택할 필요가 없습니다.
  • Azure Red Hat OpenShift: Kubernetes를 사용하여 프로덕션 환경에서 컨테이너를 실행하기 위한 완전 관리형 OpenShift 클러스터입니다.
  • Azure Spring Apps: Spring Boot 앱을 호스트하기 위해 디자인되고 최적화된 관리 서비스입니다.
  • Azure Service Fabric: Azure 또는 온-프레미스를 비롯한 여러 환경에서 실행할 수 있는 분산 시스템 플랫폼입니다.
  • Azure Batch: 대규모 병렬 및 고성능 컴퓨팅(HPC) 애플리케이션을 실행하기 위한 관리 서비스입니다.

호스팅 모델 이해

호스팅 모델의 경우 클라우드 서비스는 세 가지 범주로 나뉩니다.

  • IaaS(Infrastructure as a Service) : 연결된 네트워킹 및 스토리지 구성 요소와 함께 VM을 프로비전할 수 있습니다. 그런 다음 원하는 소프트웨어 및 애플리케이션을 해당 VM에 배포할 수 있습니다. 이 모델은 기존 온-프레미스 환경에 가장 가깝습니다. Microsoft는 인프라를 관리합니다. 여전히 VM을 관리합니다.

  • PaaS(Platform as a Service) : VM 또는 네트워킹 리소스를 관리할 필요 없이 애플리케이션을 배포할 수 있는 관리되는 호스팅 환경을 제공합니다. Azure App Service 및 Azure Container Apps는 PaaS 서비스입니다.

  • FaaS(Functions as a Service) : 자동으로 실행되는 서비스에 코드를 배포할 수 있습니다. Azure Function은 FaaS 서비스입니다.

    참고

    Azure Functions는 Azure 서버리스 컴퓨팅 제품입니다. 서버리스 워크플로를 제공하는 Logic Apps와 같은 다른 Azure 서버리스 제품과 이 서비스를 비교하는 방법을 보려면 Azure에서 올바른 통합 및 자동화 서비스 선택을 참조하세요.

IaaS에서 순수 PaaS까지 스펙트럼이 있습니다. 예를 들어 Azure VM은 가상 머신 확장 집합을 사용하여 자동으로 크기를 조정할 수 있습니다. 이 기능은 엄밀히 말하면 PaaS는 아니지만 PaaS에서 볼 수 있는 관리 기능 형식입니다.

제어와 관리 용이성 사이에는 상충 관계가 있습니다. IaaS는 가장 많은 제어, 유연성 및 이식성을 제공하지만 사용자가 만든 VM 및 네트워크 구성 요소를 프로비전, 구성 및 관리해야 합니다. FaaS 서비스는 애플리케이션 실행의 거의 모든 측면을 자동으로 관리합니다. PaaS는 그 사이에 있습니다.

서비스 애플리케이션 조합 밀도 최소 노드 개수 상태 관리 웹 호스팅
Azure Virtual Machines 장치 및 시스템 독립성 장치 및 시스템 독립성 1 2 상태 비저장/상태 저장 장치 및 시스템 독립성
Azure App Service 애플리케이션, 컨테이너 App Service 계획을 사용하여 인스턴스당 여러 앱 1 상태 비저장 기본 제공
Azure Functions 함수, 컨테이너 서버를 사용하지 않음 1 서버를 사용하지 않음 1 상태 비저장 또는 상태 저장 6 해당 없음
Azure Kubernetes Service 컨테이너 노드당 복수의 컨테이너 지원 3 3 상태 비저장/상태 저장 장치 및 시스템 독립성
Azure Container Apps 컨테이너 서버를 사용하지 않음 서버를 사용하지 않음 상태 비저장/상태 저장 장치 및 시스템 독립성
Azure Container Instances 컨테이너 전용 인스턴스 없음 전용 노드 없음 상태 비저장 장치 및 시스템 독립성
Azure Red Hat OpenShift 컨테이너 노드당 복수의 컨테이너 지원 6 5 상태 비저장/상태 저장 장치 및 시스템 독립성
Azure Spring Apps 애플리케이션, 마이크로 서비스 서비스 인스턴스당 여러 앱 2 상태 비저장 기본 제공
Azure Service Fabric 서비스, 게스트 실행 파일, 컨테이너 VM당 복수의 서비스 지원 5 3 상태 비저장/상태 저장 장치 및 시스템 독립성
Azure Batch Scheduled jobs VM당 복수의 앱 지원 1 4 상태 비저장

참고

  1. 사용량 플랜을 사용하는 경우. App Service 요금제의 경우, App Service 요금제에 할당된 VM에서 기능 실행. Azure Functions를 위한 올바른 서비스 요금제 선택을 참조하세요.
  2. 둘 이상의 인스턴스가 있는 더 높은 SLA(서비스 수준 계약)입니다.
  3. 프로덕션 환경에 권장됩니다.
  4. 작업 완료 이후 0으로 축소 가능.
  5. 주 노드의 경우 3개, 작업자 노드의 경우 3개입니다.
  6. Durable Functions를 사용하는 경우.

네트워킹

서비스 가상 네트워크 통합 하이브리드 연결
Azure Virtual Machines 지원 여부 지원됨
Azure App Service 지원됨 1 지원됨 2
Azure Functions 지원됨 1 지원됨 3
Azure Kubernetes Service 지원됨 지원됨
Azure Container Apps 지원됨 지원됨
Azure Container Instances 지원됨 지원됨
Azure Red Hat OpenShift 지원됨 지원됨
Azure Spring Apps 지원됨 지원 여부
Azure Service Fabric 지원됨 지원됨
Azure Batch 지원됨 지원됨

참고

  1. App Service Environment가 필요합니다.
  2. Azure App Service 하이브리드 연결 사용.
  3. App Service 요금제 또는 Azure Functions Premium 요금제가 필요합니다.

DevOps

서비스 로컬 디버깅 프로그래밍 모델 애플리케이션 업데이트
Azure Virtual Machines 장치 및 시스템 독립성 장치 및 시스템 독립성 기본 제공 지원 없음
Azure App Service IIS Express, 기타 1 웹 및 API 애플리케이션, 백그라운드 작업을 위한 WebJob 배포 슬롯
Azure Functions Azure Studio 또는 Azure Functions CLI 서버리스, 이벤트 기반 배포 슬롯
Azure Kubernetes Service Minikube, Docker 등 장치 및 시스템 독립성 롤링 업데이트
Azure Container Apps 로컬 컨테이너 런타임 장치 및 시스템 독립성 수정 관리
Azure Container Instances 로컬 컨테이너 런타임 장치 및 시스템 독립성 적용할 수 없음
Azure Red Hat OpenShift Minikube, Docker 등 장치 및 시스템 독립성 롤링 업데이트
Azure Spring Apps Visual Studio Code, Intellij, Eclipse Spring Boot, Steeltoe 롤링 업그레이드, 파란색-녹색 배포
Azure Service Fabric 로컬 노드 클러스터 게스트 실행 파일, 서비스 모델, 작업자 모델, 컨테이너 롤링 업그레이드(서비스당)
Azure Batch 지원되지 않음 명령줄 애플리케이션 해당 없음

참고

  1. 옵션에는 ASP.NET 또는 node.js(iisnode), PHP 웹 서버, IntelliJ용 Azure 도구 키트 및 Eclipse용 Azure 도구 키트에 대한 IIS Express가 포함됩니다. App Service는 배포된 웹앱의 원격 디버깅도 지원합니다.

확장성

서비스 자동 확장 부하 분산 장치 확장 한도3
Azure Virtual Machines 가상 머신 크기 집합 Azure Load Balancer 플랫폼 이미지: 확장 집합당 1,000개 노드, 사용자 지정 이미지: 확장 집합당 600개 노드
Azure App Service 기본 제공 서비스 통합 인스턴스 30개, App Service Environment를 갖는 인스턴스 100개
Azure Functions 기본 제공 서비스 통합 함수 앱당 인스턴스 200개
Azure Kubernetes Service Pod 자동 크기 조정1, 클러스터 자동 크기 조정2 Azure Load Balancer 또는 Azure 애플리케이션 Gateway 가동 시간 SLA 사용 시 5,000개 노드
Azure Container Apps 크기 조정 규칙4 통합 지역당 환경 5개, 환경당 컨테이너 앱 20개, 컨테이너 앱당 복제본 30개
Azure Container Instances 지원되지 않음 기본 제공 지원 없음 구독당 20개의 컨테이너 그룹(기본 한도)
Azure Red Hat OpenShift Pod 자동 크기 조정, 클러스터 자동 크기 조정 Azure Load Balancer 또는 Azure 애플리케이션 Gateway 클러스터당 노드 60개(기본 한도)
Azure Spring Apps 기본 제공 서비스 통합 Standard의 500개 앱 인스턴스
Azure Service Fabric 가상 머신 크기 집합 Azure Load Balancer 가상 머신 확장 집합당 노드 100개
Azure Batch 해당 없음 Azure Load Balancer 코어 한도 20개(기본 한도)

참고

  1. Pod 자동 크기 조정을 참조하세요.
  2. Azure Kubernetes Service의 애플리케이션 요구에 맞게 클러스터 자동 크기 조정을 참조 하세요.
  3. Azure 구독 및 서비스 제한, 할당량 및 제약 조건을 참조하세요.
  4. Azure Container Apps에서 크기 조정 규칙 설정을 참조하세요.

가용성

서비스 SLA 다중region 장애 조치(failover)
Azure Virtual Machines Virtual Machines에 대한 SLA Azure Traffic Manager, Azure Front Door 및 지역 간 Azure Load Balancer
Azure App Service App Service용 SLA Azure Traffic Manager 및 Azure Front Door
Azure Functions Functions용 SLA Azure Traffic Manager 및 Azure Front Door
Azure Kubernetes Service AKS용 SLA Azure Traffic Manager, Azure Front Door 및 다중Region 클러스터
Azure Container Apps Container Apps용 SLA Azure Traffic Manager 및 Azure Front Door
Azure Container Instances Container instances용 SLA Azure Traffic Manager 및 Azure Front Door
Azure Red Hat OpenShift Azure Red Hat OpenShift에 대한 SLA Azure Traffic Manager 및 Azure Front Door
Azure Spring Apps Azure Spring 앱용 SLA Azure Traffic Manager, Azure Front Door 및 다중Region 클러스터
Azure Service Fabric Service Fabric용 SLA Azure Traffic Manager, Azure Front Door 및 지역 간 Azure Load Balancer
Azure Batch Batch용 SLA 해당 없음

서비스 보장에 대한 안내 학습은 Core Cloud Services - Azure 아키텍처 및 서비스 보장을 참조 하세요.

보안

각 서비스에 대해 사용 가능한 보안 컨트롤 및 가시성 검토 및 이해:

기타 조건

서비스 TLS 비용 적합한 아키텍처 스타일
Azure Virtual Machines VM에 구성됨 Windows, Linux N 계층, 큰 컴퓨팅 (HPC)
Azure App Service 지원됨 App Service 가격 책정 웹-큐-작업자
Azure Functions 지원됨 함수 가격 책정 마이크로 서비스, 이벤트 기반 아키텍처
Azure Kubernetes Service 수신 컨트롤러 AKS 가격 책정 마이크로 서비스, 이벤트 기반 아키텍처
Azure Container Apps 수신 컨트롤러 Container Apps 가격 책정 마이크로 서비스, 이벤트 기반 아키텍처
Azure Container Instances 사이드카 컨테이너 사용 Container Instances 가격 책정 마이크로 서비스, 작업 자동화, 일괄 처리 작업
Azure Red Hat OpenShift 지원됨 Azure Red Hat OpenShift 가격 책정 마이크로 서비스, 이벤트 기반 아키텍처
Azure Spring Apps 지원됨 Azure Spring 앱 가격 책정 Spring Boot, 마이크로 서비스
Azure Service Fabric 지원됨 Service Fabric 가격 마이크로 서비스, 이벤트 기반 아키텍처
Azure Batch 지원됨 일괄 처리 가격 책정 빅 컴퓨팅(HPC)

한도 및 비용 고려

이전 비교 표와 함께 후보 서비스의 다음 측면을 보다 자세히 평가합니다.

참가자

Microsoft에서 이 문서를 유지 관리합니다. 원래 다음 기여자가 작성했습니다.

비공개 LinkedIn 프로필을 보려면 LinkedIn에 로그인합니다.

다음 단계

Core Cloud Services - Azure 컴퓨팅 옵션 이 Learn 모듈에서는 컴퓨팅 서비스가 일반적인 비즈니스 요구 사항을 해결하는 방법을 살펴봅니다.