빠른 시작: Azure App Service에 Aspire 앱 배포

이 빠른 시작에서는 첫 번째 Aspire 앱을 만들고 Azure App Service에 배포하는 방법을 알아봅니다. Azure App Service는 기본 제공 인프라 유지 관리, 보안 패치 및 크기 조정을 통해 웹앱을 호스팅하기 위한 완전 관리형 플랫폼을 제공합니다.

GitHub Codespaces용 공식 Aspire 개발 컨테이너를 사용하면 이 전체 퀵스타트를 브라우저에서 완료할 수 있습니다. 결국 실행 중인 Aspire 앱이 Azure App Service에 배포됩니다.

Important

Aspire Azure App Service 통합은 현재 프리뷰 단계에 있습니다.

이 퀵스타트는 C# AppHost와 .NET 프로젝트를 사용합니다. Aspire는 TypeScript AppHosts와 다국어 애플리케이션 리소스도 지원합니다. 자세한 내용은 Aspire AppHostAspire 13.5의 새로운 정보를 참조하세요.

필수 조건

GitHub 코드스페이스에서 Aspire 시작 앱 만들기

  1. Aspire 개발 컨테이너 템플릿에서 저장소를 만드세요.

  2. 새 저장소에서 Code>Codespaces>를 선택하세요.메인 코드스페이스를 생성합니다.

    브라우저는 Visual Studio Code로 코드스페이스를 엽니다. 환경에는 Aspire CLI와 신뢰할 수 있는 로컬 HTTPS 개발 인증서가 포함되어 있습니다.

    자세한 내용은 GitHub Codespaces를 이용한 Develop with Aspire를 참조하세요.

  3. 터미널에서 새로운 Aspire 앱을 생성하세요:

    aspire new aspire-starter --name aspire-starter --output aspire-starter
    

    이 명령은 다음을 포함하여 완전한 Aspire 솔루션으로 명명된 aspire-starter 새 디렉터리를 만듭니다.

    • 오케스트레이션을 위한 AppHost 프로젝트
    • 공유 구성에 대한 ServiceDefaults 프로젝트
    • 샘플 API 및 웹 프런트 엔드 프로젝트
  4. 프로젝트 디렉터리로 이동합니다.

    cd aspire-starter
    

Azure App Service 통합 추가

Azure App Service에 배포하도록 Aspire 앱을 구성합니다.

  1. Azure App Service 호스팅 통합 추가:

    aspire add Aspire.Hosting.Azure.AppService
    

    이 명령어는 aspire add AppHost 프로젝트를 감지하고 패키지를 Aspire.Hosting.Azure.AppService 추가합니다. 자세한 내용은 aspire add를 참조하세요.

  2. aspire-starter/aspire-starter를 엽니다. AppHost/AppHost.cs.

  3. 줄 뒤의 Azure App Service 환경을 추가합니다.CreateBuilder

    builder.AddAzureAppServiceEnvironment("app-service-env");
    

    자세한 내용은 Aspire 앱을 실행하기 위해 App Service 환경이 필요한가요?를 참조하세요.

  4. .WithExternalHttpEndpoints()apiservice 프로젝트에 추가합니다. 전체 apiservice 자료는 다음과 같아야 합니다:

    var apiService = builder.AddProject<Projects.aspire_starter_ApiService>("apiservice")
        .WithExternalHttpEndpoints()
        .WithHttpHealthCheck("/health");
    

    Note

    App Service는 외부 HTTP 및 HTTPS 엔드포인트만을 지원하며, 배포된 각 앱마다 하나의 고유한 타겟 포트를 제공합니다. 스타터 템플릿은 이미 프론트엔드 엔드포인트를 노출하고 있습니다. 자세한 내용은 Azure App Service Hosting integration을 참조하세요.

  5. 솔루션 루트에서 실행 aspire run 하여 AppHost를 로컬에서 검증하세요.

    현재 Aspire 대시보드의 스크린샷으로, App Service 환경과 샘플 앱 리소스를 보여줍니다.

Azure에 배포하기

  1. Azure에 로그인:

    az login
    
  2. 애플리케이션 배포:

    aspire deploy
    

    안내 메시지가 나오면 Azure 구독, 위치, 리소스 그룹을 선택하세요. Aspire는 선택한 배포 설정을 AppHost 사용자 비밀로 저장하여 재사용할 수 있도록 합니다.

    aspire deploy 명령은 AppHost.cs 코드에 따라 다음 작업을 수행합니다.

    • 선택한 자원 그룹을 생성하거나 재사용합니다
    • Azure App Service 계획을 만듭니다.
    • Azure Container Registry를 만듭니다
    • 두 개의 App Service 웹앱(API용, 프런트 엔드용)을 만듭니다.
    • 관리되는 Aspire 대시보드 리소스를 만듭니다.
    • 애플리케이션 빌드 및 컨테이너화
    • 컨테이너를 Azure Container Registry에 푸시합니다.
    • App Service에 컨테이너 배포

    배포 설정과 인증에 대한 자세한 내용은 'Azure로 배포하기'를 참조하세요.

  3. 배포가 완료되면 명령어는 배포된 서비스와 Aspire 대시보드의 엔드포인트 URL을 표시합니다.

    배포 흐름에 대한 자세한 내용은 Deploy to Azure App Service를 참조하세요.

