자습서: Azure PowerShell을 사용하여 Virtual Machine Scale Set가 있는 디스크 만들기 및 사용

Virtual Machine Scale Sets는 디스크를 사용하여 VM 인스턴스의 운영 체제, 애플리케이션 및 데이터를 저장합니다. 확장 집합을 만들고 관리할 때 예상 작업에 적합한 디스크 크기와 구성을 선택해야 합니다. 이 자습서에서는 VM 디스크를 만들고 관리하는 방법에 대해 설명합니다. 이 자습서에서는 다음에 대해 알아봅니다.

  • OS 디스크 및 임시 디스크
  • 데이터 디스크
  • 표준 및 프리미엄 디스크
  • 디스크 성능
  • 데이터 디스크 연결 및 준비

Azure 구독이 없는 경우 시작하기 전에 체험 계정을 만듭니다.

Azure Cloud Shell

Azure는 브라우저를 통해 사용할 수 있는 대화형 셸 환경인 Azure Cloud Shell을 호스트합니다. Cloud Shell에서 Bash 또는 PowerShell을 사용하여 Azure 서비스 작업을 수행할 수 있습니다. 로컬 환경에 아무 것도 설치할 필요 없이 Azure Cloud Shell의 미리 설치된 명령을 사용하여 이 문서의 코드를 실행할 수 있습니다.

Azure Cloud Shell을 시작하려면 다음을 수행합니다.

옵션 예제/링크
코드 또는 명령 블록의 오른쪽 상단에서 시도를 선택합니다. 시도를 선택해도 코드 또는 명령이 Cloud Shell에 자동으로 복사되지 않습니다. Screenshot that shows an example of Try It for Azure Cloud Shell.
https://shell.azure.com으로 이동하거나 Cloud Shell 시작 단추를 선택하여 브라우저에서 Cloud Shell을 엽니다. Button to launch Azure Cloud Shell.
Azure Portal의 오른쪽 위에 있는 메뉴 모음에서 Cloud Shell 단추를 선택합니다. Screenshot that shows the Cloud Shell button in the Azure portal

Azure Cloud Shell을 사용하려면:

  1. Cloud Shell을 시작합니다.

  2. 코드 블록(또는 명령 블록)에서 복사 단추를 선택하여 코드 또는 명령을 복사합니다.

  3. Windows 및 Linux에서 Ctrl+Shift+V를 선택하거나 macOS에서 Cmd+Shift+V를 선택하여 코드 또는 명령을 Cloud Shell 세션에 붙여넣습니다.

  4. Enter를 선택하여 코드 또는 명령을 실행합니다.

기본 Azure 디스크

확장 집합을 만들거나 크기를 조정하면 두 개의 디스크가 각 VM 인스턴스에 자동으로 연결됩니다.

운영 체제 디스크 - 운영 체제 디스크는 최대 2TB까지 크기를 지정할 수 있으며, VM 인스턴스의 운영 체제를 호스팅합니다. OS 디스크는 기본적으로 /dev/sda로 레이블이 지정됩니다. OS 디스크의 디스크 캐싱 구성은 OS 성능에 맞게 최적화됩니다. 이 구성으로 인해 OS 디스크는 애플리케이션 또는 데이터를 호스트해서는 안 됩니다. 애플리케이션 및 데이터는 데이터 디스크를 사용하며 여기에 대해서는 이 문서의 뒷부분에서 자세히 설명합니다.

임시 디스크 - 임시 디스크는 VM 인스턴스와 동일한 Azure 호스트에 있는 반도체 드라이브를 사용합니다. 이러한 디스크는 고성능 디스크이며, 임시 데이터 처리와 같은 작업에 사용할 수 있습니다. 그러나 VM 인스턴스가 새 호스트로 이동되면 임시 디스크에 저장된 모든 데이터가 제거됩니다. 임시 디스크의 크기는 VM 인스턴스 크기에 따라 결정됩니다. 임시 디스크는 /dev/sdb로 레이블이 지정되고 탑재 지점은 /mnt입니다.

Azure 데이터 디스크

애플리케이션을 설치하고 데이터를 저장해야 하는 경우 추가 데이터 디스크를 추가할 수 있습니다. 데이터 디스크는 지속형 및 반응형 데이터 스토리지가 필요한 상황에 사용해야 합니다. 각 데이터 디스크의 최대 용량은 4TB입니다. VM 인스턴스의 크기에 따라 연결할 수 있는 데이터 디스크 수가 결정됩니다. 각 VM vCPU에 대해 두 개의 데이터 디스크를 연결할 수 있습니다.

VM 디스크 유형

