자습서: Azure CLI로 Linux VM 만들기 및 관리
적용 대상: ✔️ Linux VM ✔️ 유연한 확장 집합
Azure Virtual Machines는 완전하게 구성할 수 있고 유연한 컴퓨팅 환경을 제공합니다. 이 자습서에서는 VM 크기 선택, VM 이미지 선택 및 VM 배포 등 기본적인 Azure Virtual Machines 배포 항목에 대해 설명합니다. 다음 방법에 대해 설명합니다.
- VM 만들기 및 연결
- VM 이미지 선택 및 사용
- 특정 VM 크기 보기 및 사용
- VM 크기 조정
- VM 상태 보기 및 이해
이 자습서에서는 지속적으로 최신 버전으로 업데이트되는 Azure Cloud Shell 내의 CLI를 사용합니다.
CLI를 로컬로 설치하여 사용하도록 선택한 경우 이 자습서에서 Azure CLI 버전 2.0.30 이상을 실행해야 합니다. az --version
을 실행하여 버전을 찾습니다. 설치 또는 업그레이드해야 하는 경우 Azure CLI 설치를 참조하세요.
리소스 그룹 만들기
az group create 명령을 사용하여 리소스 그룹을 만듭니다.
Azure 리소스 그룹은 Azure 리소스가 배포 및 관리되는 논리적 컨테이너입니다. 가상 머신보다 먼저 리소스 그룹을 만들어야 합니다. 이 예제에서는 eastus2 지역에 myResourceGroupVM이라는 리소스 그룹을 만듭니다.
az group create --name myResourceGroupVM --location eastus2
리소스 그룹은 VM을 만들거나 수정할 때 지정되며 이 자습서 전체에서 확인할 수 있습니다.
가상 머신 만들기
az vm create 명령을 사용하여 가상 머신을 만듭니다.
가상 머신을 만들 때 운영 체제 이미지, 디스크 크기 조정 및 관리 자격 증명 등의 몇 가지 옵션을 사용할 수 있습니다. 다음 예제에서는 SUSE SLES(Linux Enterprise Server)를 실행하는 myVM이라는 VM을 만듭니다. VM에서 azureuser라는 사용자 계정을 만들고, SSH 키가 기본 키 위치(~/.ssh)에 없는 경우 새로 만듭니다.
az vm create \
--resource-group myResourceGroupVM \
--name myVM \
--image SuseSles15SP3 \
--public-ip-sku Standard \
--admin-username azureuser \
--generate-ssh-keys
VM을 만드는 데 몇 분이 걸릴 수 있습니다. VM이 만들어지면 Azure CLI에서 VM에 대한 정보를 출력합니다. publicIpAddress
를 메모해 둡니다. 이 주소는 가상 머신에 액세스하는 데 사용할 수 있습니다.
{
"fqdns": "",
"id": "/subscriptions/d5b9d4b7-6fc1-0000-0000-000000000000/resourceGroups/myResourceGroupVM/providers/Microsoft.Compute/virtualMachines/myVM",
"location": "eastus2",
"macAddress": "00-0D-3A-23-9A-49",
"powerState": "VM running",
"privateIpAddress": "10.0.0.4",
"publicIpAddress": "52.174.34.95",
"resourceGroup": "myResourceGroupVM"
}
VM에 연결
이제 Azure Cloud Shell에서 또는 로컬 컴퓨터에서 SSH를 사용하여 VM에 연결할 수 있습니다. 예제 IP 주소를 이전 단계에서 메모한 publicIpAddress
로 바꿉니다.
ssh azureuser@52.174.34.95
VM에 로그인한 후 애플리케이션을 설치하고 구성할 수 있습니다. 작업을 완료하면 정상적으로 SSH 세션을 닫습니다.
exit
VM 이미지 이해
Azure Marketplace에는 VM을 만드는 데 사용할 수 있는 여러 VM 이미지가 포함되어 있습니다. 이전 단계에서는 Ubuntu 이미지를 사용하여 가상 컴퓨터를 만들었습니다. 이 단계에서는 Azure CLI를 사용하여 마켓플레이스에서 Ubuntu 이미지를 검색한 다음 두 번째 가상 머신을 배포하는 데 사용합니다.
가장 일반적으로 사용되는 이미지 목록을 보려면 az vm image list 명령을 사용하세요.
az vm image list --output table
명령 출력은 Azure에서 가장 인기 있는 VM 이미지를 반환합니다.
Architecture Offer Publisher Sku Urn UrnAlias Version
-------------- ---------------------------- ---------------------- ---------------------------------- ------------------------------------------------------------------------------ ----------------------- ---------
x64 debian-10 Debian 10 Debian:debian-10:10:latest Debian latest
x64 flatcar-container-linux-free kinvolk stable kinvolk:flatcar-container-linux-free:stable:latest Flatcar latest
x64 opensuse-leap-15-3 SUSE gen2 SUSE:opensuse-leap-15-3:gen2:latest openSUSE-Leap latest
x64 RHEL RedHat 7-LVM RedHat:RHEL:7-LVM:latest RHEL latest
x64 sles-15-sp3 SUSE gen2 SUSE:sles-15-sp3:gen2:latest SLES latest
x64 0001-com-ubuntu-server-jammy Canonical 18.04-LTS Canonical:UbuntuServer:18.04-LTS:latest UbuntuLTS latest
x64 WindowsServer MicrosoftWindowsServer 2022-Datacenter MicrosoftWindowsServer:WindowsServer:2022-Datacenter:latest Win2022Datacenter latest
x64 WindowsServer MicrosoftWindowsServer 2022-datacenter-azure-edition-core MicrosoftWindowsServer:WindowsServer:2022-datacenter-azure-edition-core:latest Win2022AzureEditionCore latest
x64 WindowsServer MicrosoftWindowsServer 2019-Datacenter MicrosoftWindowsServer:WindowsServer:2019-Datacenter:latest Win2019Datacenter latest
x64 WindowsServer MicrosoftWindowsServer 2016-Datacenter MicrosoftWindowsServer:WindowsServer:2016-Datacenter:latest Win2016Datacenter latest
x64 WindowsServer MicrosoftWindowsServer 2012-R2-Datacenter MicrosoftWindowsServer:WindowsServer:2012-R2-Datacenter:latest Win2012R2Datacenter latest
x64 WindowsServer MicrosoftWindowsServer 2012-Datacenter MicrosoftWindowsServer:WindowsServer:2012-Datacenter:latest Win2012Datacenter latest
x64 WindowsServer MicrosoftWindowsServer 2008-R2-SP1 MicrosoftWindowsServer:WindowsServer:2008-R2-SP1:latest Win2008R2SP1 latest
--all
매개 변수를 추가하면 전체 목록을 볼 수 있습니다. 이미지 목록은 --publisher
또는 –-offer
로 필터링할 수도 있습니다. 이 예제에서는 0001-com-ubuntu-server-jammy와 일치하는 제품이 있는 OpenLogic에서 게시한 모든 이미지에 대해 목록이 필터링됩니다.
az vm image list --offer 0001-com-ubuntu-server-jammy --publisher Canonical --all --output table
부분 출력 예제:
Architecture Offer Publisher Sku Urn Version
-------------- --------------------------------- ----------- --------------- ------------------------------------------------------------------------ ---------------
x64 0001-com-ubuntu-server-jammy Canonical 22_04-lts Canonical:0001-com-ubuntu-server-jammy:22_04-lts:22.04.202204200 22.04.202204200
x64 0001-com-ubuntu-server-jammy Canonical 22_04-lts Canonical:0001-com-ubuntu-server-jammy:22_04-lts:22.04.202205060 22.04.202205060
x64 0001-com-ubuntu-server-jammy Canonical 22_04-lts Canonical:0001-com-ubuntu-server-jammy:22_04-lts:22.04.202205280 22.04.202205280
x64 0001-com-ubuntu-server-jammy Canonical 22_04-lts Canonical:0001-com-ubuntu-server-jammy:22_04-lts:22.04.202206040 22.04.202206040
x64 0001-com-ubuntu-server-jammy Canonical 22_04-lts Canonical:0001-com-ubuntu-server-jammy:22_04-lts:22.04.202206090 22.04.202206090
x64 0001-com-ubuntu-server-jammy Canonical 22_04-lts Canonical:0001-com-ubuntu-server-jammy:22_04-lts:22.04.202206160 22.04.202206160
x64 0001-com-ubuntu-server-jammy Canonical 22_04-lts Canonical:0001-com-ubuntu-server-jammy:22_04-lts:22.04.202206220 22.04.202206220
x64 0001-com-ubuntu-server-jammy Canonical 22_04-lts Canonical:0001-com-ubuntu-server-jammy:22_04-lts:22.04.202207060 22.04.202207060
참고 항목
Canonical은 최신 버전에 사용하는 제품 이름을 변경했습니다. Ubuntu 20.04 이전의 제품 이름은 UbuntuServer입니다. Ubuntu 20.04의 경우 제품 이름은 0001-com-ubuntu-server-focal
이며 Ubuntu 22.04의 경우 제품 이름은 0001-com-ubuntu-server-jammy
입니다.
특정 이미지를 사용하여 VM을 배포하려면 이미지를 식별하기 위한 게시자, 제품, SKU 및 버전 번호(선택 사항)로 구성된 Urn 열의 값을 적어 둡니다. 이미지를 지정하면 이미지 버전 번호는 최신 버전의 배포를 선택하도록 latest
로 대체될 수 있습니다. 이 예제에서는 --image
매개 변수를 사용하여 Ubuntu 22.04의 최신 버전을 지정합니다.
az vm create --resource-group myResourceGroupVM --name myVM2 --image Canonical:0001-com-ubnutu-server-jammy:22_04-lts:latest --generate-ssh-keys
VM 크기 이해
가상 머신 크기에 따라 CPU, GPU, 메모리 등 가상 머신에 사용할 수 있는 컴퓨팅 리소스의 양이 결정됩니다. 가상 머신은 예상되는 워크로드에 맞게 적절히 크기 조정되어야 합니다. 워크로드가 증가할 경우 기존 가상 머신의 크기를 조정할 수 있습니다.
VM 크기
다음 표에서는 크기를 사용 사례로 분류합니다.
Type | 설명 |
---|---|
범용 | CPU 대 메모리 비율이 적당합니다. 개발/테스트와 소규모에서 중간 정도의 애플리케이션 및 데이터 솔루션에 적합합니다. |
컴퓨팅 최적화 | CPU 대 메모리 비율이 높습니다. 트래픽이 중간 정도인 애플리케이션, 네트워크 어플라이언스 및 일괄 처리 프로세스에 적합합니다. |
메모리에 최적화 | 메모리 대 코어 비율이 높습니다. 관계형 데이터베이스, 중대형 캐시 및 메모리 내 분석에 적합합니다. |
스토리지 최적화 | 높은 디스크 처리량 및 IO. 빅 데이터, SQL, NoSQL 데이터베이스에 적합 |
GPU | 대량의 그래픽 렌더링 및 비디오 편집에 적합한 전문 VM입니다. |
고성능 | 당사의 가장 강력한 CPU VM으로, 필요한 경우 처리량이 높은 네트워크 인터페이스(RDMA)도 제공합니다. |
사용 가능한 VM 크기 찾기
특정 지역에서 사용할 수 있는 VM 크기의 목록을 보려면 az vm list-sizes 명령을 사용합니다.
az vm list-sizes --location eastus2 --output table
부분 출력 예제:
MaxDataDiskCount MemoryInMb Name NumberOfCores OsDiskSizeInMb ResourceDiskSizeInMb
------------------ ------------ ---------------------- --------------- ---------------- ----------------------
4 8192 Standard_D2ds_v4 2 1047552 76800
8 16384 Standard_D4ds_v4 4 1047552 153600
16 32768 Standard_D8ds_v4 8 1047552 307200
32 65536 Standard_D16ds_v4 16 1047552 614400
32 131072 Standard_D32ds_v4 32 1047552 1228800
32 196608 Standard_D48ds_v4 48 1047552 1843200
32 262144 Standard_D64ds_v4 64 1047552 2457600
4 8192 Standard_D2ds_v5 2 1047552 76800
8 16384 Standard_D4ds_v5 4 1047552 153600
16 32768 Standard_D8ds_v5 8 1047552 307200
32 65536 Standard_D16ds_v5 16 1047552 614400
32 131072 Standard_D32ds_v5 32 1047552 1228800
32 196608 Standard_D48ds_v5 48 1047552 1843200
32 262144 Standard_D64ds_v5 64 1047552 2457600
32 393216 Standard_D96ds_v5 96 1047552 3686400
특정 크기로 VM 만들기
이전 VM 만들기 예제에서는 크기가 제공되지 않았으므로 기본 크기가 사용되었습니다. VM 크기는 만들 때 az vm create 및 --size
매개 변수를 사용하여 선택할 수 있습니다.
az vm create \
--resource-group myResourceGroupVM \
--name myVM3 \
--image SuseSles15SP3 \
--size Standard_D2ds_v4 \
--generate-ssh-keys
VM 크기 조정
VM을 배포한 후에 크기를 조정하여 리소스 할당을 늘리거나 줄일 수 있습니다. az vm show를 사용하여 VM의 현재 크기를 볼 수 있습니다.
az vm show --resource-group myResourceGroupVM --name myVM --query hardwareProfile.vmSize
VM의 크기를 조정하기 전에 원하는 크기를 현재 Azure 클러스터에서 사용할 수 있는지 확인합니다. az vm list-vm-resize-options 명령은 크기 목록을 반환합니다.
az vm list-vm-resize-options --resource-group myResourceGroupVM --name myVM --query [].name
원하는 크기를 사용할 수 있는 경우 전원이 켜진 상태에서 VM 크기를 조정할 수 있지만 작업 중 다시 부팅됩니다. az vm resize 명령을 사용하여 크기 조정을 수행합니다.
az vm resize --resource-group myResourceGroupVM --name myVM --size Standard_D4s_v3
원하는 크기가 현재 클러스터에 없는 경우 크기 조정 작업이 일어날 수 있기 때문에 미리 VM 할당을 취소해야 합니다. az vm deallocate 명령을 사용하여 VM을 중지하고 할당을 취소합니다. 참고로 VM의 전원이 다시 켜지면 임시 디스크의 모든 데이터가 제거됩니다. 고정 IP 주소를 사용하지 않는 한 공용 IP 주소도 변경됩니다.
az vm deallocate --resource-group myResourceGroupVM --name myVM
할당이 취소되면 크기가 조정될 수 있습니다.
az vm resize --resource-group myResourceGroupVM --name myVM --size Standard_GS1
크기를 조정한 후 VM을 시작할 수 있습니다.
az vm start --resource-group myResourceGroupVM --name myVM
VM 전원 상태
Azure VM의 전원 상태는 여러 상태 중 하나일 수 있습니다. 이 상태는 하이퍼바이저의 관점에서 VM의 현재 상태를 나타냅니다.
전원 상태
전원 상태 | 설명 |
---|---|
시작 중 | 가상 머신이 시작되고 있음을 나타냅니다. |
실행 중 | 가상 머신이 실행되고 있음을 나타냅니다. |
중지 중 | 가상 머신이 중지되고 있음을 나타냅니다. |
중지됨 | 가상 머신이 중지되었음을 나타냅니다. 중지 상태의 가상 머신에도 여전히 컴퓨팅 요금이 발생됩니다. |
할당 취소 중 | 가상 머신의 할당이 취소되고 있음을 나타냅니다. |
할당 취소됨 | 가상 머신이 하이퍼바이저에서 제거되었지만 제어 영역에서 계속 사용할 수 있음을 나타냅니다. 할당 취소됨 상태의 가상 머신에는 컴퓨팅 요금이 발생하지 않습니다. |
- | 가상 머신의 전원 상태가 알 수 없음을 나타냅니다. |
전원 상태 찾기
특정 VM의 상태를 검색하려면 az vm get-instance-view 명령을 사용합니다. 가상 머신 및 리소스 그룹에 대한 올바른 이름을 지정해야 합니다.
az vm get-instance-view \
--name myVM \
--resource-group myResourceGroupVM \
--query instanceView.statuses[1] --output table
출력
Code Level DisplayStatus
------------------ ------- ---------------
PowerState/running Info VM running
구독에 있는 모든 VM의 전원 상태를 검색하려면 매개 변수 statusOnly가 true로 설정된 Virtual Machines - 모든 API 목록을 사용합니다.
관리 작업
가상 머신의 수명 주기 동안 가상 머신 시작, 중지 또는 삭제 등의 관리 작업을 실행하려고 할 수 있습니다. 또한 반복되는 작업이나 복잡한 작업을 자동화하는 스크립트를 만들 수 있습니다. Azure CLI를 사용하여 명령줄이나 스크립트에서 여러 가지 일반적인 관리 작업을 실행할 수 있습니다.
IP 주소 가져오기
이 명령은 가상 머신의 개인 및 공용 IP 주소를 반환합니다.
az vm list-ip-addresses --resource-group myResourceGroupVM --name myVM --output table
가상 컴퓨터 중지
az vm stop --resource-group myResourceGroupVM --name myVM
가상 컴퓨터 시작
az vm start --resource-group myResourceGroupVM --name myVM
VM 리소스 삭제
VM을 삭제하는 방법에 따라 네트워킹 및 디스크 리소스가 아닌 VM 리소스만 삭제할 수 있습니다. VM을 삭제할 때 다른 리소스를 삭제하도록 기본 동작을 변경할 수 있습니다. 자세한 내용은 VM 및 연결된 리소스 삭제를 참조하세요.
리소스 그룹을 삭제하면 VM, 가상 네트워크, 디스크와 같은 리소스 그룹의 모든 리소스도 삭제됩니다. --no-wait
매개 변수는 작업이 완료될 때까지 대기하지 않고 프롬프트로 제어를 반환합니다. --yes
매개 변수는 작업을 수행하는 추가 프롬프트 없이 리소스를 삭제할 것인지 확인합니다.
az group delete --name myResourceGroupVM --no-wait --yes
다음 단계
이 자습서에서는 다음 방법과 같이 기본 VM을 만들고 관리하는 방법에 대해 알아보았습니다.
- VM 만들기 및 연결
- VM 이미지 선택 및 사용
- 특정 VM 크기 보기 및 사용
- VM 크기 조정
- VM 상태 보기 및 이해
VM 디스크에 대해 자세히 알아보려면 다음 자습서로 이동합니다.