빠른 시작: Azure CLI를 사용하여 Blob 생성, 다운로드 및 나열

Azure CLI는 Azure 리소스를 관리하는 Azure의 명령줄 환경입니다. 브라우저에서 Azure Cloud Shell과 함께 사용할 수 있습니다. macOS, Linux 또는 Windows에 설치하고 명령줄에서 실행할 수도 있습니다. 이 빠른 시작에서는 Azure CLI를 사용하여 Azure Blob Storage 간에 데이터를 업로드하고 다운로드하는 방법을 알아봅니다.

필수 조건

Azure Storage에 액세스하려면 Azure 구독이 있어야 합니다. 구독이 아직 없는 경우 시작하기 전에 체험 계정을 만듭니다.

Azure Storage에 대한 모든 액세스는 스토리지 계정을 통해 수행됩니다. 이 빠른 시작에서는 Azure Portal, Azure PowerShell 또는 Azure CLI를 사용하여 스토리지 계정을 만듭니다. 스토리지 계정을 만드는 데 도움이 필요한 경우 스토리지 계정 만들기를 참조하세요.

Azure CLI에 대한 환경 준비

  • 이 문서에는 Azure CLI 버전 2.0.46 이상이 필요합니다. Azure Cloud Shell을 사용하는 경우 최신 버전이 이미 설치되어 있습니다.

Blob Storage에 대한 액세스 권한 부여

Microsoft Entra 자격 증명을 사용하거나 스토리지 계정 액세스 키를 사용하여 Azure CLI에서 Blob 스토리지에 대한 액세스 권한을 부여할 수 있습니다. Microsoft Entra 자격 증명을 사용하는 것이 좋습니다. 이 문서에서는 Microsoft Entra ID를 사용하여 Blob Storage 작업에 권한을 부여하는 방법을 보여 줍니다.

Blob Storage에 대한 데이터 작업에 대한 Azure CLI 명령은 매개 변수를 지원 --auth-mode 하므로 지정된 작업에 권한을 부여하는 방법을 지정할 수 있습니다. --auth-mode Microsoft Entra 자격 증명으로 권한을 부여하도록 login 매개 변수를 설정합니다. 자세한 내용은 Azure CLI를 사용하여 Blob 또는 큐 데이터에 대한 액세스 권한 부여를 참조하세요.

Blob Storage 데이터 작업만 매개 변수를 --auth-mode 지원합니다. 리소스 그룹 또는 스토리지 계정 만들기와 같은 관리 작업은 권한 부여에 Microsoft Entra 자격 증명을 자동으로 사용합니다.

시작하려면 az login을 사용하여 Azure 계정에 로그인합니다.

az login

리소스 그룹 만들기

az group create 명령을 사용하여 Azure 리소스 그룹을 만듭니다. 리소스 그룹은 Azure 리소스가 배포 및 관리되는 논리적 컨테이너입니다.

꺾쇠 괄호로 묶인 자리 표시자 값을 사용자 고유의 값으로 바꿔야 합니다.

az group create \
    --name <resource-group> \
    --location <location>

저장소 계정 만들기

az storage account create 명령을 사용하여 범용 스토리지 계정을 만듭니 다. 범용 스토리지 계정은 Blob, 파일, 테이블 및 큐의 네 가지 서비스 모두에 사용할 수 있습니다.

꺾쇠 괄호로 묶인 자리 표시자 값을 사용자 고유의 값으로 바꿔야 합니다.

az storage account create \
    --name <storage-account> \
    --resource-group <resource-group> \
    --location <location> \
    --sku Standard_ZRS \
    --encryption-services blob

컨테이너 만들기

Blob은 항상 컨테이너에 업로드됩니다. 폴더의 컴퓨터에서 파일을 구성하는 방법과 유사한 방식으로 컨테이너에서 Blob 그룹을 구성할 수 있습니다. az storage container create 명령을 사용하여 Blob을 저장하기 위한 컨테이너를 만듭니 다.

다음 예제에서는 Microsoft Entra 계정을 사용하여 컨테이너를 만드는 작업에 권한을 부여합니다. 컨테이너를 만들기 전에 스토리지 Blob 데이터 기여자 역할을 자신에게 할당합니다. 계정 소유자인 경우에도 스토리지 계정에 대해 데이터 작업을 수행하려면 명시적 권한이 필요합니다. Azure 역할 할당에 대한 자세한 내용은 Blob 데이터에 액세스하기 위한 Azure 역할 할당을 참조 하세요.

꺾쇠 괄호로 묶인 자리 표시자 값을 사용자 고유의 값으로 바꿔야 합니다.

