Azure 컴퓨팅 서비스 선택
Azure는 애플리케이션 코드를 호스팅하는 다양한 방법을 제공합니다. The term compute refers to the hosting model for the resources that your application runs on. 이 문서는 애플리케이션에 대한 컴퓨팅 서비스를 선택하는 데 도움이 됩니다.
후보 서비스 선택
다음 순서도를 사용하여 후보 컴퓨팅 서비스를 선택합니다.
이 의사 결정 트리의 Visio 파일을 다운로드합니다.
이 다이어그램은 다음 두 가지 마이그레이션 전략을 참조합니다.
- 리프트 앤 시프트: 애플리케이션을 다시 디자인하거나 코드를 변경하지 않고 워크로드를 클라우드로 마이그레이션하기 위한 전략입니다. It's also called rehosting. 자세한 내용은 Azure 마이그레이션 및 현대화 센터를 참조하세요.
- Cloud optimized: A strategy for migrating to the cloud by refactoring an application to take advantage of cloud-native features and capabilities.
이 순서도의 출력이 시작점입니다. 다음으로 서비스를 평가하여 요구 사항을 충족하는지 확인합니다.
이 문서에는 서비스를 선택할 수 있도록 하는 여러 표가 포함되어 있습니다. 순서도의 초기 후보는 애플리케이션 또는 워크로드에 적합하지 않을 수 있습니다. 이 경우 분석을 확장하여 다른 컴퓨팅 서비스를 포함합니다.
애플리케이션이 여러 워크로드로 구성된 경우 각 워크로드를 개별적으로 평가합니다. 완전한 솔루션은 둘 이상의 컴퓨팅 서비스를 통합할 수 있습니다.
기본 기능 이해
이전 섹션에서 선택한 Azure 서비스에 익숙하지 않은 경우 다음 개요 설명서를 참조하세요.
- Azure Virtual Machines: Azure 가상 네트워크 내에서 VM(가상 머신)을 배포하고 관리하는 서비스입니다.
- Azure 앱 서비스: 웹앱, 모바일 앱 백 엔드, RESTful API 또는 자동화된 비즈니스 프로세스를 호스팅하기 위한 관리 서비스입니다.
- Azure Functions: A service that provides managed functions that run based on a variety of trigger types for event-driven applications.
- AKS(Azure Kubernetes Service): 컨테이너화된 애플리케이션을 실행하기 위한 관리되는 Kubernetes 서비스입니다.
- Azure Container Apps: Kubernetes를 기반으로 하는 관리되는 서비스로, 서버리스 환경에서 컨테이너화된 애플리케이션의 배포를 간소화합니다.
- Azure Container Instances: 이 서비스는 Azure에서 단일 컨테이너 또는 컨테이너 그룹을 실행하는 빠르고 간단한 방법입니다. Azure Container Instances는 전체 컨테이너 오케스트레이션을 제공하지 않지만 VM을 프로비전하거나 상위 수준 서비스를 채택하지 않고도 구현할 수 있습니다.
- Azure Red Hat OpenShift: Kubernetes를 사용하여 프로덕션 환경에서 컨테이너를 실행하기 위한 완전 관리형 OpenShift 클러스터입니다.
- Azure Service Fabric: Azure 또는 온-프레미스를 비롯한 여러 환경에서 실행할 수 있는 분산 시스템 플랫폼입니다.
- Azure Batch: A managed service for running large-scale parallel and high-performance computing (HPC) applications.
- Azure VMware Solution: Azure에서 기본적으로 VMware 워크로드를 실행하기 위한 관리되는 서비스입니다.
호스팅 모델 이해
호스팅 모델의 경우 클라우드 서비스는 세 가지 범주로 나뉩니다.
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 서비스입니다.
Note
Azure Functions is an Azure serverless compute offering. 서버리스 워크플로를 제공하는 Logic Apps와 같은 다른 Azure 서버리스 제품과 이 서비스를 비교하는 방법을 보려면 Azure에서 올바른 통합 및 자동화 서비스 선택을 참조하세요.
IaaS에서 순수 PaaS까지 스펙트럼이 있습니다. 예를 들어 Azure VM은 가상 머신 확장 집합을 사용하여 자동으로 크기를 조정할 수 있습니다. 이 기능은 엄밀히 말하면 PaaS는 아니지만 PaaS에서 볼 수 있는 관리 기능 형식입니다.
제어와 관리 용이성 사이에는 상충 관계가 있습니다. IaaS는 가장 많은 제어, 유연성 및 이식성을 제공하지만 사용자가 만든 VM 및 네트워크 구성 요소를 프로비전, 구성 및 관리해야 합니다. FaaS 서비스는 애플리케이션 실행의 거의 모든 측면을 자동으로 관리합니다. PaaS는 그 사이에 있습니다.
Service | Application composition | Density | 최소 노드 개수 | State management | Web hosting |
---|---|---|---|---|---|
Azure Virtual Machines | Agnostic | Agnostic | 1 2 | 상태 비저장/상태 저장 | Agnostic |
Azure App Service | Applications, containers | App Service 계획을 사용하여 인스턴스당 여러 앱 | 1 | Stateless | Built in |
Azure Functions | Functions, containers | Serverless 1 | Serverless 1 | Stateless or stateful 6 | Not applicable |
Azure Kubernetes Service | Containers | 노드당 복수의 컨테이너 지원 | 3 3 | 상태 비저장/상태 저장 | Agnostic |
Azure Container Apps (Azure 컨테이너 애플리케이션) | Containers | Serverless | Serverless | 상태 비저장/상태 저장 | Agnostic |
Azure 컨테이너 인스턴스 | Containers | 전용 인스턴스 없음 | 전용 노드 없음 | Stateless | Agnostic |
Azure Red Hat OpenShift | Containers | 노드당 복수의 컨테이너 지원 | 6 5 | 상태 비저장/상태 저장 | Agnostic |
Azure 서비스 패브릭 | 서비스, 게스트 실행 파일, 컨테이너 | VM당 복수의 서비스 지원 | 5 3 | 상태 비저장/상태 저장 | Agnostic |
Azure Batch | Scheduled jobs | VM당 복수의 앱 지원 | 1 4 | Stateless | No |
Azure VMware 솔루션 | Agnostic | Agnostic | 3 7 | 상태 비저장/상태 저장 | Agnostic |
Notes
- 사용량 플랜을 사용하는 경우. App Service 요금제의 경우, App Service 요금제에 할당된 VM에서 기능 실행. Azure Functions를 위한 올바른 서비스 요금제 선택을 참조하세요.
- 둘 이상의 인스턴스가 있는 더 높은 SLA(서비스 수준 계약)입니다.
- 프로덕션 환경에 권장됩니다.
- 작업 완료 이후 0으로 축소 가능.
- 주 노드의 경우 3개, 작업자 노드의 경우 3개입니다.
- Durable Functions를 사용하는 경우.
- 3개 노드의 최소 수가 필요합니다.
Networking
Service | 가상 네트워크 통합 | Hybrid connectivity |
---|---|---|
Azure Virtual Machines | Supported | Supported |
Azure App Service | Supported 1 | Supported 2 |
Azure Functions | Supported 1 | Supported 3 |
Azure Kubernetes Service | Supported | Supported |
Azure Container Apps (Azure 컨테이너 애플리케이션) | Supported | Supported |
Azure 컨테이너 인스턴스 | Supported | Supported |
Azure Red Hat OpenShift | Supported | Supported |
Azure 서비스 패브릭 | Supported | Supported |
Azure Batch | Supported | Supported |
Azure VMware 솔루션 | Supported | Supported |
Notes
- App Service Environment 또는 전용 컴퓨팅 가격 책정 계층이 필요합니다.
- Azure App Service 하이브리드 연결 사용.
- App Service 요금제 또는 Azure Functions Premium 요금제가 필요합니다.
DevOps
Service | Local debugging | Programming model | Application update |
---|---|---|---|
Azure Virtual Machines | Agnostic | Agnostic | 기본 제공 지원 없음 |
Azure App Service | IIS Express, others 1 | 웹 및 API 애플리케이션, 백그라운드 작업을 위한 WebJob | Deployment slots |
Azure Functions | Azure Studio 또는 Azure Functions CLI | Serverless, event-driven | Deployment slots |
Azure Kubernetes Service | Minikube, Docker 등 | Agnostic | Rolling update |
Azure Container Apps (Azure 컨테이너 애플리케이션) | 로컬 컨테이너 런타임 | Agnostic | Revision management |
Azure 컨테이너 인스턴스 | 로컬 컨테이너 런타임 | Agnostic | Not applicable |
Azure Red Hat OpenShift | Minikube, Docker 등 | Agnostic | Rolling update |
Azure 서비스 패브릭 | 로컬 노드 클러스터 | 게스트 실행 파일, 서비스 모델, 작업자 모델, 컨테이너 | 롤링 업그레이드(서비스당) |
Azure Batch | Not supported | Command-line application | Not applicable |
Azure VMware 솔루션 | Agnostic | Agnostic | 기본 제공 지원 없음 |
Notes
- 옵션에는 ASP.NET 또는 node.js(iisnode), PHP 웹 서버, IntelliJ용 Azure 도구 키트 및 Eclipse용 Azure 도구 키트에 대한 IIS Express가 포함됩니다. App Service는 배포된 웹앱의 원격 디버깅도 지원합니다.
Scalability
Service | Autoscaling | Load balancer | Scale limit3 |
---|---|---|---|
Azure Virtual Machines | 가상 머신 크기 집합 | Azure 부하 분산기 | 플랫폼 이미지: 확장 집합당 1,000개 노드, 사용자 지정 이미지: 확장 집합당 600개 노드 |
Azure App Service | Built-in service | Integrated | 인스턴스 30개, App Service Environment를 갖는 인스턴스 100개 |
Azure Functions | Built-in service | Integrated | 함수 앱당 인스턴스 200개 |
Azure Kubernetes Service | Pod autoscaling1, cluster autoscaling2 | Azure Load Balancer 또는 Azure 애플리케이션 Gateway | 5,000 nodes when using Uptime SLA |
Azure Container Apps (Azure 컨테이너 애플리케이션) | Scaling rules4 | Integrated | 지역당 15개 환경(기본 제한), 환경당 무제한 컨테이너 앱 및 컨테이너 앱당 복제본(사용 가능한 코어에 따라 다름) |
Azure 컨테이너 인스턴스 | Not supported | 기본 제공 지원 없음 | 구독당 컨테이너 그룹 100개(기본 제한) |
Azure Red Hat OpenShift | Pod 자동 크기 조정, 클러스터 자동 크기 조정 | Azure Load Balancer 또는 Azure 애플리케이션 Gateway | 클러스터당 노드 250개(기본 제한) |
Azure 서비스 패브릭 | 가상 머신 크기 집합 | Azure 부하 분산기 | 가상 머신 확장 집합당 노드 100개 |
Azure Batch | Not applicable | Azure 부하 분산기 | 900 전용 및 100 낮은 우선 순위의 코어 제한(기본 제한) |
Azure VMware 솔루션 | Built-in service5 | Integrated6 | VMware당 vCenter는 3~16개의 VMware ESXi 호스트를 관리할 수 있습니다. |
Notes
- Pod 자동 크기 조정을 참조하세요.
- Azure Kubernetes Service의 애플리케이션 요구에 맞게 클러스터 자동 크기 조정을 참조 하세요.
- Azure 구독 및 서비스 제한, 할당량 및 제약 조건을 참조하세요.
- Azure Container Apps에서 크기 조정 규칙 설정을 참조하세요.
Azure VMware Solution 크기 조정을 참조하세요. VMware NSX 참조하세요.
Availability
Service | 다중region 장애 조치(failover) 옵션 |
---|---|
Azure Virtual Machines | Azure Traffic Manager, Azure Front Door 및 지역 간 Azure Load Balancer |
Azure App Service | Azure Traffic Manager 및 Azure Front Door |
Azure Functions | Azure Traffic Manager 및 Azure Front Door |
AKS(Azure Kubernetes Service) | Azure Traffic Manager, Azure Front Door 및 다중Region 클러스터 |
Azure Container Apps (Azure 컨테이너 애플리케이션) | Azure Traffic Manager 및 Azure Front Door |
Azure 컨테이너 인스턴스 | Azure Traffic Manager 및 Azure Front Door |
Azure Red Hat OpenShift | Azure Traffic Manager 및 Azure Front Door |
Azure 서비스 패브릭 | Azure Traffic Manager, Azure Front Door 및 지역 간 Azure Load Balancer |
Azure Batch | Not applicable |
Azure VMware 솔루션 | Not applicable |
서비스 보장에 대한 안내 학습은 Core Cloud Services - Azure 아키텍처 및 서비스 보장을 참조 하세요.
Security
각 서비스에 대해 사용 가능한 보안 컨트롤 및 가시성 검토 및 이해:
- Azure Windows 가상 머신
- Azure Linux 가상 머신
- Azure 앱 서비스
- Azure Functions
- Azure Kubernetes Service
- Azure Container Instances
- Azure Container Apps
- Azure 서비스 패브릭
- Azure Batch
- Azure VMware Solution
Other criteria
Service | TLS | Cost | 적합한 아키텍처 스타일 |
---|---|---|---|
Azure Virtual Machines | VM에 구성됨 | Windows, Linux | N-tier, big compute (HPC) |
Azure App Service | Supported | App Service 가격 책정 | Web-queue-worker |
Azure Functions | Supported | Functions pricing | Microservices, event-driven architecture |
AKS(Azure Kubernetes Service) | Ingress controller | AKS pricing | Microservices, event-driven architecture |
Azure Container Apps (Azure 컨테이너 애플리케이션) | Ingress controller | Container Apps 가격 책정 | Microservices, event-driven architecture |
Azure 컨테이너 인스턴스 | Use sidecar container | Container Instances 가격 책정 | Microservices, task automation, batch jobs |
Azure Red Hat OpenShift | Supported | Azure Red Hat OpenShift 가격 책정 | Microservices, event-driven architecture |
Azure 서비스 패브릭 | Supported | Service Fabric 가격 | Microservices, event-driven architecture |
Azure Batch | Supported | Batch pricing | Big compute (HPC) |
Azure VMware 솔루션 | VM에 구성됨 | Azure VMware Solution 가격 책정 |
VMware 형식을 기반으로 하는 VM 워크로드 |
한도 및 비용 고려
이전 비교 표와 함께 후보 서비스의 다음 측면을 보다 자세히 평가합니다.
Contributors
Microsoft에서 이 문서를 유지 관리합니다. 원래 다음 기여자가 작성했습니다.
- Ayobami Ayodeji | Senior Program Manager
- Jelle Druyts | Principal Service Engineer
- Martin Gjoshevski | Senior Service Engineer
- Phil Huang | Senior Cloud Solution Architect
- Julie Ng | Senior Service Engineer
- Paolo Salvatori | Principal Service Engineer
LinkedIn 비공개 프로필을 보려면, LinkedIn에 로그인하세요.
Next steps
Core Cloud Services - Azure 컴퓨팅 옵션 이 Learn 모듈에서는 컴퓨팅 서비스가 일반적인 비즈니스 요구 사항을 해결하는 방법을 살펴봅니다.