Aspire 앱 찾아보기

  1. 배포 출력에서 서비스의 URL을 찾습니다 webfrontend . 다음과 유사합니다.

    webfrontend: https://webfrontend-xxxxx.azurewebsites.net
    
  2. URL을 복사하고 새 브라우저 탭에서 엽니다.

    Azure App Service에서 실행 중인 Aspire 시작 앱이 표시됩니다. 웹 프런트 엔드는 API 서비스와 통신하여 분산 아키텍처를 보여 줍니다.

  3. 앱을 탐색하여 제대로 작동하는지 확인합니다.

  4. Aspire 대시보드를 보려면 배포 출력에서 Aspire 대시보드 URL을 찾아 새 브라우저 탭에서 엽니다.

Azure Portal에서 배포 세부 정보 보기

  1. Azure Portal로 이동하십시오.

  2. 검색 창에서 리소스 그룹을 입력하고 리소스 그룹을 선택합니다.

  3. aspire deploy 중에 선택한 리소스 그룹을 찾아 선택합니다.

    Aspire가 배포한 Aspire 앱의 리소스 그룹 뷰 스크린샷입니다.

    다음 리소스가 표시됩니다.

    • App Service Plan (앱 서비스 계획): 호스팅 인프라
    • App Services: 웹 프런트 엔드 및 API 서비스 앱
    • Aspire Dashboard: 역할 기반 접근 제어(RBAC)로 보호되는 관리된 Azure 리소스입니다.
    • 컨테이너 레지스트리: 컨테이너 이미지 저장
    • 사용자 할당 ID: 서비스 간에 보안 액세스 제공

자원을 정리하세요

Azure 리소스가 더 이상 필요하지 않은 경우 요금이 발생하지 않도록 삭제합니다.

  1. 코드스페이스 터미널에서 다음을 실행합니다.

    aspire destroy
    
  2. 요청이 나오면 배치된 환경을 파괴하고 싶다는 것을 확인하세요.

이 명령어는 App Service 환경에서 등록한 파괴 단계를 실행합니다. 자세한 내용은 aspire destroy를 참조하세요.

Caution

aspire destroy Aspire가 생성하지 않은 자원을 포함한 전체 리소스 그룹을 삭제합니다. 확인하기 전에 대상 자원 그룹을 확인하세요.

자주 묻는 질문

Aspire 앱을 실행하려면 App Service 환경이 필요한가요?

No. AddAzureAppServiceEnvironment는 이름과는 달리 Isolated 계층에 App Service Environment를 프로비저닝하지는 않습니다. 이 시스템은 애플리케이션의 App Service 호스팅 인프라를 나타내는 Aspire 환경 자원을 생성합니다.

AddAzureAppServiceEnvironment를 호출하면 다음 항목이 프로비전됩니다.

  • Azure App Service 계획(프리미엄 P0V3 계층, 기본 설정으로 Linux에서 실행)
  • 컨테이너 이미지를 저장하기 위한 Azure Container Registry
  • 서비스 간 보안 액세스를 위한 사용자 할당 관리 ID

이 Aspire 환경 개념은 리소스를 함께 그룹화하고 Azure App Service에 Aspire 앱을 배포하는 데 필요한 인프라를 제공합니다.

App Service 배포를 사용자 지정하려면 어떻게 해야 하나요?

AppHost.cs 구성을 수정하여 App Service 배포를 사용자 지정할 수 있습니다. Azure App Service 통합은 배포를 사용자 지정하는 여러 가지 방법을 제공합니다.

  • App Service 계획 구성: SKU, 계층 및 크기 조정 옵션 설정
  • App Service 설정 사용자 지정: 환경 변수, 연결 문자열 및 앱 설정 추가
  • 인프라 구성: 네트워킹, 인증 및 기타 Azure 리소스 수정
  • 기존 리소스 사용: 기존 App Service 계획 또는 기타 Azure 리소스에 연결

자세한 내용은 Azure App Service에 대한 Aspire 앱 구성을 참조하세요.

지원되는 App Service 워크로드 및 배포 동작에 대한 자세한 내용은 Azure App Service Hosting 통합Deploy to Azure App Service를 참조하세요.

다음 단계

Azure App Service에 Aspire 앱을 성공적으로 배포했습니다. 다음은 탐색할 몇 가지 다음 단계입니다.

Azure App Service 기능 살펴보기