Azure Stack Hub에서 VM에 C# ASP.NET 웹앱 배포

Azure Stack Hub에서 C# ASP.NET 웹앱을 호스트하는 VM(가상 머신)을 만들 수 있습니다. 이 문서에서는 서버를 설정하고 C# ASP.NET 웹앱을 호스트하도록 구성한 다음 Visual Studio에서 바로 앱을 배포하는 방법을 보여 줍니다.

이 문서에서는 Azure Stack Hub를 사용하는 방법에 대해 설명합니다. Azure Stack Hub를 사용하여 데이터 센터에서 Azure를 실행할 수 있습니다. 글로벌 Azure에 대한 지침을 찾고 있는 경우 Visual Studio를 사용하여 Azure에 ASP.NET Core 앱 게시를 검사.

필수 조건

None

VM 만들기

VM을 Create .NET 웹앱을 호스트하는 데 필요한 구성 요소를 설치합니다. VM에 IIS 관리 콘솔, 웹 관리 서비스, .NET 런타임 및 Microsoft 웹 배포가 필요합니다. 개발 컴퓨터에서 웹 서버 및 웹 배포용 포트를 열어야 합니다. .NET 런타임을 설치할 때 대상 서버와 개발 컴퓨터 모두에서 동일한 버전의 .NET을 사용하고 있는지 확인합니다.

  1. Windows Server VM을 Create.

  2. VM에 IIS(관리 콘솔 포함) 및 .NET 5.0 구성 요소를 설치하려면 PowerShell 5.x 콘솔에서 다음 스크립트를 실행합니다.

    # Install IIS (with Management Console)
    Install-WindowsFeature -name Web-Server -IncludeManagementTools
    
    # Install Web Management Service
    Install-WindowsFeature -Name Web-Mgmt-Service
    
  3. VM에서 .NET 5.0 을 다운로드합니다.

  4. 웹 배포 v3.6을 다운로드합니다. MSI 파일에서 설치한 다음 모든 기능을 사용하도록 설정합니다.

  5. Azure Stack Hub 포털에서 VM의 네트워크 설정에 나열된 포트를 엽니다.

    a. 테넌트용 Azure Stack Hub 포털을 엽니다.

    b. VM에 대한 Search. VM을 dashboard 고정했거나 Search 리소스 상자에서 검색할 수 있습니다.

    다. 네트워킹을 선택합니다.

    d. VM에서 인바운드 포트 규칙 추가 를 선택합니다.

    e. 다음 포트에 대한 인바운드 보안 규칙을 추가합니다.

    포트 프로토콜 Description
    80 HTTP HTTP(Hypertext Transfer Protocol)는 서버에서 웹 페이지를 배달하는 데 사용되는 프로토콜입니다. 클라이언트는 DNS 이름 또는 IP 주소를 사용하여 HTTP를 통해 연결합니다.
    443 HTTPS HTTPS(Hypertext Transfer Protocol Secure)는 보안 인증서가 필요하고 암호화된 정보 전송을 허용하는 보안 버전의 HTTP입니다.
    22 SSH SSH(Secure Shell)는 보안 통신을 위한 암호화된 네트워크 프로토콜입니다. 이 연결을 SSH 클라이언트와 함께 사용하여 VM을 구성하고 앱을 배포합니다.
    3389 RDP 선택 사항입니다. 원격 데스크톱 프로토콜을 사용하면 원격 데스크톱 연결에서 컴퓨터의 그래픽 사용자 인터페이스를 사용할 수 있습니다.
    8172 사용자 지정 웹 배포에서 사용하는 포트입니다.

    각 포트에 대해 다음을 수행합니다.

    a. 원본에서 모두를 선택합니다.

    b. 원본 포트 범위에 별표(*)를 입력합니다.

    다. 대상에 대해 Any를 선택합니다.

    d. 대상 포트 범위에 열려는 포트를 추가합니다.

    e. 프로토콜모두를 선택합니다.

    f. 동작에 대해 허용을 선택합니다.

    g. 우선 순위의 경우 기본 선택을 그대로 둡니다.

    h. 포트가 열려 있는 이유를 기억하기 위해 이름설명을 입력합니다.

    i. 추가를 선택합니다.

  6. Azure Stack Hub의 VM에 대한 개요 설정에서 서버의 DNS 이름을 만듭니다. 사용자는 URL을 사용하여 웹 사이트에 연결할 수 있습니다.

    a. 테넌트용 Azure Stack Hub 포털을 엽니다.

    b. VM에 대한 Search. VM을 dashboard 고정했거나 Search 리소스 상자에서 검색할 수 있습니다.

    다. 개요를 선택합니다.

    d. DNS에서 구성을 선택합니다.

    e. 할당에서 동적을 선택합니다.

    f. 전체 URL이 mywebapp.region.cloudapp.azurestack.corp.contoso.com 같이 되도록 mywebapp과 같은 DNS 이름 레이블을 입력합니다.

