다음을 통해 공유


빠른 시작: ARM 템플릿을 사용하여 Linux Virtual Machine Scale Set 만들기

적용 대상: ✔️ Linux VM ✔️ 균일 확장 집합

비고

다음 문서는 Uniform Virtual Machine Scale Sets에 대한 것입니다. 새 워크로드에 유연한 Virtual Machine Scale Sets를 사용하는 것이 좋습니다. 유연한 가상 머신 확장 집합 개요에서 이 새로운 오케스트레이션 모드에 대해 자세히 알아봅니다.

Virtual Machine Scale Set을 사용하면 자동 크기 조정 가상 머신 집합을 배포하고 관리할 수 있습니다. 확장 집합의 VM 수를 수동으로 확장하거나 CPU, 메모리 수요 또는 네트워크 트래픽과 같은 리소스 사용량에 따라 자동 크기 조정하는 규칙을 정의할 수 있습니다. 그런 다음 Azure 부하 분산 장치는 확장 집합의 VM 인스턴스에 트래픽을 분산합니다. 이 빠른 시작에서는 Virtual Machine Scale Set을 만들고 ARM 템플릿(Azure Resource Manager 템플릿)을 사용하여 샘플 애플리케이션을 배포합니다.

Azure Resource Manager 템플릿은 프로젝트의 인프라 및 구성을 정의하는 JSON(JavaScript Object Notation) 파일입니다. 템플릿은 선언적 구문을 사용합니다. 배포를 만들기 위한 프로그래밍 명령의 시퀀스를 작성하지 않고 의도하는 배포를 설명합니다.

ARM 템플릿을 사용하면 관련 리소스 그룹을 배포할 수 있습니다. 단일 템플릿에서 Virtual Machine Scale Set를 만들고, 애플리케이션을 설치하고, 자동 크기 조정 규칙을 구성할 수 있습니다. 변수 및 매개 변수를 사용하면 이 템플릿을 다시 사용하여 기존 확장 집합을 업데이트하거나 추가 확장 집합을 만들 수 있습니다. Azure Portal, Azure CLI 또는 Azure PowerShell을 통하거나 CI/CD(지속적인 통합/지속적인 업데이트) 파이프라인에서 템플릿을 배포할 수 있습니다.

환경이 필수 조건을 충족하고 ARM 템플릿을 사용하는 데 익숙한 경우 Azure에 배포 단추를 선택합니다. 템플릿이 Azure Portal에서 열립니다.

Azure에 Resource Manager 템플릿을 배포하는 단추입니다.

필수 조건

Azure 구독이 없는 경우, 시작하기 전에 무료 계정을 만드십시오.

템플릿 검토

이 빠른 시작에서 사용되는 템플릿은 Azure 빠른 시작 템플릿에서 나온 것입니다.

이러한 리소스는 템플릿에 정의되어 있습니다.

스케일 세트 정의하기

템플릿을 사용하여 배율을 만들려면 적절한 리소스를 정의합니다. Virtual Machine Scale Set 리소스 유형의 핵심 부분은 다음과 같습니다.

재산 속성 설명 예제 템플릿 값
type 생성할 Azure 리소스 유형 Microsoft.Compute/virtualMachineScaleSets
이름 스케일 세트 이름 myScaleSet
location 스케일 셋을 만들 위치 East US
sku.name 각 확장 집합 인스턴스의 VM 크기 Standard_A1
sku.capacity 처음에 만들 VM 인스턴스 수 2
upgradePolicy.mode 변경이 발생할 때 VM 인스턴스 업그레이드 모드 자동
imageReference VM 인스턴스에 사용할 플랫폼 또는 사용자 지정 이미지 캐노니컬 Ubuntu Server 16.04-LTS
osProfile.컴퓨터이름접두사 각 VM 인스턴스의 이름 접두사 myvmss
osProfile.adminUsername 각 VM 인스턴스의 사용자 이름 azureuser
osProfile.adminPassword (관리자 비밀번호) 각 VM 인스턴스의 암호 P@ssw0rd!

