본문 바로가기
성장하기/Microsoft Azure

Create Virtual Machine

by 솔로 슈퍼스타 2023. 7. 6.
728x90

Azure 에서 리소스를 생성하고 관리하는 방법에는 다음과 같은 여러 방법이 있습니다. 

  • Azure Resource Manager templates
  • Azure PowerShell
  • Azure CLI
  • Azure REST API
  • Azure Client SDK
  • Azure VM Extensions
  • Azure Automation Services

그 중에서 Virtual Matchine을 생성하는 몇가지 방법을 소개합니다.

Azure CLI

az vm create \
    --resource-group TestResourceGroup \
    --name test-wp1-eus-vm \
    --image Ubuntu \
    --admin-username azureuser \
    --generate-ssh-keys


위의 명령은 Azure CLI (Command-Line Interface)를 사용하여 Azure 가상 머신(VM)을 생성하는 명령입니다. 다음은 명령의 각 구성 요소에 대한 설명입니다:

  • az vm create: Azure CLI에서 가상 머신을 생성하기 위한 명령입니다.
  • --resource-group TestResourceGroup: 가상 머신을 생성할 리소스 그룹의 이름을 지정합니다. 리소스 그룹은 Azure 리소스를 구성하고 관리하는 데 사용되는 논리적 컨테이너입니다. 이 예시에서는 "TestResourceGroup"이라는 리소스 그룹을 생성하거나 기존의 리소스 그룹을 사용합니다.
  • --name test-wp1-eus-vm: 생성할 가상 머신의 이름을 지정합니다. 이 예시에서는 "test-wp1-eus-vm"이라는 이름의 가상 머신을 생성합니다.
  • --image Ubuntu: 가상 머신에 사용할 이미지를 지정합니다. 이 예시에서는 Ubuntu 이미지를 선택하여 가상 머신을 생성합니다.
  • --admin-username azureuser: 가상 머신에 대한 관리자 사용자 이름을 지정합니다. 이 예시에서는 "azureuser"를 관리자 사용자 이름으로 설정합니다.
  • --generate-ssh-keys: SSH 키 쌍을 자동으로 생성하여 가상 머신에 액세스하는 데 사용됩니다. 이 옵션을 사용하면 Azure CLI가 SSH 공개 키와 개인 키를 생성하고 관련 정보를 가상 머신에 연결합니다.

위의 명령을 실행하면 Azure CLI가 지정된 리소스 그룹에 새로운 가상 머신을 생성하고, 선택한 이미지로부터 가상 머신을 프로비저닝합니다. 관리자 사용자 이름 및 생성된 SSH 키를 통해 가상 머신에 SSH로 연결할 수 있게 됩니다.

Azure PowerShell

다음은  Azure PowerShell 을 이용하여 VM을 생성하는 예시입니다.

New-AzVm `
    -ResourceGroupName "TestResourceGroup" `
    -Name "test-wp1-eus-vm" `
    -Location "East US" `
    -Image Debian `
    -VirtualNetworkName "test-wp1-eus-network" `
    -SubnetName "default" `
    -SecurityGroupName "test-wp1-eus-nsg" `
    -PublicIpAddressName "test-wp1-eus-pubip" `
    -GenerateSshKey `
    -SshKeyName myPSKey
    -OpenPorts 22

Azure Client SDK

다음은 Azure REST API를 이용해서 개발을 용이하게 만든  Azure Client SDK를 사용한 코드의 예시입니다.

var azure = Azure
    .Configure()
    .WithLogLevel(HttpLoggingDelegatingHandler.Level.Basic)
    .Authenticate(credentials)
    .WithDefaultSubscription();
// ...
var vmName = "test-wp1-eus-vm";

azure.VirtualMachines.Define(vmName)
    .WithRegion(Region.USEast)
    .WithExistingResourceGroup("TestResourceGroup")
    .WithExistingPrimaryNetworkInterface(networkInterface)
    .WithLatestWindowsImage("MicrosoftWindowsServer", "WindowsServer", "2012-R2-Datacenter")
    .WithAdminUsername("jonc")
    .WithAdminPassword("aReallyGoodPasswordHere")
    .WithComputerName(vmName)
    .WithSize(VirtualMachineSizeTypes.StandardDS1)
    .Create();

위의 코드는 Microsoft.Azure.Management.Fluent Nuget Package를 이용하여 VM 을 생성하는 C# 코드 입니다.

 

String vmName = "test-wp1-eus-vm";
// ...
VirtualMachine virtualMachine = azure.virtualMachines()
    .define(vmName)
    .withRegion(Region.US_EAST)
    .withExistingResourceGroup("TestResourceGroup")
    .withExistingPrimaryNetworkInterface(networkInterface)
    .withLatestWindowsImage("MicrosoftWindowsServer", "WindowsServer", "2012-R2-Datacenter")
    .withAdminUsername("jonc")
    .withAdminPassword("aReallyGoodPasswordHere")
    .withComputerName(vmName)
    .withSize("Standard_DS1")
    .create();

위의 코드는 Azure Java SDK를 이용하여 VM 을 생성하는 Java 코드 예시입니다. 

 

[참조] 

- OpenAI GPT-3.5

- Microsoft Learn : Describe the options available to create and manage an Azure Virtual Machine (https://learn.microsoft.com/en-us/training/modules/intro-to-azure-virtual-machines/4-describe-other-create-vm-options)

'성장하기 > Microsoft Azure' 카테고리의 다른 글

클라우드 서비스 모델 : IaaS, PaaS, DBaaS, SaaS  (0) 2023.07.07
Network Security Groups (NSGs)  (0) 2023.07.06
SMB (Server Message Block)  (0) 2023.07.06
Azure Storage  (0) 2023.07.05
LRS와 GRS  (0) 2023.07.05