Azure는 애플리케이션 코드를 호스트하는 여러 가지 방법을 제공합니다. 컴퓨팅이라는 용어는 애플리케이션이 실행되는 리소스에 대한 호스팅 모델을 나타냅니다. 이 문서는 애플리케이션에 대한 컴퓨팅 서비스를 선택하는 데 도움이 됩니다.
아키텍처
다음 순서도를 사용하여 후보 컴퓨팅 서비스를 선택합니다.
이 아키텍처의 Visio 파일을 다운로드합니다.
이전 다이어그램은 다음 두 가지 마이그레이션 전략을 참조합니다.
리프트 앤 시프트: 애플리케이션을 다시 디자인하거나 코드를 변경하지 않고 워크로드를 클라우드로 마이그레이션하기 위한 전략입니다. 다시 호스팅이라고도 합니다. 자세한 내용은 Azure 클라우드 마이그레이션 및 현대화 센터를 참조하세요.
클라우드 최적화: 클라우드 네이티브 기능 및 기능을 활용하도록 애플리케이션을 리팩터링하여 클라우드로 마이그레이션하기 위한 전략입니다.
이 순서도의 출력이 시작점입니다. 다음으로 서비스를 평가하여 요구 사항을 충족하는지 확인합니다.
이 문서에는 서비스를 선택하는 데 도움이 되는 몇 가지 테이블이 포함되어 있습니다. 순서도의 초기 후보는 애플리케이션 또는 워크로드에 적합하지 않을 수 있습니다. 이 경우 분석을 확장하여 다른 컴퓨팅 서비스를 포함합니다.
애플리케이션이 여러 워크로드로 구성된 경우 각 워크로드를 개별적으로 평가합니다. 전체 솔루션은 둘 이상의 컴퓨팅 서비스를 통합할 수 있습니다.
기본 기능 이해
이전 섹션에서 선택한 Azure 서비스에 익숙하지 않은 경우 다음 개요 설명서를 참조하세요.
Azure App Service 는 웹앱, 모바일 앱 백 엔드, RESTful API 또는 자동화된 비즈니스 프로세스를 호스팅하기 위한 관리 서비스입니다.
Azure Batch 는 대규모 병렬 및 HPC(고성능 컴퓨팅) 애플리케이션을 실행하기 위한 관리되는 서비스입니다.
Azure Container Apps 는 Kubernetes를 기반으로 하는 관리형 서비스로, 서버리스 환경에서 컨테이너화된 애플리케이션의 배포를 간소화합니다.
Azure Container Instances는 Azure 에서 단일 컨테이너 또는 컨테이너 그룹을 실행하기 위한 서비스입니다. Container Instances는 전체 컨테이너 오케스트레이션을 제공하지 않지만 VM(가상 머신)을 프로비전하거나 상위 수준 서비스를 채택하지 않고도 컨테이너를 구현할 수 있습니다.
Azure Functions 는 이벤트 기반 애플리케이션에 대한 다양한 트리거 유형에 따라 실행되는 관리되는 함수를 제공하는 서비스입니다.
AKS(Azure Kubernetes Service) 는 컨테이너화된 애플리케이션을 실행하기 위한 관리되는 Kubernetes 서비스입니다.
Azure Red Hat OpenShift 는 Kubernetes를 사용하여 프로덕션 환경에서 컨테이너를 실행하기 위한 완전 관리형 OpenShift 클러스터입니다.
Azure Service Fabric은 Azure 또는 온-프레미스를 비롯한 많은 환경에서 실행할 수 있는 분산 시스템 플랫폼입니다.
Azure VMware Solution은 Azure 에서 기본적으로 VMware 워크로드를 실행하기 위한 관리되는 서비스입니다.
Azure Virtual Machines는 Azure 가상 네트워크 내에서 VM을 배포하고 관리하는 서비스입니다.
호스팅 모델 이해
호스팅 모델의 경우 클라우드 서비스는 다음 세 가지 범주로 분류됩니다.
IaaS(Infrastructure as a Service) 를 사용하면 연결된 네트워킹 및 스토리지 구성 요소와 함께 VM을 프로비전할 수 있습니다. 그런 다음 해당 VM에 소프트웨어 및 애플리케이션을 배포할 수 있습니다. 이 모델은 기존 온-프레미스 환경에 가장 가깝습니다. Microsoft는 인프라를 관리하고 VM을 관리합니다.
PaaS(Platform as a Service) 는 VM 또는 네트워킹 리소스를 관리할 필요 없이 애플리케이션을 배포할 수 있는 관리되는 호스팅 환경을 제공합니다. App Service 및 Container Apps는 PaaS 서비스입니다.
FaaS(Functions as a Service) 를 사용하면 코드를 서비스에 배포하여 자동으로 실행할 수 있습니다. Azure Functions는 FaaS 서비스입니다.
비고
Azure Functions는 Azure 서버리스 컴퓨팅 제품입니다. 이 서비스가 서버리스 워크플로용 Azure Logic Apps와 같은 다른 Azure 서버리스 제품과 어떻게 비교되는지 확인하려면 Azure에서 올바른 통합 및 자동화 서비스 선택을 참조하세요.
IaaS에서 완전히 관리되는 PaaS에 이르기까지 다양한 스펙트럼이 있습니다. 예를 들어 Azure VM은 가상 머신 확장 집합을 사용하여 자동으로 크기를 조정할 수 있습니다. 이 기능은 엄격하게 PaaS는 아니지만 PaaS의 관리 기능과 유사합니다.
제어와 관리의 용이성 사이에는 절판이 있습니다. IaaS는 가장 제어, 유연성 및 이식성을 제공합니다. 그러나 만든 VM 및 네트워크 구성 요소를 프로비전, 구성 및 관리해야 합니다. FaaS 서비스는 애플리케이션 실행의 거의 모든 측면을 자동으로 관리합니다. PaaS는 일부 사용자 구성을 요구하면서 부분 관리를 제공합니다.
서비스 | 애플리케이션 컴퍼지션 | 밀도 | 최소 노드 수 | 상태 관리 | 웹 호스팅 |
---|---|---|---|---|---|
Virtual Machines | 불가 지론 | 불가 지론 | 1 2 | 상태 비지정 또는 상태 저장 | 불가 지론 |
App Service | 애플리케이션, 컨테이너 | App Service 계획을 사용하여 각 인스턴스에 대한 여러 앱 | 1 | 상태 비저장 | Built-in |
Azure Functions | 함수, 컨테이너 | 서버리스 1 | 서버리스 1 | 상태 비지정 또는 상태 저장 6 | 해당 없음 |
AKS | Containers | 각 노드에 대한 여러 컨테이너 | 3 3 | 상태 비지정 또는 상태 저장 | 불가 지론 |
Container Apps | Containers | Serverless | Serverless | 상태 비지정 또는 상태 저장 | 불가 지론 |
Container Instances | Containers | 전용 인스턴스 없음 | 전용 노드 없음 | 상태 비저장 | 불가 지론 |
Azure Red Hat OpenShift | Containers | 각 노드에 대한 여러 컨테이너 | 6 5 | 상태 비지정 또는 상태 저장 | 불가 지론 |
Service Fabric | 서비스, 게스트 실행 파일, 컨테이너 | 각 VM에 대한 여러 서비스 | 5 3 | 상태 비지정 또는 상태 저장 | 불가 지론 |
묶음 | 예약된 작업 | 각 VM에 대한 여러 앱 | 1 4 | 상태 비저장 | 아니오 |
Azure VMware 솔루션 | 불가 지론 | 불가 지론 | 3 7 | 상태 비지정 또는 상태 저장 | 불가 지론 |
참고:
1Azure Functions의 경우 소비 계획은 서버리스입니다. App Service 계획의 경우 함수는 해당 계획에 할당된 VM에서 실행됩니다. Azure Functions에 대한 올바른 서비스 계획을 선택합니다.
2둘 이상의 인스턴스가 있는 더 높은 SLA(서비스 수준 계약)입니다.
3프로덕션 환경에 권장됩니다.
4작업이 완료된 후 0으로 축소할 수 있습니다.
5개의 주 노드 3개와 작업자 노드 3개.
6지속성 함수를 사용하는 경우
Networking
서비스 | 가상 네트워크 통합 | 하이브리드 연결 |
---|---|---|
Virtual Machines | 지원됨 | 지원됨 |
App Service | 지원되는 1 | 지원되는 2 |
Azure Functions | 지원되는 1 | 지원되는 3 |
AKS | Supported | 지원됨 |
Container Apps | 지원됨 | 지원됨 |
Container Instances | Supported | Supported |
Azure Red Hat OpenShift | Supported | 지원됨 |
Service Fabric | 지원됨 | 지원됨 |
묶음 | 지원됨 | 지원됨 |
Azure VMware 솔루션 | Supported | Supported |
참고:
1App Service Environment 또는 전용 컴퓨팅 가격 책정 계층이 필요합니다.
2App Service 하이브리드 연결을 사용합니다.
3App Service 계획 또는 Azure Functions Premium 계획이 필요합니다.
DevOps
서비스 | 로컬 디버깅 | 프로그래밍 모델 | 애플리케이션 업데이트 |
---|---|---|---|
Virtual Machines | 불가 지론 | 불가 지론 | 기본 제공 지원 없음 |
App Service | IIS Express, 기타 1 | 웹 및 API 애플리케이션, 백그라운드 작업을 위한 WebJobs | 배포 슬롯 |
Azure Functions | Visual Studio 또는 Azure Functions CLI | 서버리스, 이벤트 기반 | 배포 슬롯 |
AKS | Minikube, Docker, 기타 | 불가 지론 | 롤링 업데이트 |
Container Apps | 로컬 컨테이너 런타임 | 불가 지론 | 수정 버전 관리 |
Container Instances | 로컬 컨테이너 런타임 | 불가 지론 | 해당 없음 |
Azure Red Hat OpenShift | Minikube, Docker, 기타 | 불가 지론 | 롤링 업데이트 |
Service Fabric | 로컬 노드 클러스터 | 게스트 실행 파일, 서비스 모델, 행위자 모델, 컨테이너 | 각 서비스에 대한 롤링 업그레이드 |
묶음 | 지원되지 않음 | 명령줄 애플리케이션 | 해당 없음 |
Azure VMware 솔루션 | 불가 지론 | 불가 지론 | 기본 제공 지원 없음 |
Note:
1옵션에는 ASP.NET 또는 node.js(iisnode), PHP 웹 서버, IntelliJ용 Azure 도구 키트 및 Eclipse용 Azure 도구 키트에 대한 IIS Express가 포함됩니다. App Service는 배포된 웹앱의 원격 디버깅도 지원합니다.
확장성
서비스 | Autoscaling | 부하 분산 장치 | 확장 제한3 |
---|---|---|---|
Virtual Machines | 가상 머신 크기 집합 | Azure 부하 분산기 | 플랫폼 이미지: 각 확장 집합에 대해 1,000개의 노드. 사용자 지정 이미지: 각 확장 집합에 대해 600개 노드 |
App Service | 기본 제공 서비스 | 통합 | 30개 인스턴스, App Service Environment가 있는 100개 |
Azure Functions | 기본 제공 서비스 | 통합 | 각 함수 앱에 대한 인스턴스 200개 |
AKS | Pod 자동 크기 조정1, 클러스터 자동 크기 조정2 | Load Balancer 또는 Azure Application Gateway | 가동 시간 SLA를 사용하는 경우 노드 5,000개 |
Container Apps | 크기 조정 규칙4 | 통합 | 각 지역에 대한 15개 환경(기본 제한), 각 컨테이너 앱의 각 환경 및 복제본에 대한 무제한 컨테이너 앱(사용 가능한 코어에 따라 다름) |
Container Instances | 지원되지 않음 | 기본 제공 지원 없음 | 각 구독에 대해 100개의 컨테이너 그룹(기본 제한) |
Azure Red Hat OpenShift | Pod 자동 크기 조정, 클러스터 자동 크기 조정 | Load Balancer 또는 Application Gateway | 각 클러스터에 대해 250개 노드(기본 제한) |
Service Fabric | 가상 머신 크기 집합 | 부하 분산기 | 각 가상 머신 확장 집합에 대한 100개 노드 |
묶음 | 해당 없음 | 부하 분산기 | 900 전용 및 100 낮은 우선 순위의 코어 제한(기본 제한) |
Azure VMware 솔루션 | 기본 제공 서비스5 | 통합6 | VMware vCenter당 3~16개의 VMware ESXi 호스트 |
참고:
2AKS의 애플리케이션 요구에 맞게 클러스터 자동 크기 조정을 참조하세요.
3Azure 구독 및 서비스 제한, 할당량 및 제약 조건 참조
4Container Apps에서 크기 조정 규칙 설정 참조
6VMware NSX 참조
Availability
서비스 | 다중region 장애 조치(failover) 옵션 |
---|---|
Virtual Machines | Azure Traffic Manager, Azure Front Door 및 지역 간 Load Balancer |
App Service | Traffic Manager 및 Azure Front Door |
Azure Functions | Traffic Manager 및 Azure Front Door |
AKS | Traffic Manager, Azure Front Door 및 다중Region 클러스터 |
Container Apps | Traffic Manager 및 Azure Front Door |
Container Instances | Traffic Manager 및 Azure Front Door |
Azure Red Hat OpenShift | Traffic Manager 및 Azure Front Door |
Service Fabric | Traffic Manager, Azure Front Door 및 지역 간 Load Balancer |
묶음 | 해당 없음 |
Azure VMware 솔루션 | 해당 없음 |
서비스 보장에 대한 안내 학습은 Azure 아키텍처 및 서비스 보장을 참조하세요.
Security
다음 각 서비스에 대해 사용 가능한 보안 제어 및 가시성을 검토하고 이해합니다.
- AKS
- App Service
- Azure Functions
- Linux용 Virtual Machines
- Azure VMware 솔루션
- Windows용 Virtual Machines
- Batch
- 컨테이너 앱
- 컨테이너 인스턴스
- Service Fabric
기타 조건
서비스 | TLS | 비용 | 적합한 아키텍처 스타일 |
---|---|---|---|
Virtual Machines | VM에 구성됨 | Windows, Linux | N 계층, 큰 컴퓨팅 (HPC) |
App Service | 지원됨 | App Service 가격 책정 | Web-queue-worker |
Azure Functions | 지원됨 | Azure Functions 가격 책정 | 마이크로 서비스, 이벤트 기반 아키텍처 |
AKS | 수신 컨트롤러 | AKS 가격 책정 | 마이크로 서비스, 이벤트 기반 아키텍처 |
Container Apps | 수신 컨트롤러 | Container Apps 가격 책정 | 마이크로 서비스, 이벤트 기반 아키텍처 |
Container Instances | 사이드카 컨테이너 사용 | Container Instances 가격 책정 | 마이크로 서비스, 태스크 자동화, 일괄 처리 작업 |
Azure Red Hat OpenShift | 지원됨 | Azure Red Hat OpenShift 가격 책정 | 마이크로 서비스, 이벤트 기반 아키텍처 |
Service Fabric | 지원됨 | Service Fabric 가격 책정 | 마이크로 서비스, 이벤트 기반 아키텍처 |
묶음 | 지원됨 | 일괄 처리 가격 책정 | 빅 컴퓨팅 (HPC) |
Azure VMware 솔루션 | VM에 구성됨 | Azure VMware Solution 가격 책정 | VMware 형식을 기반으로 하는 VM 워크로드 |
제한 및 비용 고려
이전 비교 테이블과 함께 후보 서비스의 다음 측면을 보다 자세히 평가합니다.
기여자
Microsoft는 이 문서를 유지 관리합니다. 다음 기여자는 이 문서를 작성했습니다.
- 아요바미 아요데지 | 선임 프로그램 관리자
- Jelle Druyts | 주 서비스 엔지니어
- Martin Gjoshevski | 선임 서비스 엔지니어
- Phil Huang | 선임 클라우드 솔루션 설계자
- Julie Ng | 선임 서비스 엔지니어
- Paolo Salvatori | 수석 서비스 엔지니어
LinkedIn 비공개 프로필을 보려면, LinkedIn에 로그인하세요.