Azure CLI를 사용하여 Linux 가상 머신 프로비전

완료됨

Azure CLI는 Linux, macOS, Windows 운영 체제에 로컬로 설치할 수 있습니다. 설치 세부 정보는 운영 체제에 따라 따르며 Linux의 경우 배포에 따라 달라집니다.

참고 항목

Linux 설치 옵션에 대한 자세한 내용은 Linux에 Azure CLI 설치를 참조하세요.

Azure CLI를 대화형으로 사용하려면 Windows의 cmd.exe 또는 Linux나 macOS의 Bash와 같은 운영 체제 내에서 사용할 수 있는 셸을 실행한 다음 명령 프롬프트에서 명령을 실행합니다. 반복 작업을 자동화하려면 선택한 셸의 스크립트 구문을 사용하여 셸 스크립트로 CLI 명령을 어셈블한 후 스크립트를 실행합니다.

Azure CLI를 설치하지 않으려면 Azure Cloud Shell을 사용할 수 있습니다. Azure Cloud Shell은 웹 브라우저에서 Azure 리소스를 관리하는 데 사용할 수 있는 인증된 대화형 셸입니다. Azure Cloud Shell은 Bash 및 Azure PowerShell을 실행할 수 있으며 현재 버전의 Azure CLI가 이미 사전 설치되어 있습니다. Azure Cloud Shell에 액세스하려면 웹 브라우저에서 Azure Cloud Shell 링크를 열거나 전역 검색 텍스트 상자 옆에 있는 Azure Cloud Shell 아이콘을 선택하여 Azure Portal에서 시작합니다.

Screenshot showing the Azure Cloud Shell icon in the Azure portal.

Azure Cloud Shell은 웹 브라우저에서 Azure 구독에 액세스할 때 제공하는 자격 증명을 사용하는 기본 제공 인증의 이점을 제공합니다. 이렇게 하면 Azure CLI를 로컬로 실행할 때 각 세션의 시작 부분에서 az login 명령을 실행할 필요가 없습니다.

Azure CLI를 사용하여 Linux VM 배포

Azure CLI를 사용하여 Linux를 실행하는 Azure VM을 프로비전하는 프로세스에는 일반적으로 다음과 같은 계략적인 단계 시퀀스가 포함됩니다.

  • 적합한 VM 이미지를 식별합니다.
  • 적합한 VM 크기를 식별합니다.
  • 리소스 그룹을 만듭니다.
  • 가상 네트워크를 만들고 구성합니다.
  • Azure VM을 만듭니다.

기존 환경 및 요구 사항에 따라 위의 각 단계를 완료할 필요가 없을 수도 있습니다. 예를 들어 배포에 기존 리소스 그룹 또는 가상 네트워크 서브넷을 사용할 수 있습니다. 또한 Azure CLI는 일부 리소스 설정에 값을 명시적으로 할당하지 않기로 결정한 경우 자동으로 적용되는 광범위한 기본 설정을 지원합니다. 예를 들어 Azure Portal 기반 배포와 마찬가지로 기존 가상 네트워크를 지정하지 않으면 Azure CLI가 자동으로 프로비전됩니다. 이 모듈에서는 Azure CLI 기본 설정을 사용하고 가상 네트워크를 만드는 프로세스를 건너뜁니다.

참고 항목

Azure CLI를 사용하여 가상 네트워크를 구현하는 방법에 대한 자세한 내용은 빠른 시작: Azure CLI를 사용하여 가상 네트워크 만들기를 참조하세요.

적합한 VM 이미지 식별

프로비전 프로세스를 시작하기 전에 먼저 사용할 VM 이미지를 결정해야 합니다. 또한 배포를 호스트할 Azure 지역에서 해당 이미지의 가용성을 확인해야 합니다.

구독에서 사용할 수 있는 Azure 지역을 나열하려면 Azure Cloud Shell 창의 Bash 세션에서 다음 명령을 실행합니다.

az account list-locations --output table

출력을 검토하고 사용하려는 지역의 이름 열에서 값을 식별합니다. 미국 동부 지역을 대상으로 선택하여 이름이 eastus라고 가정해 보겠습니다.

적절한 이미지를 식별하려면 게시자, 제품, sku를 결정해야 합니다. 사용 가능한 옵션 목록을 좁히려면 다음 명령을 실행하여 이전에 식별한 지역에 대한 Microsoft 이외의 게시자를 나열합니다.

az vm image list-publishers --location eastus --query [].name --output tsv | grep -v "Microsoft" | more

참고

목록이 매우 광범위하므로 출력을 사용 가능한 세션 버퍼로 제한해야 합니다.

Canonical을 선택했다고 가정합니다. 다음으로, 다음 명령을 실행하여 해당 게시자에서 사용할 수 있는 제품을 식별합니다.

az vm image list-offers --location eastus --publisher Canonical --query [].name --output tsv

0001-com-ubuntu-server-jammy를 선택했다고 가정합니다. 다음으로 다음 명령을 실행하여 해당 제품에서 사용할 수 있는 SKU를 식별하려면 다음 명령을 실행합니다.

az vm image list-skus --location eastus --publisher Canonical --offer 0001-com-ubuntu-server-focal --query [].name --output tsv

참고

Canonical은 최근 제품 이름을 변경하고 있습니다. Ubuntu 20.04 이전에는 제품 이름이 UbuntuServer였습니다. Ubuntu 20.04의 경우 제품 이름은 0001-com-ubuntu-server-focal이며 Ubuntu 22.04의 경우 0001-com-ubuntu-server-jammy입니다.

