자습서: Azure PowerShell을 사용하여 Windows VM 만들기 및 관리Tutorial: Create and Manage Windows VMs with Azure PowerShell

Azure Virtual Machines는 완전하게 구성할 수 있고 유연한 컴퓨팅 환경을 제공합니다.Azure virtual machines provide a fully configurable and flexible computing environment. 이 자습서에서는 VM 크기 선택, VM 이미지 선택 및 VM 배포 등 기본적인 Azure VM(가상 머신) 배포 작업을 설명합니다.This tutorial covers basic Azure virtual machine (VM) deployment tasks like selecting a VM size, selecting a VM image, and deploying a VM. 다음 방법을 알아봅니다.You learn how to:

  • VM 만들기 및 연결Create and connect to a VM
  • VM 이미지 선택 및 사용Select and use VM images
  • 특정 VM 크기 보기 및 사용View and use specific VM sizes
  • VM 크기 조정Resize a VM
  • VM 상태 보기 및 이해View and understand VM state

Azure Cloud Shell 시작Launch Azure Cloud Shell

Azure Cloud Shell은 이 항목의 단계를 실행하는 데 무료로 사용할 수 있는 대화형 셸입니다.The Azure Cloud Shell is a free interactive shell that you can use to run the steps in this article. 공용 Azure 도구가 사전 설치되어 계정에서 사용하도록 구성되어 있습니다.It has common Azure tools preinstalled and configured to use with your account.

Cloud Shell을 열려면 코드 블록의 오른쪽 위 모서리에 있는 사용해 보세요를 선택하기만 하면 됩니다.To open the Cloud Shell, just select Try it from the upper right corner of a code block. 또한 https://shell.azure.com/powershell로 이동하여 별도의 브라우저 탭에서 Cloud Shell을 시작할 수도 있습니다.You can also launch Cloud Shell in a separate browser tab by going to https://shell.azure.com/powershell. 복사를 선택하여 코드 블록을 복사하여 Cloud Shell에 붙여넣고, Enter 키를 눌러 실행합니다.Select Copy to copy the blocks of code, paste it into the Cloud Shell, and press enter to run it.

리소스 그룹 만들기Create resource group

New-AzResourceGroup 명령을 사용하여 리소스 그룹을 만듭니다.Create a resource group with the New-AzResourceGroup command.

Azure 리소스 그룹은 Azure 리소스가 배포 및 관리되는 논리적 컨테이너입니다.An Azure resource group is a logical container into which Azure resources are deployed and managed. 가상 머신보다 먼저 리소스 그룹을 만들어야 합니다.A resource group must be created before a virtual machine. 다음 예제에서는 EastUS 지역에 myResourceGroupVM이라는 리소스 그룹을 만듭니다.In the following example, a resource group named myResourceGroupVM is created in the EastUS region:

New-AzResourceGroup `
   -ResourceGroupName "myResourceGroupVM" `
   -Location "EastUS"

리소스 그룹은 VM을 만들거나 수정할 때 지정되며 이 자습서 전체에서 확인할 수 있습니다.The resource group is specified when creating or modifying a VM, which can be seen throughout this tutorial.

VM 만들기Create a VM

VM을 만들 때 운영 체제 이미지, 네트워크 구성 및 관리 자격 증명과 같은 몇 가지 옵션을 사용할 수 있습니다.When creating a VM, several options are available like operating system image, network configuration, and administrative credentials. 이 예에서는 Windows Server 2016 Datacenter의 기본 버전을 실행하는 myVM이라는 VM을 만듭니다.This example creates a VM named myVM, running the default version of Windows Server 2016 Datacenter.

Get-Credential을 사용하여 VM의 컴퓨터의 관리자 계정에 필요한 사용자 이름 및 암호를 설정합니다.Set the username and password needed for the administrator account on the VM with Get-Credential:

$cred = Get-Credential

New-AzVM으로 VM을 만듭니다.Create the VM with New-AzVM.