다음 표는 사용할 디스크 형식을 결정할 수 있도록 하는 5가지 디스크 형식을 비교한 것입니다.

Ultra Disk 프리미엄 SSD v2 프리미엄 SSD 표준 SSD 표준 HDD
디스크 유형 SSD SSD SSD SSD HDD
시나리오 IO 집약적 워크로드 - SAP HANA, 최상위 계층 데이터베이스(예: SQL, Oracle) 및 다른 트랜잭션 집약적 워크로드 짧은 대기 시간과 높은 IOPS 및 처리량이 지속적으로 요구되는 프로덕션 및 성능에 민감한 워크로드 프로덕션 및 성능이 중요한 워크로드 웹 서버, 조금 사용되는 엔터프라이즈 애플리케이션 및 개발/테스트 백업, 중요하지 않음, 가끔 액세스
최대 디스크 크기 65,536GiB 65,536GiB 32,767GiB 32,767GiB 32,767GiB
최대 처리량 4,000MB/s 1,200MB/s 900MB/s 750MB/s 500MB/s
최대 IOPS 160,000 80,000 20,000 6,000 2,000, 3,000*
OS 디스크로 사용할 수 있나요? 아니요 없음

*성능 플러스(미리 보기)가 사용하도록 설정된 디스크에만 적용됩니다.

다양한 디스크 유형의 몇 가지 대략적인 차이와 워크로드 요구 사항에 미치는 영향을 결정하는 몇 가지 방법을 다룬 비디오는 Azure Disk Storage 및 Elastic SAN을 사용한 스토리지 옵션 차단을 참조하세요.

디스크 만들기 및 연결

확장 집합을 만들 때 또는 기존 확장 집합을 사용하여 디스크를 만들고 연결할 수 있습니다.

API 버전 2019-07-01을 기준으로 storageProfile.osDisk.diskSizeGb 속성을 사용하여 Virtual Machine Scale Set에서 OS 디스크의 크기를 설정할 수 있습니다. 프로비전 후에는 전체 공간을 사용하기 위해 디스크를 확장하거나 다시 분할해야 할 수 있습니다. Windows 또는 Linux에서 OS의 볼륨을 확장하는 방법에 대해 자세히 알아보세요.

확장 집합을 만들 때 디스크 연결

New-AzVmss를 사용하여 Virtual Machine Scale Set를 만듭니다. 메시지가 표시되면 VM 인스턴스에 대한 사용자 이름과 암호를 제공합니다. 트래픽을 개별 VM 인스턴스로 배포하기 위해 부하 분산 장치도 생성됩니다. 부하 분산 장치에는 80 TCP 포트에서 트래픽을 분산할 뿐만 아니라 3389 TCP 포트의 원격 데스크톱 트래픽 및 5985 TCP 포트의 PowerShell 원격을 허용하는 규칙이 포함되어 있습니다.

-DataDiskSizeGb 매개 변수를 사용하여 두 개의 디스크를 만듭니다. 첫 번째 디스크의 크기는 64GB이고, 두 번째 디스크의 크기는 128GB입니다. 메시지가 표시되면 확장 집합에서 VM 인스턴스에 대해 원하는 관리 자격 증명을 제공합니다.

New-AzResourceGroup -Name "myResourceGroup" -Location "East US"
New-AzVmss `
  -ResourceGroupName "myResourceGroup" `
  -Location "EastUS" `
  -OrchestrationMode "Flexible" `
  -VMScaleSetName "myScaleSet" `
  -VirtualNetworkName "myVnet" `
  -SubnetName "mySubnet" `
  -PublicIpAddressName "myPublicIPAddress" `
  -LoadBalancerName "myLoadBalancer" `
  -DataDiskSizeInGb 64,128

확장 집합 리소스와 VM 인스턴스를 모두 만들고 구성하는 데 몇 분 정도 걸립니다.

기존 확장 집합에 디스크 연결

기존 확장 집합에 디스크를 연결할 수도 있습니다. Add-AzVmssDataDisk를 사용하여 다른 디스크를 추가하기 위해 이전 단계에서 만든 확장 집합을 사용합니다. 다음 예제에서는 128GB 디스크를 기존 확장 집합에 추가로 연결합니다.

# Get scale set object
$vmss = Get-AzVmss `
  -ResourceGroupName "myResourceGroup" `
  -VMScaleSetName "myScaleSet"

# Attach a 128 GB data disk to LUN 2
Add-AzVmssDataDisk `
  -VirtualMachineScaleSet $vmss `
  -CreateOption Empty `
  -Lun 2 `
  -DiskSizeGB 128

# Update the scale set to apply the change
Update-AzVmss `
  -ResourceGroupName "myResourceGroup" `
  -VMScaleSetName "myScaleSet" `
  -VirtualMachineScaleSet $vmss

