Azure CLI란?
AZURE CLI(Command-Line Interface)는 Azure에 연결하고 Azure 리소스에서 관리 명령을 실행하도록 설계된 플랫폼 간 명령줄 도구입니다. 터미널에서 대화형으로 작업하든 스크립트를 통해 작업을 자동화하든 클라우드 인프라를 관리하기 위한 일관되고 스크립트 가능한 인터페이스를 제공합니다.
Azure CLI란?
Azure CLI 를 사용하면 다음을 수행할 수 있습니다.
- 대화형으로 명령 실행: 터미널 프롬프트에서 명령을 입력하고 즉각적인 결과를 확인합니다.
- 스크립트를 통해 자동화: 반복 작업을 위해 Bash, PowerShell 또는 기타 셸 스크립트의 명령을 결합합니다.
- 모든 Azure 서비스 관리: 일관된 구문을 사용하여 Azure 리소스를 만들고, 구성하고, 삭제하고, 모니터링합니다.
- 어디서나 작업: Linux, macOS, Windows, Docker 컨테이너에 설치하거나 Azure Cloud Shell을 사용합니다.
설치 및 실행 옵션
플랫폼 지원:
| Platform | 셸 옵션 | 설치 방법 |
|---|---|---|
| 리눅스 | Bash, PowerShell 7 | 패키지 관리자(apt, yum) 또는 스크립트 |
| macOS | Bash, Zsh, PowerShell 7 | Homebrew(홈브루) 또는 설치 관리자 |
| Windows | cmd.exe, PowerShell, PowerShell 7 | MSI 설치 관리자 |
| Docker | 배쉬 | 미리 빌드된 컨테이너 이미지 |
| Azure 클라우드 셸 | Bash, PowerShell | 기본 제공(설치 필요 없음) |
권장 환경:
- Azure Cloud Shell: 최신 Azure CLI가 미리 설치되어 있으며, 인증이 자동으로 구성됩니다.
- Linux/macOS의 Bash: 뛰어난 스크립팅 기능을 갖춘 Azure CLI용 Natural Shell입니다.
- PowerShell 7: 플랫폼 간 PowerShell은 운영 체제에서 일관된 환경을 제공합니다.
- Windows 명령 프롬프트(cmd.exe): 간단한 명령 실행을 위한 기본 Windows 셸입니다.
설치 세부 정보 및 명령 실행 패턴은 이 모듈의 뒷부분에서 자세히 설명합니다. 계속하기 전에 Azure CLI 아키텍처 및 명령 구조를 이해해 보겠습니다.
Azure CLI 참조 형식
Azure CLI 명령은핵심 참조 및 확장의 두 가지 범주로 구성 됩니다. 차이점을 이해하면 Azure CLI 설치를 관리하고 최신 기능에 액세스할 수 있습니다.
핵심 참조
핵심 참조는 Azure CLI를 사용하여 자동으로 설치되는 영구 기본 제공 명령입니다.
- 항상 사용 가능: Azure CLI를 사용하여 설치; 추가 설정이 필요하지 않습니다.
- 프로덕션 준비: 일상적인 Azure 관리를 위한 안정적이고 잘 테스트된 명령입니다.
- 자동 업데이트: Azure Cloud Shell을 사용하는 경우 핵심 참조는 항상 최신입니다.
- 포괄적인 적용 범위: 대부분의 Azure 서비스 및 일반적인 작업에 대한 명령을 포함합니다.
핵심 참조 그룹의 예:
-
az account- Azure 구독을 관리합니다. -
az group- 리소스 그룹을 관리합니다. -
az storage- Azure Storage 계정을 관리합니다. -
az vm- 가상 머신을 관리합니다. -
az network- 네트워킹 리소스를 관리합니다.
Extensions
확장은 Azure CLI 명령으로 실행되는 선택적 특수 기능을 제공합니다.
- 옵트인 설치: 기본적으로 포함되지 않습니다. 필요한 경우 설치합니다.
- 새 기능에 액세스: GA(일반 공급)가 되기 전에 미리 보기 및 실험적 Azure 기능을 가져옵니다.
- 유연한 업데이트: 핵심 Azure CLI와 독립적으로 확장을 업데이트합니다.
- 자동 프롬프트: Azure CLI는 처음 사용할 때 확장을 설치하라는 메시지를 표시합니다.
확장에 대한 일반적인 사용 사례:
- Azure 서비스에 대한 미리 보기 기능입니다.
- 특정 시나리오에 대한 특수 도구(예: Azure IoT, Azure Machine Learning).
- 타사 통합을 위한 공급업체에서 제공하는 명령입니다.
본보기: 확장 명령을 처음 실행할 때 Azure CLI에서 다음을 묻는 메시지를 표시합니다.
$ az aks create --resource-group myResourceGroup --name myAKSCluster
The command requires the extension aks-preview. Do you want to install it now? (Y/n): Y
Azure CLI 참조 상태
Azure CLI 명령에는 안정성 및 지원 수준을 나타내는 수명 주기 단계가 있습니다. 형식이 아닌 상태는 명령이 프로덕션 준비 상태인지 여부를 결정합니다.
세 가지 상태 범주
| 상태 | 안정성 | 프로덕션 환경에서 사용 | 지원 수준 |
|---|---|---|---|
| GA (일반적으로 사용 가능) | 영구 | Yes | 전체 Microsoft 지원 |
| 공개 미리 보기 | 피드백에 따라 변경할 수 있습니다. | 주의해서 사용 | Azure 미리 보기 사용 약관에 따라 |
| 사용되지 않음 | 제거됩니다. | 아니오 | 대체 시스템으로 마이그레이션 |
상태 세부 정보:
GA (일반 공급):
- 프로덕션 준비가 완료된 안정적인 명령입니다.
- 주요 버전 업데이트에서만 발생하는 변경 사항입니다.
- 전체 Microsoft 지원 및 SLA 적용 범위.
- 프로덕션 워크로드에 권장됩니다.
공개 미리 보기:
- 테스트 및 피드백에 사용할 수 있는 새로운 기능입니다.
- 예고 없이 중대한 변경이 있을 수 있습니다.
- 제한된 지원; GitHub 또는 피드백 채널을 통해 문제를 보고합니다.
- 프로덕션을 사용하기 전에 개발 환경에서 테스트합니다.
사용 중단 예정:
- 이후 릴리스에서 제거가 예약된 명령입니다.
- 일반적으로 최신의 더 나은 명령으로 대체됩니다.
- 설명서에 제공된 마이그레이션 경로입니다.
- 새 스크립트 또는 자동화에서는 사용하지 않습니다.
중요: 코어 명령과 확장 명령 모두 어떤 상태도 가질 수 있습니다. 핵심 명령은 미리 보기 상태일 수 있으며 확장 명령은 GA일 수 있습니다.
Azure CLI 참조 패턴
Azure CLI는 명령을 쉽게 예측하고 기억할 수 있는 일관된 계층적 명령 구조를 사용합니다. 패턴을 이해하면 모든 Azure 서비스를 사용할 수 있습니다.
명령 구조
구문 패턴:
az <reference-group> <subgroup> <command> --<parameter> <value>
구성 요소 분석:
| 구성 요소 | Description | 예시 |
|---|---|---|
| az | 기본 명령(항상 필요) | az |
| 참조 그룹 | Azure 서비스 또는 범주 |
account, group, , storage, vm |
| 하위 그룹 | 특정 리소스 종류(선택 사항) |
blob, containerdisk |
| Command | 실행할 작업 |
create, list, , delete, show |
| Parameter | 동작을 수정하는 옵션 |
--name, --resource-group--location |
| 값 | 매개 변수에 제공된 데이터 |
myStorageAccount, eastus |
실제 예제: Azure 구독 변경
시나리오: 기본 Azure 구독을 전환합니다.
명령 분석:
az account set --subscription "my subscription name"
-
참조 그룹:
az account(Azure 구독 관리). -
명령:
set(활성 구독을 변경합니다). -
매개 변수:
--subscription(구독을 지정합니다). -
매개 변수 값:
"my subscription name"(구독 이름 또는 ID).
추가 명령 예제
리소스 그룹을 만듭니다.
az group create --name myResourceGroup --location eastus
-
참조 그룹:
az group -
명령:
create -
매개 변수:
--name(리소스 그룹 이름),--location(Azure 지역)
스토리지 계정 나열:
az storage account list --resource-group myResourceGroup --output table
-
참조 그룹:
az storage -
하위 그룹:
account -
명령:
list -
매개 변수:
--resource-group(그룹별로 필터링),--output(결과 서식 지정)
가상 머신을 다시 시작합니다.
az vm restart --name myVM --resource-group myResourceGroup
-
참조 그룹:
az vm -
명령:
restart -
매개 변수:
--name(VM 이름),--resource-group(그룹 포함)
패턴 인식 팁: 명령은 자연어 패턴을 따릅니다. "리소스 그룹에 스토리지 계정을 만들"려면 .를 사용합니다 az storage account create --resource-group.
Azure CLI 명령 실행
Azure CLI는 대화형 명령줄 사용 및 자동화된 스크립트 실행이라는 두 가지 실행 모드를 지원합니다. 워크플로에 가장 적합한 방법을 선택합니다.
대화형 실행
대화형 모드 를 사용하면 터미널 프롬프트에서 명령을 입력하고 즉각적인 결과를 볼 수 있습니다. 이 방법은 다음 작업에 적합합니다.
- Azure CLI 명령 및 구문 학습
- Azure 리소스 및 해당 속성을 탐색합니다.
- 빠른 일회성 작업(테스트 리소스 만들기, 상태 확인).
- 문제 해결 및 디버깅.
작동 방식:
- 원하는 셸(Bash, PowerShell, cmd.exe, Azure Cloud Shell)을 엽니다.
- 프롬프트에 Azure CLI 명령을 입력합니다.
- Enter 키를 눌러 실행합니다.
- 결과를 즉시 봅니다.
본보기: 대화형으로 가상 머신을 다시 시작합니다.
az vm restart --resource-group MyResourceGroup --name MyVm
대화형 워크플로:
# Check current subscription
$ az account show --output table
# List all resource groups
$ az group list --output table
# Create a storage account
$ az storage account create --name mystorageacct --resource-group myRG --location eastus
스크립깅된 실행
스크립트 모드는 자동화를 위해 여러 Azure CLI 명령을 스크립트 파일로 결합합니다. 이 방법은 다음을 위해 필수적입니다.
- 반복적인 작업(매일 개발 환경 만들기).
- 복잡한 다단계 작업(전체 애플리케이션 배포)
- CI/CD 파이프라인(자동화된 배포)
- IaC(Infrastructure as Code) 구현.
작동 방식:
- 스크립트 파일(
.shBash,.ps1PowerShell의 경우)에 Azure CLI 명령을 작성합니다. - 필요에 따라 변수, 루프 및 조건부 논리를 추가합니다.
- 스크립트 실행 파일(Bash:
chmod +x script.sh)을 만듭니다. - 매개 변수를 사용하여 스크립트를 실행합니다.
본보기: 여러 스토리지 계정을 만드는 Bash 스크립트:
#!/bin/bash
# File: myScriptFile.sh
resourceGroup=$1
location="eastus"
accountCount=3
for i in $(seq 1 $accountCount); do
accountName="storage${i}${RANDOM}"
echo "Creating storage account: $accountName"
az storage account create \
--name $accountName \
--resource-group $resourceGroup \
--location $location \
--sku Standard_LRS
done
스크립트를 실행합니다.
# Make script executable
chmod +x myScriptFile.sh
# Run script with resource group parameter
./myScriptFile.sh myResourceGroupName
PowerShell 스크립트 예제:
# File: myScript.ps1
param (
[Parameter(Mandatory=$true)]
[string]$ResourceGroupName
)
$location = "eastus"
$storageCount = 3
for ($i = 1; $i -le $storageCount; $i++) {
$storageAccount = "storage$i$(Get-Random)"
Write-Host "Creating storage account: $storageAccount"
az storage account create `
--name $storageAccount `
--resource-group $ResourceGroupName `
--location $location `
--sku Standard_LRS
}
PowerShell 스크립트 실행:
.\myScript.ps1 -ResourceGroupName "myResourceGroupName"
올바른 실행 모드 선택
| 사용 사례 | 대화형 | 스크립팅됨 |
|---|---|---|
| 학습 | 최상 | 권장되지 않음 |
| 일회성 작업 | 최상 | 권장되지 않음 |
| Troubleshooting | 최상 | 경우에 따라 지원됩니다. |
| 반복 작업 | 권장되지 않음 | 최상 |
| 다단계 작업 | 경우에 따라 지원됩니다. | 최상 |
| CI/CD 파이프라인 | 권장되지 않음 | 최상 |
| 코드로서의 인프라 | 권장되지 않음 | 최상 |
이제 Azure CLI 아키텍처 및 명령 구조를 이해했으므로 올바른 환경을 선택하고 Azure CLI를 설치해 보겠습니다.