AzCopy를 사용하여 파일 전송: OAuth 및 SAS 토큰

IT에서는 현재 자동화가 거의 모든 곳에 존재합니다. 가상 머신 프로비저닝부터 웹 사이트 배포까지, 여러 항목을 다룰 때 특히 필요한 핵심 기술입니다. 심지어 Azure 저장소와 로컬 머신 간의 파일 관리도 AzCopy라는 유틸리티 프로그램을 사용하여 자동화할 수 있습니다.

  • AzCopy는 Azure 저장소 관리를 허용하는 독립 실행형 유틸리티입니다. AzCopy를 사용하면 여러 작업을 수행할 수 있습니다. 이 문서에서는 다음에 중점을 둘 것입니다:저장소 컨테이너 만들기
  • 로컬 파일을 컨테이너로 복사
  • 컨테이너 간 파일 복사

시작해 봅시다!

동영상을 통해 더 잘 배우는 경우, 이 문서에서 배우게 될 내용과 밀접하게 관련된 TechSnips 동영상도 확인할 수 있습니다.

필수 조건

이 문서에서는 다양한 작업을 보여주는 실습을 진행합니다. 함께 진행하려면 시작하기 전에 아래 요구 사항을 충족해야 합니다.

새 저장 컨테이너 생성

먼저, AzCopy를 사용하여 기존 저장 계정에 새로운 저장 컨테이너를 만들어 보겠습니다. 예시에서는 container1container2라는 두 개의 새 컨테이너를 만듭니다.

참고: 새 컨테이너를 만들기 전에 컨테이너의 엔드포인트 URL을 알아야 합니다. 엔드포인트 URL은 다음 형식을 따릅니다: https://[storageaccountname].blob.core.windows.net/[container_name].

먼저, 엔드포인트 URL을 정의합니다. 이 예에서는 컨테이너가 storageaccount1207라는 저장 계정에 만들어진다고 가정하고 두 개의 엔드포인트 URL을 만듭니다:

이제 엔드포인트 URL을 알았으므로 아래에 표시된 대로 각 엔드포인트 URL을 매개변수로 전달하여 azcopy make 명령을 사용합니다.

> azcopy make https://storageaccount1207.blob.core.windows.net/container1
> azcopy make https://storageaccount1207.blob.core.windows.net/container2
Creating new containers in the storageaccount1207 storage account

Azure 컨테이너로 파일 복사

저장 컨테이너를 생성한 후에는 아마도 “Azure Blob Storage에 어떻게 업로드하죠?”라고 물을 것입니다. AzCopy를 사용하여 azcopy copy 명령을 사용하여 이를 가능하게 할 수 있습니다. AzCopy를 사용하여 PST, VHD 등을 복사할 수 있습니다.

OAuth 인증 사용

AzCopy를 사용하여 파일을 Blob에 복사할 때 인증에 대한 몇 가지 옵션이 있습니다. Azure Storage에 이미 인증했다고 가정하므로 (전제 조건에 있었으므로), 아래에 표시된 대로 로컬 파일 경로를 지정한 다음 컨테이너 엔드포인트 URL을 지정하여 azcopy copy를 간단히 실행할 수 있습니다.

다른 매개변수를 지정하지 않고 실행하면 OAuth 인증을 사용합니다.

> azcopy copy c:\myDir\file1.txt https://storageaccount1207.blob.core.windows.net/container1
Upload file to Azure Storage using OAuth

파일이 Azure blob 컨테이너에 복사되었는지 확인하는 방법은 azcopy list [컨테이너 URL] 명령을 사용하는 것입니다. 아래 예제에서 볼 수 있듯이 file1.txt 파일이 있는지 확인할 수 있습니다.

> azcopy list https://storageaccount1207.blob.core.windows.net/container1
List the contents of the Azure blob container

Azure blob에서 파일을 로컬 디렉터리로 다운로드하려면 소스 및 대상 인수의 위치를 변경하기만 하면 됩니다. 아래 예제를 참조하십시오.

> azcopy copy https://storageaccount1207.blob.core.windows.net/container1/file1.txt>c:\myDir
Download file from Azure Storage using OAuth authentication

공유 액세스 서명(SAS) 토큰 사용

SAS 토큰을 사용하려면 먼저 하나를 생성해야 합니다. SAS 토큰을 생성하는 방법을 모르는 경우 Azure SAS 토큰 생성 방법 문서를 확인하십시오.

사용 가능한 SAS 토큰이 있으면 아래에 표시된대로 토큰을 대상 컨테이너의 URL에 HTTP 매개변수로 추가할 수 있습니다.

> azcopy copy c:\myDir\file1.txt 'https://storageaccount1207.blob.core.windows.net/container1?sv=2019-02-02&sr=c&sig=LgFsqIRHZovsSjpAVNAyyyy4tnDJ%2BxNh%2B1Cq3rY4Gbk%3D&se=2019-12-09T06%3A34%3A30Z&sp=rw'

PowerShell을 사용하고 토큰을 변수에 저장한 경우 (예: $token), 아래 명령과 같이 전체 토큰 문자열 대신 해당 변수를 전달할 수 있습니다.