또는 확장 집합의 개별 인스턴스에 데이터 디스크를 추가하려면 Add-AzVmssVMDataDisk를 사용합니다.

$VirtualMachine = Get-AzVmssVM -ResourceGroupName "myResourceGroup" -VMScaleSetName "myScaleSet" -InstanceId 1
Add-AzVmssVMDataDisk -VirtualMachineScaleSetVM $VirtualMachine -LUN 2 -DiskSizeInGB 1 -CreateOption Empty -StorageAccountType Standard_LRS
Update-AzVmssVM -VirtualMachineScaleSetVM $VirtualMachine

연결된 디스크 나열

확장 집합에 연결된 디스크에 대한 정보를 보려면 다음과 같이 Get-AzVmss를 사용합니다.

Get-AzVmss -ResourceGroupName "myResourceGroup" -Name "myScaleSet"

VirtualMachineProfile.StorageProfile 속성 아래에 DataDisks의 목록이 표시됩니다. 디스크 크기, 스토리지 계층 및 LUN(논리 단위 번호)에 대한 정보가 표시됩니다. 다음 예제 출력에서는 확장 집합에 연결된 세 개의 데이터 디스크에 대해 자세히 설명합니다.

DataDisks[0]                            :
  Lun                                   : 0
  Caching                               : None
  CreateOption                          : Empty
  DiskSizeGB                            : 64
  ManagedDisk                           :
    StorageAccountType                  : PremiumLRS
DataDisks[1]                            :
  Lun                                   : 1
  Caching                               : None
  CreateOption                          : Empty
  DiskSizeGB                            : 128
  ManagedDisk                           :
    StorageAccountType                  : PremiumLRS
DataDisks[2]                            :
  Lun                                   : 2
  Caching                               : None
  CreateOption                          : Empty
  DiskSizeGB                            : 128
  ManagedDisk                           :
    StorageAccountType                  : PremiumLRS

디스크 분리

지정된 디스크가 더 이상 필요하지 않은 경우 확장 집합에서 디스크를 분리할 수 있습니다. 확장 집합의 모든 VM 인스턴스에서 디스크가 제거됩니다. 확장 집합에서 디스크를 분리하려면 Remove-AzVmssDataDisk를 사용하고 디스크의 LUN을 지정합니다. LUN은 이전 섹션의 Get-AzVmss 출력에 표시되어 있습니다. 다음 예제에서는 확장 집합에서 LUN 3을 분리합니다.

# Get scale set object
$vmss = Get-AzVmss `
  -ResourceGroupName "myResourceGroup" `
  -VMScaleSetName "myScaleSet"

# Detach a disk from the scale set
Remove-AzVmssDataDisk `
  -VirtualMachineScaleSet $vmss `
  -Lun 2

# Update the scale set and detach the disk from the VM instances
Update-AzVmss `
  -ResourceGroupName "myResourceGroup" `
  -VMScaleSetName "myScaleSet" `
  -VirtualMachineScaleSet $vmss

또는 확장 집합의 개별 인스턴스로 데이터 디스크를 제거하려면 Remove-AzVmssVMDataDisk를 사용합니다.

$VirtualMachine = Get-AzVmssVM -ResourceGroupName "myResourceGroup" -VMScaleSetName "myScaleSet" -InstanceId "c91dfbd9"
Remove-AzVmssVMDataDisk -VirtualMachineScaleSetVM $VirtualMachine -Lun 2
Update-AzVmssVM -VirtualMachineScaleSetVM -VM $VirtualMachine

리소스 정리

확장 집합 및 디스크를 제거하려면 Remove-AzResourceGroup을 사용하여 리소스 그룹 및 모든 해당 리소스를 삭제합니다. -Force 매개 변수는 작업을 수행하는 추가 프롬프트 없이 리소스를 삭제할 것인지 확인합니다. -AsJob 매개 변수는 작업이 완료될 때까지 대기하지 않고 프롬프트로 제어를 반환합니다.

Remove-AzResourceGroup -Name "myResourceGroup" -Force -AsJob

다음 단계

이 자습서에서는 Azure PowerShell을 사용하여 확장 집합이 있는 디스크를 만들고 사용하는 방법을 알아보았습니다.

  • OS 디스크 및 임시 디스크
  • 데이터 디스크
  • 표준 및 프리미엄 디스크
  • 디스크 성능
  • 데이터 디스크 연결 및 준비

확장 집합 VM 인스턴스에 대해 사용자 지정 이미지를 사용하는 방법을 알아보려면 다음 자습서로 계속 진행하세요.