앱 만들기

Visual Studio에서 기본 .NET 앱, 사용자 고유의 웹앱 중 하나를 사용할 수 있습니다. 예를 들어 Visual Studio를 사용하여 Azure에 ASP.NET Core 앱 게시를 참조하세요. 이 문서에서는 Visual Studio 2019의 Azure Virtual Machines 게시 기능을 사용하여 Azure 가상 머신에 ASP.NET 웹앱을 만들고 게시하는 방법을 설명합니다. 앱을 로컬로 설치하고 실행 중인지 확인한 후에는 게시 대상을 Azure Stack Hub instance Windows VM으로 업데이트합니다.

앱 배포 및 실행

개발 컴퓨터에서 Azure Stack Hub의 VM으로 게시 대상을 Create.

  1. 솔루션 탐색기 프로젝트를 마우스 오른쪽 단추로 클릭한 다음 게시를 선택합니다.

    Azure Stack Hub 게시에 ASP.NET 웹앱 배포

  2. 게시 창에서 새로 만들기를 선택합니다.

  3. 웹 서버(IIS)를 선택합니다.

  4. 다음웹 배포>다음>을 선택합니다.

  5. 서버의 경우 앞에서 정의한 DNS 이름(예: mywebapp.region.cloudapp.azurestack.corp.contoso.com)을 입력합니다.

  6. 사이트 이름에 을 입력하거나 대상 서버의 IIS에서 사용되는 이름을 입력Default Web Site합니다.

  7. 사용자 이름에 컴퓨터의 사용자 이름을 입력합니다.

  8. 암호에 컴퓨터의 암호를 입력합니다.

  9. 대상 URL에 사이트의 URL(예: http://mywebapp.region.cloudapp.azurestack.corp.contoso.com)을 입력합니다.

    ASP.NET 웹앱 배포 - 웹 배포 구성

  10. 웹 배포 구성의 유효성을 검사하려면 연결 유효성 검사를 선택하고 다음을 선택합니다.

  11. 구성릴리스로 설정합니다.

  12. 대상 프레임워크net5.0으로 설정합니다.

  13. 배포 모드프레임워크 종속 모드로 설정합니다.

  14. 대상 런타임을win-x64로 설정합니다.

  15. 저장을 선택합니다.

  16. 게시를 선택합니다. Visual Studio의 콘솔에 다음 출력이 표시됩니다.

    Publish Succeeded.
    Web App was published successfully http://mywebapp.region.cloudapp.azurestack.corp.contoso.com/
    ========== Build: 1 succeeded, 0 failed, 0 up-to-date, 0 skipped ==========
    ========== Publish: 1 succeeded, 0 failed, 0 skipped ==========
    
  17. 새 서버로 이동합니다. 실행 중인 웹 애플리케이션이 표시됩니다.

    mywebapp.region.cloudapp.azurestack.corp.contoso.com