자습서: Azure CLI로 Linux VM 만들기 및 관리

주의

이 문서에서는 EOL(수명 종료) 상태에 가까워진 Linux 배포판인 CentOS를 참조하세요. 이에 따라 사용 및 플랜을 고려하세요. 자세한 내용은 CentOS 수명 종료 지침을 참조하세요.

적용 대상: ✔️ 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를 사용하여 Marketplace에서 CentOS 이미지를 검색한 후 두 번째 가상 컴퓨터를 배포합니다.

가장 일반적으로 사용되는 이미지 목록을 보려면 az vm image list 명령을 사용하세요.

az vm image list --output table

명령 출력은 Azure에서 가장 인기 있는 VM 이미지를 반환합니다.

Architecture    Offer                         Publisher               Sku                                 Urn                                                                             UrnAlias                 Version
--------------  ----------------------------  ----------------------  ----------------------------------  ------------------------------------------------------------------------------  -----------------------  ---------
x64             CentOS                        OpenLogic               7.5                                 OpenLogic:CentOS:7.5:latest                                                     CentOS                   latest
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             UbuntuServer                  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로 필터링할 수도 있습니다. 이 예제에서는 OpenLogic에서 게시한 CentOS와 일치하는 제품이 있는 모든 이미지에 대해 목록을 필터링합니다.

az vm image list --offer CentOS --publisher OpenLogic --all --output table

부분 출력 예제:

Architecture    Offer                      Publisher    Sku              Urn                                                       Version
--------------  -------------------------  -----------  ---------------  --------------------------------------------------------  ---------------
x64             CentOS                     OpenLogic    8_2              OpenLogic:CentOS:8_2:8.2.2020111800                       8.2.2020111800
x64             CentOS                     OpenLogic    8_2-gen2         OpenLogic:CentOS:8_2-gen2:8.2.2020062401                  8.2.2020062401
x64             CentOS                     OpenLogic    8_2-gen2         OpenLogic:CentOS:8_2-gen2:8.2.2020100601                  8.2.2020100601
x64             CentOS                     OpenLogic    8_2-gen2         OpenLogic:CentOS:8_2-gen2:8.2.2020111801                  8.2.2020111801
x64             CentOS                     OpenLogic    8_3              OpenLogic:CentOS:8_3:8.3.2020120900                       8.3.2020120900
x64             CentOS                     OpenLogic    8_3              OpenLogic:CentOS:8_3:8.3.2021020400                       8.3.2021020400
x64             CentOS                     OpenLogic    8_3-gen2         OpenLogic:CentOS:8_3-gen2:8.3.2020120901                  8.3.2020120901
x64             CentOS                     OpenLogic    8_3-gen2         OpenLogic:CentOS:8_3-gen2:8.3.2021020401                  8.3.2021020401
x64             CentOS                     OpenLogic    8_4              OpenLogic:CentOS:8_4:8.4.2021071900                       8.4.2021071900
x64             CentOS                     OpenLogic    8_4-gen2         OpenLogic:CentOS:8_4-gen2:8.4.2021071901                  8.4.2021071901
x64             CentOS                     OpenLogic    8_5              OpenLogic:CentOS:8_5:8.5.2022012100                       8.5.2022012100
x64             CentOS                     OpenLogic    8_5              OpenLogic:CentOS:8_5:8.5.2022101800                       8.5.2022101800
x64             CentOS                     OpenLogic    8_5-gen2         OpenLogic:CentOS:8_5-gen2:8.5.2022012101                  8.5.2022012101

참고 항목

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 매개 변수는 CentOS 8.5의 최신 버전을 지정하는 데 사용됩니다.

az vm create --resource-group myResourceGroupVM --name myVM2 --image OpenLogic:CentOS:8_5: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의 전원 상태를 검색하려면 매개 변수 statusOnlytrue로 설정된 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 디스크에 대해 자세히 알아보려면 다음 자습서로 이동합니다.