Azure는 애플리케이션 코드를 호스팅하는 다양한 방법을 제공합니다. 컴퓨팅이라는 용어는 애플리케이션이 실행되는 리소스의 호스팅 모델을 나타냅니다. 이 문서는 애플리케이션에 대한 컴퓨팅 서비스를 선택하는 데 도움이 됩니다.
후보 서비스 선택
다음 순서도를 사용하여 후보 컴퓨팅 서비스를 선택합니다.
이 의사 결정 트리의 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 | 상태 비저장 | 예 |
참고
- 사용량 플랜을 사용하는 경우. App Service 요금제의 경우, App Service 요금제에 할당된 VM에서 기능 실행. Azure Functions를 위한 올바른 서비스 요금제 선택을 참조하세요.
- 둘 이상의 인스턴스가 있는 더 높은 SLA(서비스 수준 계약)입니다.
- 프로덕션 환경에 권장됩니다.
- 작업 완료 이후 0으로 축소 가능.
- 주 노드의 경우 3개, 작업자 노드의 경우 3개입니다.
- 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 | 지원됨 | 지원됨 |
참고
- App Service Environment가 필요합니다.
- Azure App Service 하이브리드 연결 사용.
- 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 | 지원되지 않음 | 명령줄 애플리케이션 | 해당 없음 |
참고
- 옵션에는 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개(기본 한도) |
참고
- Pod 자동 크기 조정을 참조하세요.
- Azure Kubernetes Service의 애플리케이션 요구에 맞게 클러스터 자동 크기 조정을 참조 하세요.
- Azure 구독 및 서비스 제한, 할당량 및 제약 조건을 참조하세요.
- 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 |
AKS(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 아키텍처 및 서비스 보장을 참조 하세요.
보안
각 서비스에 대해 사용 가능한 보안 컨트롤 및 가시성 검토 및 이해:
- Azure Windows 가상 머신
- Azure Linux 가상 머신
- Azure App Service
- Azure Functions
- Azure Kubernetes Service
- Azure Container Instances
- Azure Spring Apps
- Azure Service Fabric
- Azure Batch
기타 조건
서비스 | TLS | 비용 | 적합한 아키텍처 스타일 |
---|---|---|---|
Azure Virtual Machines | VM에 구성됨 | Windows, Linux | N 계층, 큰 컴퓨팅 (HPC) |
Azure App Service | 지원됨 | App Service 가격 책정 | 웹-큐-작업자 |
Azure Functions | 지원됨 | 함수 가격 책정 | 마이크로 서비스, 이벤트 기반 아키텍처 |
AKS(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에서 이 문서를 유지 관리합니다. 원래 다음 기여자가 작성했습니다.
- Ayobami Ayodeji | 선임 프로그램 관리자
- Jelle Druyts | 수석 서비스 엔지니어
- Martin Gjoshevski | 선임 서비스 엔지니어
- Phil Huang | 선임 클라우드 솔루션 설계자
- Julie Ng | 선임 서비스 엔지니어
- Paolo Salvatori | 수석 서비스 엔지니어
LinkedIn 비공개 프로필을 보려면, LinkedIn에 로그인하세요.
다음 단계
Core Cloud Services - Azure 컴퓨팅 옵션 이 Learn 모듈에서는 컴퓨팅 서비스가 일반적인 비즈니스 요구 사항을 해결하는 방법을 살펴봅니다.