az ad signed-in-user show --query id -o tsv | az role assignment create \
    --role "Storage Blob Data Contributor" \
    --assignee @- \
    --scope "/subscriptions/<subscription>/resourceGroups/<resource-group>/providers/Microsoft.Storage/storageAccounts/<storage-account>"

az storage container create \
    --account-name <storage-account> \
    --name <container> \
    --auth-mode login

Important

Azure 역할 할당이 전파되는 데 몇 분 정도 걸릴 수 있습니다.

스토리지 계정 키를 사용하여 컨테이너를 만드는 작업에 권한을 부여할 수도 있습니다. Azure CLI를 사용하여 데이터 작업에 권한을 부여하는 방법에 대한 자세한 내용은 Azure CLI를 사용하여 Blob 또는 큐 데이터에 대한 액세스 권한 부여를 참조하세요.

Blob 업로드

Blob Storage는 블록 Blob, 추가 Blob 및 페이지 Blob을 지원합니다. 이 빠른 시작의 예제에서는 블록 Blob을 사용하는 방법을 보여 줍니다.

먼저 블록 Blob에 업로드할 파일을 만듭니다. Azure Cloud Shell을 사용하는 경우 다음 명령을 사용하여 파일을 만듭니다.

vi helloworld

파일이 열리면 삽입을 누릅니다. Hello world를 입력한 다음, Esc를 누릅니다. 다음으로, :x를 입력한 다음, Enter를 누릅니다.

이 예제에서는 az storage blob upload 명령을 사용하여 마지막 단계에서 만든 컨테이너에 Blob을 업로드 합니다. 루트 디렉터리에서 파일을 만들었으므로 파일 경로를 지정할 필요가 없습니다. 꺾쇠 괄호로 묶인 자리 표시자 값을 사용자 고유의 값으로 바꿔야 합니다.

az storage blob upload \
    --account-name <storage-account> \
    --container-name <container> \
    --name myFile.txt \
    --file myFile.txt \
    --auth-mode login

이 작업은 Blob이 아직 없는 경우 Blob을 만들고 덮어씁니다(있는 경우). 원하는 만큼 파일을 업로드한 후 계속합니다.

Azure CLI를 사용하여 Blob을 업로드할 때 http 및 https 프로토콜을 통해 각 REST API 호출을 발급합니다.

동시에 여러 파일을 업로드하려면 az storage blob upload-batch 명령을 사용할 수 있습니다.

컨테이너의 Blob 나열

az storage blob list 명령으로 컨테이너에 있는 Blob을 나열합니다. 꺾쇠 괄호로 묶인 자리 표시자 값을 사용자 고유의 값으로 바꿔야 합니다.

az storage blob list \
    --account-name <storage-account> \
    --container-name <container> \
    --output table \
    --auth-mode login

Blob 다운로드

az storage blob download 명령을 사용하여 이전에 업로드한 Blob을 다운로드합니다. 꺾쇠 괄호로 묶인 자리 표시자 값을 사용자 고유의 값으로 바꿔야 합니다.

az storage blob download \
    --account-name <storage-account> \
    --container-name <container> \
    --name myFile.txt \
    --file <~/destination/path/for/file> \
    --auth-mode login

AzCopy를 사용한 데이터 전송

AzCopy 명령줄 유틸리티는 Azure Storage에 대한 고성능의 스크립터블 데이터 전송을 제공합니다. AzCopy를 사용하여 Blob Storage 및 Azure Files 간에 데이터를 전송할 수 있습니다. AzCopy의 최신 버전인 AzCopy v10에 대한 자세한 내용은 AzCopy 시작을 참조하세요. Blob Storage에서 AzCopy v10을 사용하는 방법에 대한 자세한 내용은 AzCopy 및 Blob Storage를 사용하여 데이터 전송을 참조하세요.

다음 예제에서는 AzCopy를 사용하여 로컬 파일을 Blob에 업로드합니다. 샘플 값을 사용자 고유의 값으로 바꿔야 합니다.

azcopy login
azcopy copy 'C:\myDirectory\myFile.txt' 'https://mystorageaccount.blob.core.windows.net/mycontainer/myFile.txt'

리소스 정리

스토리지 계정을 포함하여 이 빠른 시작의 일부로 만든 리소스를 삭제하려면 az group delete 명령을 사용하여 리소스 그룹을 삭제 합니다. 꺾쇠 괄호로 묶인 자리 표시자 값을 사용자 고유의 값으로 바꿔야 합니다.

az group delete \
    --name <resource-group> \
    --no-wait

다음 단계

이 빠른 시작에서는 로컬 파일 시스템과 Azure Blob Storage의 컨테이너 간에 파일을 전송하는 방법을 알아보았습니다. Azure CLI를 사용한 Blob Storage 작업에 대해 자세히 알아보려면 아래 옵션을 선택합니다.