New-AzVm `
    -ResourceGroupName "myResourceGroupVM" `
    -Name "myVM" `
    -Location "EastUS" `
    -VirtualNetworkName "myVnet" `
    -SubnetName "mySubnet" `
    -SecurityGroupName "myNetworkSecurityGroup" `
    -PublicIpAddressName "myPublicIpAddress" `
    -Credential $cred

VM에 연결Connect to VM

배포가 완료된 후 VM에 대한 원격 데스크톱 연결을 만듭니다.After the deployment has completed, create a remote desktop connection with the VM.

다음 명령을 실행하여 VM의 공용 IP 주소를 반환합니다.Run the following commands to return the public IP address of the VM. 다음 단계에서 웹 연결을 테스트하기 위해 브라우저와 연결할 수 있도록 이 IP 주소를 기록해 둡니다.Take note of this IP Address so you can connect to it with your browser to test web connectivity in a future step.

Get-AzPublicIpAddress `
   -ResourceGroupName "myResourceGroupVM"  | Select IpAddress

다음 명령을 사용하여 로컬 머신에서 VM과의 원격 데스크톱 세션을 만듭니다.Use the following command, on your local machine, to create a remote desktop session with the VM. IP 주소를 VM의 publicIPAddress로 바꿉니다.Replace the IP address with the publicIPAddress of your VM. VM을 만들 때 사용되는 자격 증명을 묻는 메시지가 표시되면 입력합니다.When prompted, enter the credentials used when creating the VM.

mstsc /v:<publicIpAddress>

Windows 보안 창에서 추가 선택 사항다른 계정 사용을 차례로 선택합니다.In the Windows Security window, select More choices and then Use a different account. VM에 대해 만든 사용자 이름 및 암호를 입력한 다음, 확인을 클릭합니다.Type the username and password you created for the VM and then click OK.

마켓플레이스 이미지 이해Understand marketplace images

Azure Marketplace에는 새 VM을 만드는 데 사용할 수 있는 여러 VM 이미지가 포함되어 있습니다.The Azure marketplace includes many images that can be used to create a new VM. 이전 단계에서는 Windows Server 2016 Datacenter 이미지를 사용하여 VM을 만들었습니다.In the previous steps, a VM was created using the Windows Server 2016 Datacenter image. 이 단계에서는 PowerShell 모듈을 사용하여 Marketplace에서 새 VM의 기반이 될 수도 있는 다른 Windows 이미지를 검색합니다.In this step, the PowerShell module is used to search the marketplace for other Windows images, which can also be used as a base for new VMs. 이 프로세스는 이미지를 식별하기 위한 게시자, 제품, SKU 및 버전 번호(선택 사항)로 구성되어 있습니다.This process consists of finding the publisher, offer, SKU, and optionally a version number to identify the image.

Get-AzVMImagePublisher 명령을 사용하여 이미지 게시자 목록을 반환합니다.Use the Get-AzVMImagePublisher command to return a list of image publishers:

Get-AzVMImagePublisher -Location "EastUS"

이미지 제안 목록을 반환하려면 Get-AzVMImageOffer를 사용합니다.Use the Get-AzVMImageOffer to return a list of image offers. 이 명령을 사용하면 반환된 목록이 MicrosoftWindowsServer라는 지정된 게시자를 기준으로 필터링됩니다.With this command, the returned list is filtered on the specified publisher named MicrosoftWindowsServer:

Get-AzVMImageOffer `
   -Location "EastUS" `
   -PublisherName "MicrosoftWindowsServer"

결과가 다음 예제와 같이 표시됩니다.The results will look something like this example:

Offer             PublisherName          Location
-----             -------------          --------
Windows-HUB       MicrosoftWindowsServer EastUS
WindowsServer     MicrosoftWindowsServer EastUS
WindowsServer-HUB MicrosoftWindowsServer EastUS

그런 다음, Get-AzVMImageSku 명령으로 게시자 및 제안 이름을 기준으로 필터링하여 이미지 이름 목록을 반환합니다.The Get-AzVMImageSku command will then filter on the publisher and offer name to return a list of image names.

Get-AzVMImageSku `
   -Location "EastUS" `
   -PublisherName "MicrosoftWindowsServer" `
   -Offer "WindowsServer"

결과가 다음 예제와 같이 표시됩니다.The results will look something like this example:

Skus                                      Offer         PublisherName          Location
----                                      -----         -------------          --------
2008-R2-SP1                               WindowsServer MicrosoftWindowsServer EastUS  
2008-R2-SP1-smalldisk                     WindowsServer MicrosoftWindowsServer EastUS  
2012-Datacenter                           WindowsServer MicrosoftWindowsServer EastUS  
2012-Datacenter-smalldisk                 WindowsServer MicrosoftWindowsServer EastUS  
2012-R2-Datacenter                        WindowsServer MicrosoftWindowsServer EastUS  
2012-R2-Datacenter-smalldisk              WindowsServer MicrosoftWindowsServer EastUS  
2016-Datacenter                           WindowsServer MicrosoftWindowsServer EastUS  
2016-Datacenter-Server-Core               WindowsServer MicrosoftWindowsServer EastUS  
2016-Datacenter-Server-Core-smalldisk     WindowsServer MicrosoftWindowsServer EastUS
2016-Datacenter-smalldisk                 WindowsServer MicrosoftWindowsServer EastUS
2016-Datacenter-with-Containers           WindowsServer MicrosoftWindowsServer EastUS
2016-Datacenter-with-Containers-smalldisk WindowsServer MicrosoftWindowsServer EastUS
2016-Datacenter-with-RDSH                 WindowsServer MicrosoftWindowsServer EastUS
2016-Nano-Server                          WindowsServer MicrosoftWindowsServer EastUS

이 정보를 사용하여 특정 이미지가 있는 VM을 배포할 수 있습니다.This information can be used to deploy a VM with a specific image. 이 예제에서는 컨테이너 이미지가 있는 Windows Server 2016의 최신 버전을 사용하여 VM을 배포합니다.This example deploys a VM using the latest version of a Windows Server 2016 with Containers image.

New-AzVm `
    -ResourceGroupName "myResourceGroupVM" `
    -Name "myVM2" `
    -Location "EastUS" `
    -VirtualNetworkName "myVnet" `
    -SubnetName "mySubnet" `
    -SecurityGroupName "myNetworkSecurityGroup" `
    -PublicIpAddressName "myPublicIpAddress2" `
    -ImageName "MicrosoftWindowsServer:WindowsServer:2016-Datacenter-with-Containers:latest" `
    -Credential $cred `
    -AsJob

-AsJob 매개 변수는 VM을 백그라운드 작업으로 만들므로 PowerShell 프롬프트가 반환됩니다.The -AsJob parameter creates the VM as a background task, so the PowerShell prompts return to you. Get-Job cmdlet을 사용하여 백그라운드 작업의 세부 정보를 볼 수 있습니다.You can view details of background jobs with the Get-Job cmdlet.

VM 크기 이해Understand VM sizes

VM 크기에 따라 CPU, GPU, 메모리 등 VM에 사용할 수 있는 컴퓨팅 리소스의 양이 결정됩니다.The VM size determines the amount of compute resources like CPU, GPU, and memory that are made available to the VM. 가상 머신은 워크로드에 맞는 VM 크기로 만들어야 합니다.Virtual machines should be created using a VM size appropriate for the workload. 워크로드가 증가할 경우 기존 가상 머신의 크기를 조정할 수도 있습니다.If a workload increases, an existing virtual machine can also be resized.

VM 크기VM Sizes

다음 표에서는 크기를 사용 사례로 분류합니다.The following table categorizes sizes into use cases.

