연습 - Azure PowerShell을 사용하여 대화형으로 Azure 리소스 만들기

완료됨

원래 시나리오에서는 CRM(고객 관계 관리) 소프트웨어를 테스트하려면 VM(가상 머신)을 만들어야 합니다. 새 빌드를 사용할 수 있게 되면 새 VM을 스핀업하여 정리 이미지에서 전체 설치 환경을 테스트하려고 합니다. 테스트가 완료되면 VM을 삭제할 수 있습니다.

VM을 만드는 명령을 사용해 보겠습니다.

비고

이 연습은 선택 사항입니다. 이 연습을 완료하려면 시작하기 전에 Azure 구독을 만들어야 합니다. Azure 계정이 없거나 현재 계정을 만들지 않으려는 경우 제공되는 정보를 이해할 수 있도록 지침을 읽을 수 있습니다.

비고

리소스 그룹을 사용하여 이 연습의 단계를 완료해야 합니다. 이미 만든 리소스 그룹을 사용하거나 이 연습을 위해 특별히 새 리소스 그룹을 만들 수 있습니다. 새 리소스 그룹을 만들도록 선택하면 연습을 완료할 때 만든 리소스를 더 쉽게 정리할 수 있습니다. 기존 리소스 그룹이 없거나 이 연습을 위해 특별히 새 리소스 그룹을 만들려는 경우 Azure Portal 및 Azure Resource Manager를 사용하여 리소스 그룹을 관리하여 Azure Portal을 사용하여 리소스 그룹을 만들 거나 Azure CLI를 사용하여 Azure CLI를 사용하여 Azure 리소스 그룹 관리 의 단계를 수행하여 Azure CLI를 사용하여 리소스 그룹을 만들 수 있습니다.

Azure PowerShell을 사용하여 Linux VM 만들기

Azure PowerShell을 사용하여 새 Azure VM을 만드는 방법은 다음과 같습니다.

  1. VM을 만들려면 New-AzVM cmdlet을 사용합니다.

    • VM에 대한 리소스 그룹을 지정합니다.
    • 조직의 명명 표준에 따라 VM의 이름을 지정합니다.
    • 사용 가능한 Azure 지역 목록에서 가까운 위치를 선택합니다.
    • Ubuntu Linux 이미지를 사용합니다. Canonical:0001-com-ubuntu-server-jammy:22_04-lts:latest.
    • VM 관리자 자격 증명을 설정하려면 Get-Credential cmdlet을 사용합니다.
    • SSH 액세스를 위한 포트 가 있는 22 매개 변수를 추가합니다.
    • SSH 로그인을 위한 공용 IP 주소 이름을 만듭니다.
    $azVmParams = @{
        ResourceGroupName   = 'myResourceGroupName'
        Name                = 'testvm-eus-01'
        Credential          = (Get-Credential)
        Location            = 'eastus'
        Image               = 'Canonical:0001-com-ubuntu-server-jammy:22_04-lts:latest'
        OpenPorts           = 22
        PublicIpAddressName = 'testvm-eus-01'
    }
    New-AzVm @azVmParams
    

    앞의 예제에서 myResourceGroupName 을 기존 리소스 그룹의 이름 또는 이 연습에 대해 만든 리소스 그룹의 이름으로 바꿉니다.

    복사 단추를 사용하여 클립보드에 명령을 복사할 수 있습니다. 붙여넣기하려면 Cloud Shell 터미널에서 새 줄을 마우스 오른쪽 단추로 클릭하고 붙여넣기를 선택하거나 Shift+Insert 바로 가기 키(macOS의 경우⌘+V)를 사용합니다.

  2. 자격 증명 입력:

    메시지가 표시되면 지침에 따라 사용자 이름과 암호를 입력합니다. 암호는 길이가 12~123자여야 하며 소문자, 대문자, 숫자, 특수 문자(정규식 일치 [\W_]) 등 네 가지 복잡성 요구 사항 중 세 가지를 충족해야 합니다. 자세한 내용은 Linux VM FAQ를 참조하세요.

  3. VM 만들기를 기다립니다.

    VM 만들기 프로세스를 완료하는 데 몇 분 정도 걸립니다.

  4. VM을 쿼리합니다.

    완료되면 VM을 쿼리하고 VM 개체를 변수($vm)에 할당합니다.

    $vm = Get-AzVM -Name testvm-eus-01 -ResourceGroupName myResourceGroupName
    
  5. VM에 대한 정보를 봅니다.

    VM에 대한 정보를 보려면 변수의 콘텐츠를 표시합니다.

    $vm
    

    예제 출력:

    ResourceGroupName : myResourceGroupName
    Id                : /subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/myResourceGroupName/providers/Microsoft.Compute/virtualMachines/testvm-eus-01
    VmId              : 00000000-0000-0000-0000-000000000000
    Name              : testvm-eus-01
    Type              : Microsoft.Compute/virtualMachines
    Location          : eastus
    Tags              : {}
    HardwareProfile   : {VmSize}
    NetworkProfile    : {NetworkInterfaces}
    OSProfile         : {ComputerName, AdminUsername, LinuxConfiguration, Secrets}
    ProvisioningState : Succeeded
    StorageProfile    : {ImageReference, OsDisk, DataDisks}
    ...
    
  6. VM 속성을 검사합니다.

    멤버 액세스 연산자(.)를 통해 복합 개체를 검사할 수 있습니다. 예를 들어 VMSize 섹션과 연결된 개체의 속성을 보려면 다음 명령을 실행합니다.

    $vm.HardwareProfile
    

    또는 디스크 중 하나에 대한 정보를 가져오려면 다음 명령을 실행합니다.

    $vm.StorageProfile.OsDisk
    
  7. 사용 가능한 VM 크기를 가져옵니다.

    VM 개체를 다른 cmdlet에 전달하여 사용 가능한 크기를 가져옵니다.

    $vm | Get-AzVMSize
    
  8. 공용 IP 주소 가져오기:

    VM에 연결하기 위한 공용 IP 주소를 검색하고 이를 변수에 저장합니다.

    $ip = Get-AzPublicIpAddress -ResourceGroupName myResourceGroupName -Name testvm-eus-01
    
  9. VM에 연결:

    변수의 IP 주소를 사용하여 SSH로 VM에 연결합니다. 예를 들어, 사용자 이름이 bob인 경우 다음 명령을 사용합니다.

    ssh bob@$($ip.IpAddress)
    

    exit을 입력하여 로그아웃하세요.