특정 이미지를 사용하여 Azure VM을 배포하려면 해당 Urn 속성의 값을 결정해야 합니다. 이 값은 게시자, 제품, SKU, 선택적으로 이미지를 고유하게 식별하는 버전 번호로 구성되어 있습니다. 또한 버전 번호를 최신으로 설정하여 배포의 최신 버전을 지정할 수도 있습니다. 미국 동부 지역의 모든 Ubuntu 22_04-lts 이미지에 대한 Urn 속성 값을 표시하려면 다음 명령을 실행합니다.

az vm image list --location eastus --publisher Canonical --offer 0001-com-ubuntu-server-jammy --sku 22_04-lts --all --output table

참고 항목

배포하는 동안 사용할 이미지를 지정하는 접근 방식으로 훨씬 덜 유연하지만 더 간단한 UrnAlias 속성을 사용할 수 있습니다. 이 속성은 가장 일반적인 이미지에 쉽게 사용할 수 있으며 az vm image list --output table Azure CLI 명령을 실행하여 해당 값을 검색할 수 있습니다. 예를 들어 UrnAliasUbuntu2204는 이미지 Canonical:0001-com-ubuntu-server-jammy:22_04-lts-gen2:latest에 해당합니다.

적합한 VM 크기 식별

이미지 가용성 외에도 배포를 호스트할 Azure 지역에서 사용하려는 VM 크기를 사용할 수 있는지 확인해야 합니다. 이를 확인하려면 다음 명령을 실행합니다.

az vm list-sizes --location eastus --output table

목록에서 샘플 배포에 적합한 VM 크기를 식별하고 이름 열의 값을 확인합니다. Azure VM 프로비전을 시작하는 Azure CLI 명령을 실행할 때 동일한 형식으로 이름을 입력해야 합니다. Standard_F4s를 선택한 것으로 가정합니다.

중요

계속하기 전에 대상으로 지정하는 Azure 지역에서 이 VM 크기를 사용할 수 있는지 확인하고 필요한 경우 후속 명령에서 매개 변수 값을 적절하게 조정합니다.

리소스 그룹 만들기

이제 Azure VM 이미지 및 크기를 식별한 후 프로비전 프로세스를 시작할 수 있습니다. 먼저 Azure VM 및 해당 종속 리소스를 호스트할 리소스 그룹을 만듭니다. 리소스 그룹을 만들기 위해 az group create 명령을 사용합니다. 이 명령을 사용하려면 리소스 그룹 이름과 대상 Azure 지역을 각각 지정하는 name 및 location 매개 변수의 값을 모두 지정해야 합니다.

az group create --name rg_lnx-cli --location eastus

명령의 출력은 다음 예와 유사합니다.

{
  "id": "/subscriptions/fd7edadd-187f-41dd-a5df-f80bad63c167/resourceGroups/sample-RG",
  "location": "eastus",
  "managedBy": null,
  "name": "rg_lnx-cli",
  "properties": {
    "provisioningState": "Succeeded"
  },
  "tags": null,
  "type": "Microsoft.Resources/resourceGroups"
}

Azure VM 만들기

VM을 만들기 위해 az vm create 명령을 사용합니다. 이 명령은 OS 이미지, 디스크 크기, 관리 자격 증명을 비롯한 다양한 매개 변수를 지원합니다. 다음 예제에서 az vm create 명령은 최신 Ubuntu 22_04-lts-gen2 SKU 버전을 호스트하는 sample-cli-vm0이라는 Azure VM의 배포를 트리거합니다. 프로비전 프로세스는 SSH 키 쌍을 기반으로 하는 인증을 사용하여 azureuser라는 관리 사용자 계정을 구성합니다. 프라이빗 키 및 공개 키는 Azure VM에 대한 SSH 액세스를 허용하기 위해 기본 위치(~/.ssh)에 로컬로 생성되고 저장됩니다. 다음 코드 예제를 사용하여 Azure VM을 만듭니다.

az vm create \
    --resource-group rg_lnx-cli \
    --name lnx-cli-vm \
    --image Canonical:0001-com-ubuntu-server-jammy:22_04-lts-gen2:latest \
    --size Standard_F4s \
    --admin-username azureuser \
    --generate-ssh-keys

참고

--size 매개 변수는 선택 사항입니다. 제외하려는 경우 결과 크기는 선택한 이미지에 따라 달라집니다.

Azure VM은 잠시 후, 일반적으로 몇 분 이내에 실행되기 시작합니다. Azure CLI 명령의 출력에는 새로 배포된 Azure VM에 대한 JSON 형식 정보가 포함됩니다.

{
  "fqdns": "",
  "id": "/subscriptions/fd7edadd-187f-0000-0000-000000000000/resourceGroups/rg_lnx-cli/providers/Microsoft.Compute/virtualMachines/lnx-cli-vm",
  "location": "eastus",
  "macAddress": "00-0D-3A-8C-C6-AE",
  "powerState": "VM running",
  "privateIpAddress": "10.0.0.4",
  "publicIpAddress": "20.51.149.212",
  "resourceGroup": "rg_lnx-cli",
  "zones": ""
}

이 시점에서 프라이빗 키가 저장된 컴퓨터에서 다음 명령을 실행하여 (<public_ip_address> 자리 표시자를 Azure CLI 생성 출력에서 식별한 IP 주소로 바꾼 후) Azure VM에 연결할 수 있습니다.

ssh azureuser@<public_ip_address>