TypeType 일반적인 크기Common sizes DescriptionDescription
범용General purpose B, Dsv3, Dv3, DSv2, Dv2, Av2, DCB, Dsv3, Dv3, DSv2, Dv2, Av2, DC CPU 대 메모리 비율이 적당합니다.Balanced CPU-to-memory. 개발/테스트와 소규모에서 중간 정도의 애플리케이션 및 데이터 솔루션에 적합합니다.Ideal for dev / test and small to medium applications and data solutions.
컴퓨팅 최적화Compute optimized Fsv2Fsv2 CPU 대 메모리 비율이 높습니다.High CPU-to-memory. 트래픽이 중간 정도인 애플리케이션, 네트워크 어플라이언스 및 일괄 처리 프로세스에 적합합니다.Good for medium traffic applications, network appliances, and batch processes.
메모리에 최적화Memory optimized Esv3, Ev3, M, DSv2, Dv2Esv3, Ev3, M, DSv2, Dv2 메모리 대 코어 비율이 높습니다.High memory-to-core. 관계형 데이터베이스, 중대형 캐시 및 메모리 내 분석에 적합합니다.Great for relational databases, medium to large caches, and in-memory analytics.
Storage에 최적화Storage optimized Lsv2, LsLsv2, Ls 높은 디스크 처리량 및 IOHigh disk throughput and IO. 빅 데이터, SQL, NoSQL 데이터베이스에 적합합니다.Ideal for Big Data, SQL, and NoSQL databases.
GPUGPU NV, NVv2, NC, NCv2, NCv3, NDNV, NVv2, NC, NCv2, NCv3, ND 대량의 그래픽 렌더링 및 비디오 편집에 적합한 전문 VM입니다.Specialized VMs targeted for heavy graphic rendering and video editing.
고성능High performance HH 당사의 가장 강력한 CPU VM으로, 필요한 경우 처리량이 높은 네트워크 인터페이스(RDMA)도 제공합니다.Our most powerful CPU VMs with optional high-throughput network interfaces (RDMA).

사용 가능한 VM 크기 찾기Find available VM sizes

특정 영역에서 사용할 수 있는 VM 크기의 목록을 보려면 Get-AzVMSize 명령을 사용합니다.To see a list of VM sizes available in a particular region, use the Get-AzVMSize command.

Get-AzVMSize -Location "EastUS"

VM 크기 조정Resize a VM

VM을 배포한 후에 크기를 조정하여 리소스 할당을 늘리거나 줄일 수 있습니다.After a VM has been deployed, it can be resized to increase or decrease resource allocation.

VM의 크기를 조정하기 원하는 크기를 현재 VM 클러스터에서 사용 가능한지 확인합니다.Before resizing a VM, check if the size you want is available on the current VM cluster. Get-AzVMSize 명령은 크기 목록을 반환합니다.The Get-AzVMSize command returns a list of sizes.

Get-AzVMSize -ResourceGroupName "myResourceGroupVM" -VMName "myVM"

크기를 사용할 수 있는 경우 전원이 켜진 상태에서 VM 크기를 조정할 수 있지만 작업 중 다시 부팅됩니다.If the size is available, the VM can be resized from a powered-on state, however it is rebooted during the operation.

$vm = Get-AzVM `
   -ResourceGroupName "myResourceGroupVM"  `
   -VMName "myVM"
$vm.HardwareProfile.VmSize = "Standard_DS3_v2"
Update-AzVM `
   -VM $vm `
   -ResourceGroupName "myResourceGroupVM"

원하는 크기를 현재 클러스터에 사용할 수 없는 경우 VM 할당을 취소해야 크기 조정 작업이 가능합니다.If the size you want isn't available on the current cluster, the VM needs to be deallocated before the resize operation can occur. VM 할당을 취소하면 임시 디스크의 모든 데이터가 제거되고 고정 IP 주소를 사용하지 않는 한 공용 IP 주소가 변경됩니다.Deallocating a VM will remove any data on the temp disk, and the public IP address will change unless a static IP address is being used.

Stop-AzVM `
   -ResourceGroupName "myResourceGroupVM" `
   -Name "myVM" -Force
$vm = Get-AzVM `
   -ResourceGroupName "myResourceGroupVM"  `
   -VMName "myVM"
