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 Server에 게시하는 웹앱을 개발합니다. 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 인스턴스에 웹앱을 호스트할 준비가 된 VM이 있습니다.
시작하기 전에 필요한 모든 것이 준비되었는지 확인합니다.
필수 구성 요소
Ubuntu Server 16.04 LTS 이미지에 액세스할 수 있는 Azure Stack Hub 구독입니다. 이후 버전의 이미지를 사용할 수 있지만 이러한 지침은 16.04 LTS를 염두에 두고 작성되었습니다. 이 이미지가 없는 경우 클라우드 운영자에게 문의하여 이미지를 Azure Stack Hub Marketplace로 가져옵니다.
포털을 사용하여 VM 배포
VM을 배포하려면 다음 섹션의 지침을 따릅니다.
VM 만들기
서버에 대한 SSH(Secure Shell) 공개 키를 만듭니다. 자세한 내용은 SSH 공개 키사용하는 방법을 참조하세요.
Azure Stack Hub 포털에서 리소스 만들기>Compute>Ubuntu Server 16.04 LTS선택하세요.
웹앱 배포
가상 머신 만들기 창에서 1. 기본 설정구성:
VM이름을 입력합니다.
VM 디스크 유형, 프리미엄 SSD (프리미엄 디스크 [SSD]) 또는 표준 HDD(표준 디스크 [HDD])를 선택합니다.
사용자 이름입력합니다.
인증 유형을 SSH 공개 키로 선택합니다.
만든 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 ----
Azure Stack Hub 인스턴스에 대한 구독을 선택합니다.
앱에 대한 리소스를 구성하는 방법에 따라 새 리소스 그룹을 만들거나 기존 리소스 그룹을 사용합니다.
위치를 선택합니다. Azure Stack Development Kit(ASDK)는 일반적으로 로컬 지역에 있습니다. 위치는 Azure Stack Hub 인스턴스에 따라 달라집니다.
2. 크기, 형식:
- Azure Stack Hub 인스턴스에서 사용할 수 있는 VM의 데이터 및 RAM 크기를 선택합니다.
- 컴퓨팅 유형 , CPU및 스토리지 공간목록을 찾아보거나 VM 크기를 필터링할 수 있습니다.
메모
- 제시된 가격은 현지 통화로 추정됩니다. 여기에는 Azure 인프라 비용 및 구독 및 위치에 대한 할인만 포함됩니다. 해당 소프트웨어 비용은 포함되지 않습니다.
- 권장 크기는 선택한 이미지의 게시자에 의해 결정되며 하드웨어 및 소프트웨어 요구 사항을 기반으로 합니다.
- SSD(프리미엄 디스크) 대신 HDD(표준 디스크)를 사용하면 운영 체제 성능에 영향을 줄 수 있습니다.
3. 선택적 기능을 구성하려면 다음을 입력하십시오.
고가용성을 위해 가용성 집합을 선택합니다. 애플리케이션에 중복성을 제공하려면 가용성 집합에 둘 이상의 가상 머신을 그룹화합니다. 이 구성은 계획되거나 계획되지 않은 유지 관리 이벤트 중에 하나 이상의 가상 머신을 사용할 수 있고 99.95% Azure SLA(서비스 수준 계약)를 충족하도록 합니다. 가상 머신을 만든 후에는 가용성 집합을 변경할 수 없습니다.
Storage에 대해 프리미엄 디스크(SSD) 또는 표준 디스크(HDD)를 선택하세요. 프리미엄 디스크(SSD)는 반도체 드라이브로 지원되며 일관되고 대기 시간이 짧은 성능을 제공합니다. 가격과 성능 간에 최상의 균형을 제공하며 I/O 집약적인 애플리케이션 및 프로덕션 워크로드에 이상적입니다. 표준 디스크는 자기 드라이브에서 지원되며 데이터가 자주 액세스되지 않는 애플리케이션에 적합합니다. 영역 중복 디스크는 여러 영역에 걸쳐 데이터를 복제하는 ZRS(영역 중복 스토리지)를 통해 지원되며 단일 영역이 다운된 경우에도 사용할 수 있습니다.
관리 디스크 사용을 선택합니다. 이 기능을 사용하도록 설정하면 Azure에서 디스크의 가용성을 자동으로 관리합니다. 스토리지 계정을 직접 만들고 관리할 필요 없이 데이터 중복성 및 내결함성을 활용할 수 있습니다. 관리 디스크는 모든 지역에서 사용할 수 없습니다. 자세한 내용은 Azure 관리 디스크소개를 참조하세요.
네트워크를 구성하려면 가상 네트워크 선택합니다. 가상 네트워크는 Azure에서 논리적으로 서로 격리됩니다. 데이터 센터의 기존 네트워크와 마찬가지로 IP 주소 범위, 서브넷, 경로 테이블, 게이트웨이 및 보안 설정을 구성할 수 있습니다. 동일한 가상 네트워크의 가상 머신은 기본적으로 서로 액세스할 수 있습니다.
서브넷을 구성하려면 서브넷 선택합니다. 서브넷은 가상 네트워크의 IP 주소 범위입니다. 서브넷을 사용하여 가상 머신을 서로 또는 인터넷에서 격리할 수 있습니다.
VM 또는 VM에서 실행되는 서비스에 대한 액세스를 구성하려면 공용 IP 주소 선택합니다. 공용 IP 주소를 사용하여 가상 네트워크 외부에서 가상 머신과 통신합니다.
네트워크 보안 그룹, 기본또는 고급 선택합니다. VM에 대한 네트워크 트래픽을 허용하거나 거부하는 규칙을 설정합니다.
VM에 대한 일반 또는 사용자 지정 프로토콜에 대한 액세스를 설정하려면 공용 인바운드 포트 선택합니다. 서비스는 이 규칙의 대상 프로토콜 및 포트 범위를 지정합니다. RDP(원격 데스크톱 프로토콜) 또는 SSH와 같은 미리 정의된 서비스를 선택하거나 사용자 지정 포트 범위를 제공할 수 있습니다. 웹 서버의 경우 HTTP(80), HTTPS(443) 및 SSH(22)를 사용합니다. RDP 연결을 사용하여 컴퓨터를 관리하려는 경우 포트 3389를 엽니다.
VM에 확장을 추가하려면 확장 선택합니다. 확장은 구성 관리 또는 바이러스 백신 보호와 같은 새로운 기능을 가상 머신에 추가합니다.
모니터링을(를) 비활성화하거나 활성화합니다. 시작 문제를 진단하는 데 도움이 되도록 모니터링을 사용하여 호스트에서 실행되는 가상 머신의 직렬 콘솔 출력 및 스크린샷을 캡처할 수 있습니다.
메트릭을 보유하는 스토리지 계정을 지정하려면 진단 스토리지 계정 선택합니다. 메트릭은 고유한 도구로 분석할 수 있도록 스토리지 계정에 기록됩니다.
확인선택합니다.
4를 검토합니다. 요약:
- 포털에서 설정의 유효성을 검사합니다.
- Azure Resource Manager 워크플로와 함께 설정을 다시 사용하려면 VM에 대한 Azure Resource Manager 템플릿을 다운로드할 수 있습니다.
- 유효성 검사가 통과되면 OK을 선택합니다. VM 배포에는 몇 분 정도 걸립니다.
열린 포트 및 DNS 이름 지정
네트워크의 사용자가 웹앱에 액세스할 수 있도록 하려면 컴퓨터에 연결하는 데 사용되는 포트를 열고 사용자가 웹 브라우저에서 지정할 수 있는 mywebapp.local.cloudapp.azurestack.external
같은 친숙한 DNS 이름을 추가합니다.
인바운드 포트 열기
RDP 또는 SSH와 같은 미리 정의된 서비스에 대한 대상 프로토콜 및 포트 범위를 수정하거나 사용자 지정 포트 범위를 제공할 수 있습니다. 예를 들어, 웹 프레임워크의 포트 범위를 사용하고 싶을 수 있습니다. 예를 들어 GO는 포트 3000에서 통신합니다.
테넌트에 대한 Azure Stack Hub 포털을 엽니다.
VM을 검색합니다. VM을 대시보드에 고정했거나 검색 리소스 상자에서 검색할 수 있습니다.
VM 창에서 네트워킹 선택합니다.
포트를 열기 위해 인바운드 포트 규칙 추가를 선택합니다.
원본의 경우 기본 선택 사항인 아무 것이나그대로 둡니다.
원본 포트 범위와일드카드(*)를 그대로 둡니다.
대상 포트 범위경우 열려는 포트(예: 3000)를 입력합니다.
프로토콜경우에 기본 선택 항목을 그대로 모든항목으로 두십시오.
작업에 대해, 허용을 선택합니다.
우선 순위경우 기본 선택을 그대로 둡니다.
이름 입력하고 설명 입력하면 포트가 열려 있는 이유를 기억할 수 있습니다.
을 선택하고추가를 선택합니다.
서버의 DNS 이름 추가
또한 사용자가 URL을 사용하여 웹 사이트에 연결할 수 있도록 서버에 대한 DNS 이름을 만들 수 있습니다.
테넌트에 대한 Azure Stack Hub 포털을 엽니다.
VM을 검색합니다. VM을 대시보드에 고정해 두었거나 리소스 검색 상자에서 검색할 수 있습니다.
개요선택합니다.
VM아래에서 구성선택합니다.
할당에 대해 동적을 선택합니다.
DNS 이름 레이블을 입력하세요. 예를 들어 mywebapp이라면, 전체 URL은 ASDK 앱의 경우
mywebapp.local.cloudapp.azurestack.external
가 됩니다.
SSH를 통해 연결하여 VM 업데이트
Azure Stack Hub 인스턴스와 동일한 네트워크에서 SSH 클라이언트를 엽니다. 자세한 내용은 Azure Stack Hub에서 SSH 키 쌍 사용하기를 참조하십시오.
다음 명령을 입력합니다.
sudo apt-get update sudo apt-get -y upgrade
다음 단계
Azure Stack Hub 개발 환경을설정하는 방법을 알아봅니다.