Azure Stack Hub에서 웹앱을 호스트하는 Linux VM 배포

Azure Marketplace Ubuntu 이미지를 사용하여 웹 프레임워크로 만든 웹앱을 호스트하여 기본 Linux VM(가상 머신)을 만들고 배포할 수 있습니다.

이 VM은 다음을 사용하여 웹앱을 호스트할 수 있습니다.

  • Python: 일반적인 Python 웹 프레임워크에는 Flask, Bottle 및 Django가 포함됩니다.
  • Go: 일반적인 Go 프레임워크에는 Revel, Martini, Gocraft/web 및 Gorilla가 포함됩니다.
  • Ruby: Ruby 웹앱을 제공하는 프레임워크로 Ruby on Rails를 설정합니다.
  • Java: Java를 사용하여 Apache Tomcat 서버에 게시하는 웹앱을 개발합니다. Linux에 Tomcat을 설치한 다음 Java WAR 파일을 서버에 직접 배포할 수 있습니다.

이 문서의 지침을 사용하여 Linux OS를 사용하는 모든 웹앱, 프레임워크 및 백 엔드 기술을 사용하여 시작하고 실행합니다. 그런 다음 Azure Stack Hub를 사용하여 인프라를 관리하고 기술 내의 관리 도구를 사용하여 앱에 대한 유지 관리 작업을 처리할 수 있습니다.

웹앱용 Linux VM 배포

이 프로세스에서는 비밀 키를 만들고, Linux VM의 기본 이미지를 사용하고, VM의 특정 특성을 지정한 다음, VM을 만듭니다. VM을 만든 후 VM 작업 및 VM이 앱을 호스트하는 데 필요한 포트를 엽니다. 다음으로 DNS 이름을 만듭니다. 마지막으로 apt-get 유틸리티를 사용하여 VM에 연결하고 컴퓨터를 업데이트합니다. 프로세스를 완료하면 Azure Stack Hub instance 웹앱을 호스트할 준비가 된 VM이 있습니다.

시작하기 전에 필요한 모든 것이 준비되었는지 확인합니다.

사전 요구 사항

  • Ubuntu Server 16.04 LTS 이미지에 액세스할 수 있는 Azure Stack Hub 구독입니다. 이미지의 이후 버전을 사용할 수 있지만 이러한 지침은 16.04 LTS를 염두에 두고 작성되었습니다. 이 이미지가 없는 경우 클라우드 운영자에게 문의하여 Azure Stack Hub Marketplace에 이미지를 가져옵니다.

포털을 사용하여 VM 배포

VM을 배포하려면 다음 몇 섹션의 지침을 따릅니다.