$vm.HardwareProfile.VmSize = "Standard_E2s_v3"
Update-AzVM -VM $vm `
   -ResourceGroupName "myResourceGroupVM"
Start-AzVM `
   -ResourceGroupName "myResourceGroupVM"  `
   -Name $vm.name

VM 전원 상태VM power states

Azure VM의 전원 상태는 여러 상태 중 하나일 수 있습니다.An Azure VM can have one of many power states.

전원 상태Power State DescriptionDescription
시작 중Starting 가상 머신이 시작되고 있습니다.The virtual machine is being started.
실행 중Running 가상 머신이 실행되고 있습니다.The virtual machine is running.
중지 중Stopping 가상 머신이 중지되고 있습니다.The virtual machine is being stopped.
중지됨Stopped VM이 중지됩니다.The VM is stopped. 중지 상태의 가상 머신에도 여전히 컴퓨팅 요금이 발생됩니다.Virtual machines in the stopped state still incur compute charges.
할당 취소 중Deallocating VM의 할당이 취소되고 있습니다.The VM is being deallocated.
할당 취소됨Deallocated VM이 하이퍼바이저에서 제거되었지만 제어 영역에서 계속 사용할 수 있음을 나타냅니다.Indicates that the VM is removed from the hypervisor but is still available in the control plane. Deallocated 상태의 가상 머신에는 컴퓨팅 요금이 발생하지 않습니다.Virtual machines in the Deallocated state do not incur compute charges.
- VM의 전원 상태를 알 수 없습니다.The power state of the VM is unknown.

특정 VM의 상태를 검색하려면 Get-AzVM 명령을 사용합니다.To get the state of a particular VM, use the Get-AzVM command. VM 및 리소스 그룹에 대한 올바른 이름을 지정해야 합니다.Be sure to specify a valid name for a VM and resource group.

Get-AzVM `
    -ResourceGroupName "myResourceGroupVM" `
    -Name "myVM" `
    -Status | Select @{n="Status"; e={$_.Statuses[1].Code}}

출력은 다음 예와 같이 표시됩니다.The output will look something like this example:

Status
------
PowerState/running

구독에 있는 모든 VM의 전원 상태를 검색하려면 매개 변수 statusOnlytrue로 설정된 Virtual Machines - 모든 API 목록을 사용합니다.To retrieve the power state of all the VMs in your subscription, use the Virtual Machines - List All API with parameter statusOnly set to true.

관리 작업Management tasks

VM의 수명 주기 동안 VM 시작, 중지 또는 삭제 등의 관리 작업을 실행하려고 할 수 있습니다.During the lifecycle of a VM, you may want to run management tasks like starting, stopping, or deleting a VM. 또한 반복적이거나 복잡한 작업을 자동화하는 스크립트를 만들 수도 있습니다.Additionally, you may want to create scripts to automate repetitive or complex tasks. Azure PowerShell을 사용하면 명령줄이나 스크립트로 여러 가지 일반적인 관리 작업을 실행할 수 있습니다.Using Azure PowerShell, many common management tasks can be run from the command line or in scripts.

VM 중지Stop a VM

Stop-AzVM을 사용하여 VM을 중지하고 할당을 취소합니다.Stop and deallocate a VM with Stop-AzVM:

Stop-AzVM `
   -ResourceGroupName "myResourceGroupVM" `
   -Name "myVM" -Force

VM을 프로비전된 상태로 유지하려면 -StayProvisioned 매개 변수를 사용합니다.If you want to keep the VM in a provisioned state, use the -StayProvisioned parameter.

VM 시작Start a VM

Start-AzVM `
   -ResourceGroupName "myResourceGroupVM" `
   -Name "myVM"

리소스 그룹 삭제Delete resource group

리소스 그룹을 삭제하면 리소스 그룹 내부의 모든 항목이 삭제됩니다.Everything inside of a resource group is deleted when you delete the resource group.

Remove-AzResourceGroup `
   -Name "myResourceGroupVM" `
   -Force

다음 단계Next steps

이 자습서에서는 다음 방법과 같이 기본 VM을 만들고 관리하는 방법에 대해 알아보았습니다.In this tutorial, you learned about basic VM creation and management such as how to:

  • VM 만들기 및 연결Create and connect to a VM
  • VM 이미지 선택 및 사용Select and use VM images
  • 특정 VM 크기 보기 및 사용View and use specific VM sizes
  • VM 크기 조정Resize a VM
  • VM 상태 보기 및 이해View and understand VM state

VM 디스크에 대해 자세히 알아보려면 다음 자습서로 이동합니다.Advance to the next tutorial to learn about VM disks.