확장 집합 템플릿을 사용자 지정하려면 VM 크기 또는 초기 용량을 변경할 수 있습니다. 또 다른 옵션은 다른 플랫폼 또는 사용자 지정 이미지를 사용하는 것입니다.

샘플 애플리케이션 추가

확장 집합을 테스트하려면 기본 웹 애플리케이션을 설치합니다. 확장 집합을 배포할 때 VM 확장은 배포 후 구성 및 자동화 작업(예: 앱 설치)을 제공할 수 있습니다. 스크립트는 Azure Storage 또는 GitHub에서 다운로드하거나 확장 런타임에 Azure Portal에 제공할 수 있습니다. 확장 집합에 확장을 적용하려면 이전 리소스 예제에 extensionProfile 섹션을 추가합니다. 확장 프로필은 일반적으로 다음 속성을 정의합니다.

  • 확장 형식
  • 확장 게시자
  • 확장 버전
  • 구성 또는 설치 스크립트의 위치
  • VM 인스턴스에서 실행할 명령

템플릿은 사용자 지정 스크립트 확장을 사용하여 Bottle, Python 웹 프레임워크 및 간단한 HTTP 서버를 설치합니다.

두 개의 스크립트가 fileUris - installserver.shworkserver.py에 정의됩니다. 이러한 파일은 GitHub에서 다운로드된 다음 commandToExecute 를 실행 bash installserver.sh 하여 앱을 설치하고 구성합니다.

템플릿 배포

다음 Azure에 배포 단추를 선택하여 템플릿 을 배포할 수 있습니다. 이 단추는 Azure Portal을 열고, 전체 템플릿을 로드하고, 확장 집합 이름, 인스턴스 수 및 관리자 자격 증명과 같은 몇 가지 매개 변수를 묻는 메시지를 표시합니다.

Azure에 Resource Manager 템플릿을 배포하는 단추입니다.

Azure CLI를 사용하여 Resource Manager 템플릿을 배포할 수도 있습니다.

# Create a resource group
az group create --name myResourceGroup --location EastUS

# Deploy template into resource group
az deployment group create \
    --resource-group myResourceGroup \
    --template-uri https://raw.githubusercontent.com/Azure/azure-quickstart-templates/master/application-workloads/python/vmss-bottle-autoscale/azuredeploy.json

VM 인스턴스에 대한 확장 집합 이름, 인스턴스 수 및 관리자 자격 증명을 제공하도록 하는 요청에 응답하십시오. 스케일 설정과 지원 리소스가 생성되는 데 몇 분이 걸립니다.

배포 유효성 검사

작동 중인 확장 집합을 확인하려면 웹 브라우저에서 샘플 웹 애플리케이션에 액세스합니다. 다음과 같이 az network public-ip 목록을 사용하여 부하 분산 장치의 공용 IP 주소를 가져옵니다.

az network public-ip list \
    --resource-group myResourceGroup \
    --query [*].ipAddress -o tsv

웹 브라우저에 부하 분산 장치의 공용 IP 주소를 형식으로 입력합니다 http://publicIpAddress:9000/do_work. 부하 분산 장치는 다음 예제와 같이 VM 인스턴스 중 하나에 트래픽을 분산합니다.

NGINX의 기본 웹 페이지

자원을 정리하세요

더 이상 필요하지 않은 경우 다음과 같이 az group delete를 사용하여 리소스 그룹, 확장 집합 및 모든 관련 리소스를 제거할 수 있습니다. --no-wait 매개 변수는 작업이 완료될 때까지 대기하지 않고 프롬프트로 제어를 반환합니다. --yes 매개 변수는 작업을 수행하는 추가 프롬프트 없이 리소스를 삭제할 것인지 확인합니다.

az group delete --name myResourceGroup --yes --no-wait

다음 단계

이 빠른 시작에서는 ARM 템플릿을 사용하여 Linux 확장 집합을 만들고 사용자 지정 스크립트 확장을 사용하여 VM 인스턴스에 기본 Python 웹 서버를 설치했습니다. 자세한 내용은 Azure Virtual Machine Scale Sets를 만들고 관리하는 방법에 대한 자습서를 계속 진행하세요.