VM 만들기

  1. 서버에 대한 SSH(Secure Shell) 공개 키를 만듭니다. 자세한 내용은 SSH 공개 키를 사용하는 방법을 참조하세요.

  2. Azure Stack Hub 포털에서 리소스> 만들기Compute>Ubuntu Server 16.04 LTS를 선택합니다.

    Azure Stack Hub VM에 웹앱 배포

  3. 가상 머신 만들기 창에서 1에 대해 입니다. 기본 설정 구성:

    a. VM의 이름을 입력합니다.

    b. 프리미엄 SSD(프리미엄 디스크의 경우 [SSD]) 또는 표준 HDD(표준 디스크 [HDD])의 경우 VM 디스크 유형을 선택합니다.

    다. 사용자 이름을 입력합니다.

    d. 인증 유형을SSH 공개 키로 선택합니다.

    e. 만든 SSH 공개 키를 검색합니다. 텍스트 편집기에서 열고 키를 복사한 다음 SSH 공개 키 상자에 붙여넣습니다. 에서 로의 텍스트를 ---- BEGIN SSH2 PUBLIC KEY -------- END SSH2 PUBLIC KEY ----포함합니다. 전체 텍스트 블록을 키 상자에 붙여넣습니다.

    ---- BEGIN SSH2 PUBLIC KEY ----
    Comment: "rsa-key-20190207"
    <Your key block>
    ---- END SSH2 PUBLIC KEY ----
    

    f. Azure Stack Hub instance 대한 구독을 선택합니다.

    g. 앱에 대한 리소스를 구성하는 방법에 따라 새 리소스 그룹을 만들거나 기존 리소스 그룹을 사용합니다.

    h. 위치를 선택합니다. ASDK(Azure Stack Development Kit)는 일반적으로 로컬 지역에 있습니다. 위치는 Azure Stack Hub instance 따라 달라집니다.

  4. 2. 크기, 형식:

    • Azure Stack Hub instance 사용할 수 있는 VM의 데이터 및 RAM 크기를 선택합니다.
    • 목록을 찾아보거나 컴퓨팅 유형, CPU스토리지 공간별로 VM 크기를 필터링할 수 있습니다.

    참고

    • 제시된 가격은 현지 통화로 추정됩니다. 여기에는 Azure 인프라 비용 및 구독 및 위치에 대한 할인만 포함됩니다. 여기에는 적용 가능한 소프트웨어 비용이 포함되지 않습니다.
    • 권장 크기는 선택한 이미지의 게시자에 의해 결정되며 하드웨어 및 소프트웨어 요구 사항을 기반으로 합니다.
    • SSD(프리미엄 디스크) 대신 HDD(표준 디스크)를 사용하면 운영 체제 성능에 영향을 줄 수 있습니다.
  5. 3. 선택적 기능을 구성합니다. 다음을 입력합니다.

    a. 고가용성을 위해 가용성 집합을 선택합니다. 애플리케이션에 중복성을 제공하려면 가용성 집합에서 두 개 이상의 가상 머신을 그룹화합니다. 이 구성은 계획되거나 계획되지 않은 유지 관리 이벤트 중에 하나 이상의 가상 머신을 사용할 수 있고 99.95% Azure SLA(서비스 수준 계약)를 충족하도록 합니다. 가상 머신을 만든 후에는 가상 머신의 가용성 집합을 변경할 수 없습니다.

    b. 스토리지의 경우 프리미엄 디스크(SSD) 또는 HDD(표준 디스크)를 선택합니다. SSD(프리미엄 디스크)는 반도체 드라이브에서 지원되며 일관되고 짧은 대기 시간 성능을 제공합니다. 가격과 성능 간에 최상의 균형을 제공하며 I/O 집약적인 애플리케이션 및 프로덕션 워크로드에 이상적입니다. 표준 디스크는 자기 드라이브에서 지원되며 데이터가 자주 액세스되지 않는 애플리케이션에 적합합니다. 영역 중복 디스크는 여러 영역에 걸쳐 데이터를 복제하는 ZRS(영역 중복 스토리지)를 통해 지원되며 단일 영역이 다운된 경우에도 사용할 수 있습니다.

    다. 관리 디스크 사용을 선택합니다. 이 기능을 사용하도록 설정하면 Azure에서 디스크의 가용성을 자동으로 관리합니다. 스토리지 계정을 직접 만들고 관리할 필요 없이 데이터 중복성 및 내결함성을 활용할 수 있습니다. 관리 디스크는 모든 지역에서 사용할 수 없습니다. 자세한 내용은 Azure 관리 디스크 소개를 참조하세요.

    d. 네트워크를 구성하려면 가상 네트워크를 선택합니다. 가상 네트워크는 Azure에서 논리적으로 서로 격리됩니다. 데이터 센터의 기존 네트워크와 마찬가지로 IP 주소 범위, 서브넷, 경로 테이블, 게이트웨이 및 보안 설정을 구성할 수 있습니다. 동일한 가상 네트워크의 가상 머신은 기본적으로 서로 액세스할 수 있습니다.

    e. 서브넷을 구성하려면 서브넷을 선택합니다. 서브넷은 가상 네트워크의 IP 주소 범위입니다. 서브넷을 사용하여 가상 머신을 서로 격리하거나 인터넷에서 격리할 수 있습니다.

    f. VM 또는 VM에서 실행되는 서비스에 대한 액세스를 구성하려면 공용 IP 주소를 선택합니다. 공용 IP 주소를 사용하여 가상 네트워크 외부에서 가상 머신과 통신합니다.

    g. 네트워크 보안 그룹, 기본 또는 고급을 선택합니다. VM에 대한 네트워크 트래픽을 허용하거나 거부하는 규칙을 설정합니다.

    h. VM에 대한 일반 또는 사용자 지정 프로토콜에 대한 액세스를 설정하려면 공용 인바운드 포트를 선택합니다. 서비스는 이 규칙의 대상 프로토콜 및 포트 범위를 지정합니다. RDP(원격 데스크톱 프로토콜) 또는 SSH와 같은 미리 정의된 서비스를 선택하거나 사용자 지정 포트 범위를 제공할 수 있습니다. 웹 서버의 경우 HTTP(80), HTTPS(443) 및 SSH(22)를 엽니다. RDP 연결을 사용하여 컴퓨터를 관리하려는 경우 포트 3389를 엽니다.

    i. VM에 확장을 추가하려면 확장을 선택합니다. 확장은 구성 관리 또는 바이러스 백신 보호와 같은 새로운 기능을 가상 머신에 추가합니다.

    j. 모니터링을 사용하지 않도록 설정하거나 사용하도록 설정합니다. 시작 문제를 진단하기 위해 모니터링을 사용하여 호스트에서 실행되는 가상 머신의 직렬 콘솔 출력 및 스크린샷을 캡처할 수 있습니다.

    k. 메트릭을 보유하는 스토리지 계정을 지정하려면 스토리지 계정 진단 선택합니다. 메트릭은 고유한 도구로 분석할 수 있도록 스토리지 계정에 기록됩니다.

    l. 확인을 선택합니다.

  6. 검토 4. 요약:

    • 포털에서 설정의 유효성을 검사합니다.
    • Azure Resource Manager 워크플로에서 설정을 다시 사용하려면 VM에 대한 Azure Resource Manager 템플릿을 다운로드할 수 있습니다.
    • 유효성 검사가 통과되면 확인을 선택합니다. VM 배포에는 몇 분 정도 걸립니다.