> azcopy copy c:\myDir\file1.txt "https://storageaccount1207.blob.core.windows.net/container1?$token"
Copy file to Azure Container using SAS Token Authentication

동일한 토큰을 사용하여(유효 기간 내에 있다고 가정), Azure 스토리지에서 파일을 로컬 스토리지로 다운로드할 수도 있습니다. 아래 예에서는 file1.txt 파일을 SAS 토큰으로부터 Azure 스토리지에서 복사합니다.

아래 코드에서는 이번에는 토큰을 컨테이너 이름 뒤에 추가하는 대신 파일 이름을 먼저 추가하는 것을 볼 수 있습니다. 이는 AzCopy에게 SAS 인증을 사용하여 특정 파일을 복사하도록 지시하는 것입니다.

> azcopy copy ('https://storageaccount1207.blob.core.windows.net/container1/file1.txt'+$token) C:\MyDir\
Copy file from Azure Container with SAS Token

Azure 스토리지로 디렉토리 복사/다운로드

Azure에서 여러 파일을 전송하거나 다운로드해야 하는 경우 azcopy copy를 사용하여 전체 디렉토리를 한 번에 복사할 수도 있습니다. 이를 위한 명령어는 단일 파일을 복사하는 데 사용하는 것과 그렇게 다르지 않습니다.

아래 명령어는 C:\\MyDir를 blob 컨테이너 container1로 재귀적으로 복사합니다. 여기서 --recursive 매개변수가 핵심입니다. 명령어 끝에 있는 --recursive 플래그는 부모 디렉토리와 하위 디렉토리의 모든 내용이 복사될 것임을 나타냅니다.

> azcopy copy C:\MyDir\ https://storageaccount1207.blob.core.windows.net/container1/ --recursive

C:\MyDir 폴더 안에 있는 열 개의 파일이 모두 작업 요약에 따라 성공적으로 복사되었음을 아래에서 확인할 수 있습니다.

Copying a directory and its contents

Azure 스토리지 컨테이너 간 파일 복사

이 기사에서는 azcopy copy 명령을 꽤 사용해 왔습니다. 이제 멈출 필요가 없습니다! 온프레미스로 디렉터리와 파일을 복사할 수도 있고, 스토리지 컨테이너 간에 블롭을 복사할 수도 있습니다.

로컬 파일 경로를 사용하는 대신에 매개 변수를 변경하여 하나의 블롭 컨테이너 URL을 소스로, 다른 하나의 블롭 컨테이너 URL을 대상으로 사용합니다.

이미 container1container2라는 두 개의 스토리지 컨테이너를 만들었습니다. 이 섹션에서는 파일, 디렉터리 및 심지어 전체 블롭 컨테이너를 container1에서 container2로 복사해 봅시다.

다른 컨테이너로 파일을 복사하려면 먼저 새로운 SAS 토큰을 생성하세요. 두 컨테이너가 동일한 스토리지 계정에 속하기 때문에 동일한 토큰을 소스 및 대상 모두에 사용할 수 있습니다.

만약 PowerShell에서 azcopy를 실행 중이라면 토큰 문자열을 $token이라는 변수에 저장했다고 가정하면 아래와 같이 하나의 스토리지 컨테이너에서 다른 컨테이너로 모든 데이터를 쉽게 복사할 수 있습니다.

알림: SAS 토큰을 생성하는 방법을 모르는 경우 스토리지 계정에 액세스하려면 Azure SAS 토큰을 생성하는 방법 기사를 참조하세요.

> azcopy copy ('https://storageaccount1207.blob.core.windows.net/container1'+$token) ('https://storageaccount1207.blob.core.windows.net/container2'+$token) --recursive
Copying data between containers using SAS Token authentication

다른 유용한 AzCopy 작업

파일 및 폴더를 복사하는 것 외에도 AzCopy를 사용하여 다른 복사 작업을 수행할 수 있습니다. 그 중 일부는 다음과 같습니다:

  • 특정 파일(필터링된)을 복사하는 것입니다.
  • 디렉터리를 블롭 컨테이너의 다른 디렉터리로 복사합니다.
  • Amazon AWS에서 Azure Storage로 복사합니다.

azcopy -h를 실행하여 AzCopy가 수행할 수 있는 모든 것에 대해 알아보세요. 이 기사에서는 주로 다룬 copy 명령 이외에도 많은 유용한 명령어를 찾을 수 있습니다. 이 명령어들에 대한 스크린샷은 아래에서 확인할 수 있습니다.

List of AzCopy Commands

더 알아보려면 AzCopy 복사 페이지를 방문하세요. 그런 다음 이 기사에서 배운 기술을 사용하여 직접 시도해 볼 수 있습니다.

요약

이 기사에서는 AzCopy를 사용하여 로컬 및 Azure 저장소 간에 파일을 전송하는 방법을 배웠습니다. 또한 OAuth 및 공유 액세스 서명 토큰을 사용하여이러한 작업을 수행하는 방법도 배웠습니다. 다른 AzCopy 명령어가 무엇인지와 그것들을 찾는 방법을 살펴보았습니다.

I hope this article has helped you get started with AzCopy and sparked your interest in using it more as part of your administration or development tasks. Thank you!

Source:
https://adamtheautomator.com/azcopy-storage/