VM 삭제

더 많은 명령을 시도하려면 VM을 삭제해 보겠습니다. 다음 단계를 수행합니다.

  1. VM 종료:

    다음 명령을 실행합니다.

    Stop-AzVM -Name $vm.Name -ResourceGroupName $vm.ResourceGroupName
    

    계속하라는 메시지가 표시되면 Y 를 입력하고 Enter 키를 누릅니다.

  2. VM을 삭제합니다.

    VM이 중지되면 Remove-AzVM cmdlet을 실행하여 삭제합니다.

    Remove-AzVM -Name $vm.Name -ResourceGroupName $vm.ResourceGroupName
    

    계속하라는 메시지가 표시되면 Y 를 입력하고 Enter 키를 누릅니다.

  3. 리소스 그룹의 모든 리소스를 나열합니다.

    리소스 그룹의 모든 리소스를 나열하려면 Get-AzResource cmdlet을 사용합니다. 결과는 특정 속성을 반환하기 위해 Select-Object로 파이프됩니다.

    Get-AzResource -ResourceGroupName $vm.ResourceGroupName | 
        Select-Object -Property Name, ResourceType, ResourceGroupName
    

    디스크, 가상 네트워크 등을 포함하여 아직 존재하는 여러 리소스가 표시되어야 합니다.

    Name                    ResourceType                            ResourceGroupName
    ----                    ------------                            -----------------
    cloudshell              Microsoft.Storage/storageAccounts       myResourceGroupName
    testvm-eus-01           Microsoft.Network/virtualNetworks       myResourceGroupName
    testvm-eus-01           Microsoft.Network/publicIPAddresses     myResourceGroupName
    testvm-eus-01           Microsoft.Network/networkSecurityGroups myResourceGroupName
    testvm-eus-01           Microsoft.Network/networkInterfaces     myResourceGroupName
    testvm-eus-01_OsDisk_1  Microsoft.Compute/disks                 myResourceGroupName
    

    Remove-AzVM 명령은 VM만 삭제합니다. 다른 리소스는 정리하지 않습니다. 수동으로 정리하려면 다음 단계를 따릅니다.

  4. 네트워크 인터페이스를 삭제합니다.

    Get-AzNetworkInterface -ResourceGroupName $vm.ResourceGroupName -Name $vm.Name |
        Remove-AzNetworkInterface
    

    계속하라는 메시지가 표시되면 Y 를 입력하고 Enter 키를 누릅니다.

  5. 네트워크 보안 그룹을 삭제합니다.

    Get-AzNetworkSecurityGroup -ResourceGroupName $vm.ResourceGroupName |
        Remove-AzNetworkSecurityGroup
    

    계속하라는 메시지가 표시되면 Y 를 입력하고 Enter 키를 누릅니다.

  6. 공용 IP 주소를 삭제합니다.

    Get-AzPublicIpAddress -ResourceGroupName $vm.ResourceGroupName |
        Remove-AzPublicIpAddress
    

    계속하라는 메시지가 표시되면 Y 를 입력하고 Enter 키를 누릅니다.

  7. 가상 네트워크 삭제:

    Get-AzVirtualNetwork -ResourceGroupName $vm.ResourceGroupName |
        Remove-AzVirtualNetwork
    

    계속하라는 메시지가 표시되면 Y 를 입력하고 Enter 키를 누릅니다.

  8. 관리되는 OS 디스크를 삭제합니다.

    Get-AzDisk -ResourceGroupName $vm.ResourceGroupName -DiskName $vm.StorageProfile.OSDisk.Name |
        Remove-AzDisk
    

    계속하라는 메시지가 표시되면 Y 를 입력하고 Enter 키를 누릅니다.

  9. 모든 리소스가 제거되었는지 확인합니다.

    리소스 그룹을 확인하여 모든 리소스가 제거되었는지 확인합니다.

    Get-AzResource -ResourceGroupName $vm.ResourceGroupName | 
        Select-Object -Property Name, ResourceType, ResourceGroupName
    

이러한 명령을 대화형으로 실행하는 동안 더 나은 방식은 PowerShell 스크립트를 작성하는 것입니다. 스크립트를 사용하면 나중에 VM을 만들거나 삭제하기 위한 논리를 재사용할 수 있습니다.

다음으로 PowerShell 스크립트를 사용하여 이러한 작업을 자동화하는 방법을 살펴보겠습니다.