Azure에서 애플리케이션 호스팅
개발자가 Azure를 시작하는 데 도움이 되는 7개 문서 시리즈의 3부입니다.
- 1부: 개발자용 Azure 개요
- 2부: 개발자를 위한 주요 Azure 서비스
- 3부: Azure에서 애플리케이션 호스팅
- 4부: Azure 서비스에 앱 연결
- 5부: Azure에서 리소스를 만들고 관리할 어떻게 할까요? 있나요?
- 6부: Azure 앱을 빌드하기 위한 주요 개념
- 7부: 어떻게 청구합니까?
Azure는 필요에 따라 애플리케이션을 호스트하는 다양한 방법을 제공합니다. 이 문서에서는 요구 사항에 맞는 서비스를 제안합니다. 그것은 규범적이지 않습니다. 요구 사항에 맞게 서비스를 혼합하고 일치시킬 수 있습니다. 대부분의 프로덕션 환경에서는 비즈니스 및 조직의 요구 사항을 충족하기 위해 서비스 조합을 사용합니다.
선택하는 서비스는 종종 다음 두 가지 고려 사항으로 내려옵니다.
- 단순성 또는 제어를 선호합니까?
- 클라우드 네이티브(즉, 컨테이너) 또는 Azure 네이티브(맞춤형 도구 및 통합)를 선호합니까?
다음 비디오에서는 첫 번째 고려 사항인 단순성 및 제어에 대해 설명합니다.
단순성 및 제어
Azure 호스팅 서비스에는 다음 두 가지 고려 사항이 제공됩니다.
- 단순성 및 제어
- 간단한 호스팅 플랫폼은 구성 및 관리가 덜 필요하지만 기본 인프라에 대한 제어를 덜 제공합니다.
- 더 복잡한 호스팅 플랫폼에는 더 많은 구성과 관리가 필요하지만 기본 인프라에 대한 더 많은 제어를 제공합니다.
- 클라우드 네이티브 및 Azure 네이티브
- 클라우드 네이티브는 컨테이너와 같은 오픈 소스 워크로드 및 Dapr과 같은 오픈 소스 기술을 사용하여 클라우드 이식 가능으로 생각할 수 있습니다. 빌드하는 애플리케이션은 모든 클라우드 공급자에 배포할 수 있습니다.
- Azure 네이티브는 해당 인프라를 관리하기 위한 Azure 관련 도구 및 기술에 대한 투자를 통해 Azure에만 적용됩니다. 이러한 서비스에는 컨테이너 워크로드가 포함되지만 Azure 서비스 간의 연결 및 통합에 중점을 두고 Azure와 관련된 코드 우선, 하위 코드 및 인프라 도구도 포함됩니다.
간소화된 호스팅
간소화된 호스팅 솔루션은 Azure에서 완전히 관리됩니다. 코드 및 환경 구성과 같은 기능을 담당합니다. Azure는 업데이트 및 패치를 포함하여 기본 런타임 및 인프라를 관리합니다. 간소화된 호스팅은 Azure 네이티브 접근 방식입니다.
- Logic Apps: 코드를 거의 또는 전혀 사용하지 않고 자동화된 워크플로를 만들고 실행합니다.
- Power Automate: 비즈니스 프로세스 및 워크플로를 자동화해야 하는 경우에 사용합니다.
- Azure Static Web Apps: Blazor 및 React와 같은 생성된 정적 웹앱을 배포합니다.
- Azure Functions 앱: 서버리스 코드 또는 컨테이너 호스팅.
균형 잡힌 호스팅
균형 잡힌 호스팅 솔루션은 단순성 요구와 제어의 필요성의 균형을 유지합니다. 코드 및 환경 구성과 같은 기능을 담당합니다. Azure는 업데이트 및 패치를 포함하여 기본 런타임 및 인프라를 관리합니다. 사용자 고유의 컨테이너를 서비스로 가져올 수도 있습니다. 분산 호스팅은 Azure 네이티브 및 클라우드 네이티브입니다.
- Azure 앱 서비스: 언어 런타임, 컨테이너 및 자동화 워크로드를 포함한 전체 서비스 웹 호스팅입니다.
- Azure Container Apps: 서버리스 컨테이너 호스팅.
- Azure Spring Apps: Spring Boot 애플리케이션을 Azure 클라우드로 마이그레이션합니다.
제어된 호스팅
제어된 호스팅 솔루션을 사용하면 기본 인프라를 완전히 제어할 수 있습니다. 코드, 자산 및 환경 구성뿐만 아니라 업데이트 및 패치도 담당합니다. 제어된 호스팅은 클라우드 네이티브 접근 방식입니다.
- Azure Virtual Machines: VM을 완전히 제어합니다.
- Azure Kubernetes Service: Kubernetes 클러스터의 모든 권한.
소스 코드 호스팅
새 개발을 시작하려는 Azure를 새로 시작하는 개발자의 경우 다음 차트를 사용하여 제안된 호스팅 솔루션을 찾습니다.
코드 없음 또는 낮은 코드
Azure 지원 코드 없는 솔루션은 Azure-Cloud 접근 방식의 일부입니다.
- Logic Apps: 미리 빌드된 작업이 있는 비주얼 디자이너를 사용하여 엔터프라이즈 및 비즈니스-비즈니스 시나리오에 대한 워크플로를 개발합니다.
- Power Apps와 같은 Power Automate: Microsoft 365 조직 내에서 비즈니스 프로세스 및 워크플로를 자동화해야 하는 경우에 사용합니다.
코드 및 컨테이너
낮은 코드 호스팅 솔루션은 애플리케이션 인프라를 관리할 필요 없이 코드 기능을 가져올 수 있도록 설계되었습니다.
- Azure Static Web Apps: 생성된 정적 웹앱을 배포합니다.
- Azure Functions: 애플리케이션 인프라를 관리할 필요 없이 지원되는 언어로 코드 함수를 배포합니다.
코드 우선 호스팅 솔루션은 코드를 호스트하도록 설계되었습니다. 코드를 호스팅 솔루션에 직접 배포할 수 있습니다.
- Azure 앱 서비스: 전체 서비스 웹 호스팅.
- Azure Spring Apps: Spring Boot 애플리케이션.
컨테이너 우선 호스팅 솔루션은 컨테이너를 호스트하도록 설계되었습니다. 이 서비스는 컨테이너별 구성 옵션 및 기능을 제공합니다. 컨테이너 내에서 사용되는 컴퓨팅을 담당합니다. 컨테이너를 호스트하는 서비스는 관리되는 제어에서 모든 책임으로 이동하므로 원하는 컨테이너 관리의 양만 수행합니다.
Kubernetes 중심 오케스트레이션 호스팅에는 다음이 포함됩니다.
서비스 | 포커스 | 사용할 용어 |
---|---|---|
Azure Kubernetes Service | 클라우드 네이티브 | 구성 파일 및 외부 아티팩트를 사용하는 선언적 접근 방식의 Kubernetes 클러스터에 사용합니다. |
Azure Service Fabric | Azure 네이티브 | 컴퓨터 클러스터에 마이크로 서비스를 배포하는 데 명령적 접근 방식을 사용합니다. 개발자가 시스템의 원하는 상태를 설명하는 코드를 작성할 수 있도록 하는 프로그래밍 모델을 제공하며 Service Fabric 런타임은 시스템이 해당 상태와 일치하도록 합니다. |
미리 구성된 컨테이너 호스팅은 오케스트레이션 옵션이 미리 구성되어 있음을 의미합니다. 컨테이너 또는 컨테이너 클러스터 간에 통신하는 기능에는 Dapr과 같은 추가 서비스가 필요할 수 있습니다.
서비스 | 사용할 용어 |
---|---|
Azure App Service | 전체 서비스 웹 호스팅 |
Azure Spring Apps | Spring Boot 애플리케이션 |
Azure Container Apps | 서버리스 컨테이너 호스팅 |
Azure Container Instances | 단순 단일 컨테이너 호스팅 |
Azure는 컨테이너 이미지를 저장하고 관리하는 컨테이너 레지스트리를 제공하거나 타사 컨테이너 레지스트리를 사용할 수 있습니다.
서비스 | 사용할 용어 |
---|---|
Azure Container Registry | 소스 코드 커밋 및 기본 이미지 업데이트로 트리거할 수 있는 고유한 컨테이너 이미지를 빌드하고 호스트할 때 사용합니다. |
서버를 사용하지 않음
서버리스 호스팅 솔루션은 사용되지 않을 때 0으로 크기가 조정되는 소비 기반 가격 책정 계층을 포함하는 상태 비지방 코드를 실행하도록 설계되었습니다.
서비스 | 사용할 용어 |
---|---|
Azure Container Apps | 컨테이너 호스팅. |
Azure Functions | 코드 또는 컨테이너 호스팅. |
마이크로 서비스
솔루션을 호스팅하는 마이크로 서비스는 더 큰 애플리케이션을 구성하기 위해 함께 작동하는 소규모의 독립적인 서비스를 실행하도록 설계되었습니다. 마이크로 서비스는 일반적으로 컨테이너로 배포됩니다.
서비스 | 사용할 용어 |
---|---|
Azure Container Apps | 서버리스 컨테이너화된 마이크로 서비스에 사용합니다. |
Azure Functions | 서버리스 코드 또는 컨테이너화된 마이크로 서비스에 사용합니다. |
클라우드 에지
클라우드 에지는 클라우드 서비스가 사용자(클라이언트) 또는 애플리케이션(서버)에게 혜택을 주기 위해 있는지 여부를 나타내는 용어입니다.
클라이언트 컴퓨팅
클라이언트 컴퓨팅 은 Azure 클라우드에서 멀리 떨어진 클라이언트에서 실행되는 컴퓨팅입니다. 클라이언트 컴퓨팅은 일반적으로 브라우저 기반 또는 모바일 애플리케이션과 같은 클라이언트 쪽 렌더링 및 클라이언트 쪽 처리에 사용됩니다.
서비스 | 사용할 용어 |
---|---|
Azure Static Web Apps | React, Angular, Svelte, Vue 및 Blazor와 같은 클라이언트 쪽 렌더링을 사용하는 정적 웹앱에 사용합니다. |
클라이언트 가용성
서비스 | 사용할 용어 |
---|---|
Azure Front Door | 모든 인터넷 연결 애플리케이션을 사용하여 DDoS 보호, 엔드투엔드 TLS 암호화, 애플리케이션 방화벽 및 지역 필터링을 포함하여 정적 및 동적 자산에 전역 캐시되고 안전한 네트워크를 제공합니다. |
서버 컴퓨팅
서버 컴퓨팅 자산은 클라이언트에 제공되기 전에 서버에서 처리하는 파일입니다. 동적 자산은 필요에 따라 다른 Azure 서비스와 통합된 백 엔드 서버 컴퓨팅을 사용하여 개발됩니다.
서비스 | 사용할 용어 |
---|---|
Azure App Service | 일반적인 웹 호스팅에 이 서비스를 사용합니다. 이 기능은 다양한 기능 API 엔드포인트, 전체 스택 애플리케이션 및 백그라운드 작업을 지원합니다. 이 서비스에는 많은 프로그래밍 언어 런타임뿐만 아니라 컨테이너에서 사용자 고유의 스택, 언어 또는 워크로드를 제공하는 기능이 함께 제공됩니다. |
Azure Functions | 이 서비스를 사용하여 Azure 서비스의 HTTP 엔드포인트 또는 이벤트 기반 트리거에 대해 지원되는 언어로 사용자 고유의 코드를 제공합니다. |
Azure Spring Apps | 코드 변경 없이 Spring Boot 애플리케이션을 배포하는 데 사용합니다. |
Azure Container Apps | 서버리스 플랫폼에서 관리되는 마이크로 서비스 및 컨테이너화된 애플리케이션을 호스트하는 데 사용합니다. |
Azure Container Instances | 컨테이너 오케스트레이션이 필요하지 않은 간단한 컨테이너 시나리오에 사용합니다. |
Azure Kubernetes Service | Kubernetes 클러스터가 필요한 경우 이 서비스를 사용합니다. 클러스터를 관리하는 컨트롤 플레인은 추가 비용 없이 만들어지고 제공됩니다. |
서버 엔드포인트 관리
서버 엔드포인트 관리는 게이트웨이를 통해 서버 엔드포인트 및 해당 컴퓨팅을 관리하는 기능입니다. 이 게이트웨이는 버전 관리, 캐싱, 변환, API 정책 및 모니터링과 같은 기능을 제공합니다.
서비스 | 사용할 용어 |
---|---|
Azure API Management | 할당량 및 속도 제한, 인증 및 권한 부여, 변환 및 캐시된 응답을 포함하여 API 게이트웨이를 사용하여 REST, OpenAPI 및 GraphQL API를 제품화할 때 이 서비스를 사용합니다. |
Azure Application Gateway | 지역 부하 분산(OSI 계층 7)에 사용합니다. URL 경로 또는 호스트 헤더를 기반으로 트래픽을 라우팅하는 데 사용할 수 있으며 SSL 오프로드, 쿠키 기반 세션 선호도 및 WAF(웹 애플리케이션 방화벽) 기능을 지원합니다. |
Azure Front Door | 글로벌 부하 분산(OSI 계층 7)에 사용하여 DDoS 보호, 엔드투엔드 TLS 암호화, 애플리케이션 방화벽 및 지역 필터링을 비롯한 정적 및 동적 자산에 전역 캐시 및 보안 네트워크를 제공합니다. |
Azure Traffic Manager | DNS(OSI 계층 7)를 통해 글로벌 Azure 지역의 공용 애플리케이션에 트래픽을 분산하는 데 사용합니다. Traffic Manager는 DNS를 사용하여 트래픽 라우팅 방법에 따라 클라이언트 요청을 적절한 서비스 엔드포인트로 보냅니다. 우선 순위, 성능 및 지리적 라우팅과 같은 다양한 트래픽 라우팅 방법을 지원합니다. 여러 지역 또는 데이터 센터에서 트래픽을 관리하는 데 적합합니다. |
자동화된 컴퓨팅
자동화된 컴퓨팅 은 시간 제한 일정 또는 다른 Azure 서비스와 같은 이벤트에 의해 자동화되며 일반적으로 백그라운드 처리, 일괄 처리 또는 장기 실행 프로세스에 사용됩니다.
서비스 | 사용할 용어 |
---|---|
Power Automate | 비즈니스 프로세스 및 워크플로를 자동화해야 하는 경우에 사용합니다. |
Azure Functions | 시간 제한 일정에 따라 또는 다른 Azure 서비스의 이벤트에 대한 응답으로 코드를 실행해야 하는 경우에 사용합니다. |
컨테이너 서비스(Azure Container Instances, Azure Kubernetes Service, Azure Container Apps) | 표준 자동화 가능한 워크로드에 사용 |
Azure Batch | 고성능 자동화가 필요한 경우에 사용합니다. |
하이브리드 클라우드
하이브리드 클라우드는 회사의 온-프레미스 프라이빗 클라우드 서비스와 타사 퍼블릭 클라우드를 조직의 애플리케이션 및 워크로드를 실행하기 위한 유연한 단일 인프라에 연결하는 컴퓨팅 환경입니다.
서비스 | 사용할 용어 |
---|---|
Azure Arc | 보안, 거버넌스, 인벤토리 및 관리를 비롯한 클라우드 및 온-프레미스 리소스를 모두 전체 환경을 관리해야 하는 경우에 사용합니다. |
자체 인프라를 유지 관리할 필요가 없는 경우 Azure Stack HCI를 사용하여 온-프레미스에서 가상 머신을 실행할 수 있습니다.
고성능 컴퓨팅
HPC(고성능 컴퓨팅)는 고급 애플리케이션 프로그램을 효율적이고 안정적이며 신속하게 실행하기 위한 병렬 처리를 사용합니다. 이 용어는 특히 테라플롭 또는 초당 10^12개의 부동 소수점 연산을 초과하는 시스템에 적용됩니다.
서비스 | 사용할 용어 |
---|---|
Azure Batch | Azure Batch는 컴퓨팅 노드(가상 머신) 풀을 만들고 관리하며, 사용자가 실행하려는 애플리케이션을 설치하며, 노드에서 실행할 작업을 예약합니다. 개발자는 Batch를 플랫폼 서비스로 사용하여 대규모 실행이 필요한 SaaS 애플리케이션 또는 클라이언트 앱을 빌드할 수 있습니다. |
Azure BareMetal 인스턴스 | 운영 체제, 스토리지 및 네트워크에 대한 루트 수준 액세스를 사용하여 가상화되지 않은 환경에서 실행해야 하는 경우에 사용합니다. |
Azure Quantum 작업 영역 | 양자 알고리즘을 개발하고 실험해야 하는 경우에 사용합니다. |
Microsoft Genomics | ISO 인증 HIPAA 규격 게놈 처리에 사용합니다. |
Azure의 고성능 컴퓨팅에 대해 자세히 알아봅니다.
이벤트 기반 컴퓨팅
이벤트 기반 컴퓨팅 은 시간 제한 일정 또는 다른 Azure 서비스와 같은 이벤트에 의해 트리거되는 컴퓨팅입니다. 이벤트 기반 컴퓨팅은 일반적으로 백그라운드 처리, 일괄 처리 또는 장기 실행 프로세스에 사용됩니다.
서비스 | 사용할 용어 |
---|---|
Power Virtual Agents | 코드 없는 인터페이스를 사용하여 챗봇을 만들어야 하는 경우에 사용합니다. |
Azure Functions | 시간 제한 일정에 따라 또는 다른 Azure 서비스의 이벤트에 대한 응답으로 코드를 실행해야 하는 경우에 사용합니다. |
Azure Service Bus 메시징 | 애플리케이션 및 서비스를 분리해야 하는 경우에 사용합니다. |
CI/CD 컴퓨팅
CI/CD 컴퓨팅 은 애플리케이션을 빌드하고 배포하는 데 사용되는 컴퓨팅입니다.
서비스 | 설명 |
---|---|
Azure DevOps | 애플리케이션을 빌드하고 배포하는 호스트된 에이전트에 대한 인증 및 권한 부여를 포함하여 Azure 클라우드와의 긴밀한 통합을 위해 Azure DevOps를 사용합니다. |
GitHub Actions | GitHub Actions를 사용하여 GitHub 리포지토리 애플리케이션을 빌드하고 배포합니다. Azure CLI를 사용하여 작업 내에서 Azure에 안전하게 액세스합니다. |
Azure Virtual Machines | 다른 CI/CD 시스템을 사용하는 경우 Azure Virtual Machines를 사용하여 CI/CD 시스템을 호스트할 수 있습니다. |