열린 포트 및 DNS 이름 지정

네트워크의 사용자가 웹앱에 액세스할 수 있도록 하려면 머신에 연결하는 데 사용되는 포트를 열고 사용자가 웹 브라우저에서 사용할 수 있는 mywebapp.local.cloudapp.azurestack.external과 같은 친숙한 DNS 이름을 추가합니다.

인바운드 포트 열기

RDP 또는 SSH와 같이 미리 정의된 서비스에 대한 대상 프로토콜 및 포트 범위를 수정하거나 사용자 지정 포트 범위를 제공할 수 있습니다. 예를 들어 웹 프레임워크의 포트 범위로 작업할 수 있습니다. 예를 들어 GO는 포트 3000에서 통신합니다.

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

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

  3. VM 창에서 네트워킹을 선택합니다.

  4. 인바운드 포트 규칙 추가를 선택하여 포트를 엽니다.

  5. 원본의 경우 기본 선택 영역인 Any를 그대로 둡니다.

  6. 원본 포트 범위의 경우 와일드카드(*)를 그대로 둡니다.

  7. 대상 포트 범위의 경우 열려는 포트(예: 3000)를 입력합니다.

  8. 프로토콜의 경우 기본 선택 영역인 Any를 그대로 둡니다.

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

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

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

  12. 추가를 선택합니다.

서버의 DNS 이름 추가

또한 사용자가 URL을 사용하여 웹 사이트에 연결할 수 있도록 서버에 대한 DNS 이름을 만들 수 있습니다.

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

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

  3. 개요를 선택합니다.

  4. VM에서 구성을 선택합니다.

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

  6. 전체 URL이 mywebapp.local.cloudapp.azurestack.external(ASDK 앱의 경우)가 되도록 mywebapp과 같은 DNS 이름 레이블을 입력합니다.

SSH를 통해 연결하여 VM 업데이트

  1. Azure Stack Hub instance 동일한 네트워크에서 SSH 클라이언트를 엽니다. 자세한 내용은 Azure Stack Hub에서 SSH 키 쌍 사용을 참조하세요.

  2. 다음 명령을 입력합니다.

        sudo apt-get update
        sudo apt-get -y upgrade
    

다음 단계

Azure Stack Hub에서 개발 환경을 설정하는 방법을 알아봅니다.