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를 새로 시작하는 개발자의 경우 다음 차트를 사용하여 제안된 호스팅 솔루션을 찾습니다.

Diagram showing no code, low code in the first box, code in the second box and container in the third box with recommended services for each box.

코드 없음 또는 낮은 코드

Azure 지원 코드 없는 솔루션은 Azure-Cloud 접근 방식의 일부입니다.

  • Logic Apps: 미리 빌드된 작업이 있는 비주얼 디자이너를 사용하여 엔터프라이즈 및 비즈니스-비즈니스 시나리오에 대한 워크플로를 개발합니다.
  • Power Apps와 같은 Power Automate: Microsoft 365 조직 내에서 비즈니스 프로세스 및 워크플로를 자동화해야 하는 경우에 사용합니다.

코드 및 컨테이너

낮은 코드 호스팅 솔루션은 애플리케이션 인프라를 관리할 필요 없이 코드 기능을 가져올 수 있도록 설계되었습니다.

  • Azure Static Web Apps: 생성된 정적 웹앱을 배포합니다.
  • Azure Functions: 애플리케이션 인프라를 관리할 필요 없이 지원되는 언어로 코드 함수를 배포합니다.

코드 우선 호스팅 솔루션은 코드를 호스트하도록 설계되었습니다. 코드를 호스팅 솔루션에 직접 배포할 수 있습니다.

컨테이너 우선 호스팅 솔루션은 컨테이너를 호스트하도록 설계되었습니다. 이 서비스는 컨테이너별 구성 옵션 및 기능을 제공합니다. 컨테이너 내에서 사용되는 컴퓨팅을 담당합니다. 컨테이너를 호스트하는 서비스는 관리되는 제어에서 모든 책임으로 이동하므로 원하는 컨테이너 관리의 양만 수행합니다.

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 시스템을 호스트할 수 있습니다.

Java 리소스

추가 리소스