스토리지 계정에 대한 기본 온라인 액세스 계층을 설정합니다. 개별 Blob에 대한 설정을 명시적으로 다시 지정하지 않는 한, 계정의 Blob은 이 액세스 계층을 상속합니다.
업로드 시 Blob의 계층을 명시적으로 설정하여. 핫, 쿨, 콜드 또는 보관 계층으로 Blob을 만들 수 있습니다.
Blob 계층 설정 작업을 통해 기존 Blob의 계층을 변경합니다. 일반적으로 이 작업은 더 핫한 계층에서 더 쿨한 계층으로 이동하는 데 사용합니다.
Blob 복사 작업을 통해 Blob을 복사합니다. 일반적으로 이 작업은 더 쿨한 계층에서 더 핫한 계층으로 이동하는 데 사용합니다.
이 문서에서는 온라인 액세스 계층에서 Blob을 관리하는 방법을 설명합니다. Blob을 보관 계층으로 이동하는 방법에 대한 자세한 내용은 Blob 보관을 참조하세요. 보관 계층에서 Blob을 리하이드레이션하는 방법에 대한 자세한 내용은 보관된 Blob을 온라인 계층으로 리하이드레이션을 참조하세요.
범용 용도 v2 스토리지 계정에 대한 기본 액세스 계층 설정은 기본적으로 새 Blob을 만드는 온라인 계층을 결정합니다. 계정을 만들 때 또는 기존 계정의 구성을 업데이트하여 범용 v2 스토리지 계정에 대한 기본 액세스 계층을 설정할 수 있습니다.
기존 범용 v2 스토리지 계정에 대한 기본 액세스 계층 설정을 변경하면 액세스 계층이 명시적으로 설정되지 않은 계정의 모든 Blob에 변경 내용이 적용됩니다. 기본 액세스 계층을 변경하면 요금 청구에 영향을 줄 수 있습니다. 자세한 내용은 기본 계정 액세스 계층 설정을 참조하세요.
Azure Portal에서 특정 계층에 Blob 또는 Blob 집합을 업로드하려면 다음 단계를 수행합니다.
대상 컨테이너로 이동합니다.
업로드 버튼을 선택합니다.
업로드할 파일을 선택합니다.
고급 섹션을 확장하고 액세스 계층을 핫 또는 쿨로 설정합니다.
업로드 버튼을 선택합니다.
PowerShell을 사용하여 특정 계층에 Blob 또는 Blob 집합을 업로드하려면 다음 예와 같이 Set-AzStorageBlobContent 명령을 호출합니다. 대괄호의 자리 표시자 값을 사용자 고유의 값으로 바꿔야 합니다.
$rgName = <resource-group>
$storageAccount = <storage-account>
$containerName = <container>
# tier can be hot, cool, cold, or archive
$tier = <tier>
# Get context object
$ctx = New-AzStorageContext -StorageAccountName $storageAccount -UseConnectedAccount
# Create new container.
New-AzStorageContainer -Name $containerName -Context $ctx
# Upload a single file named blob1.txt to the cool tier.
Set-AzStorageBlobContent -Container $containerName `
-File "blob1.txt" `
-Blob "blob1.txt" `
-Context $ctx `
-StandardBlobTier Cool
# Upload the contents of a sample-blobs directory to the cool tier, recursively.
Get-ChildItem -Path "C:\sample-blobs" -File -Recurse |
Set-AzStorageBlobContent -Container $containerName `
-Context $ctx `
-StandardBlobTier $tier
Azure CLI를 사용하여 특정 계층에 Blob을 업로드하려면 다음 예와 같이 az storage blob upload 명령을 호출합니다. 대괄호의 자리 표시자 값을 사용자 고유의 값으로 바꿔야 합니다. <tier> 자리 표시자를 hot, cool, cold 또는 archive로 바꿉니다.
Azure CLI를 사용하여 특정 계층에 Blob 집합을 업로드하려면 다음 예와 같이 az storage blob upload-batch 명령을 호출합니다. 대괄호의 자리 표시자 값을 사용자 고유의 값으로 바꿔야 합니다. <tier> 자리 표시자를 hot, cool, cold 또는 archive로 바꿉니다.
AzCopy를 사용하여 Blob을 특정 계층에 업로드하려면 azcopy copy 명령을 사용하고 --block-blob-tier 매개 변수를 hot, cool 또는 archive로 설정합니다.
참고 항목
이 예에서는 경로 인수를 작은따옴표(‘’)로 묶습니다. Windows 명령 셸(cmd.exe)을 제외하고 모든 명령 셸에서 작은따옴표를 사용합니다. Windows 명령 셸(cmd.exe)을 사용하는 경우 작은따옴표(‘’) 대신 큰따옴표(“”)로 경로 인수를 묶습니다. 이 예제에서는 Microsoft Entra ID를 사용하여 권한 부여 자격 증명을 제공했다고 가정하므로 SAS 토큰을 제외합니다. 스토리지 서비스에 대한 권한 부여 자격 증명을 제공하는 방법을 알아보려면 AzCopy 시작 문서를 참조하세요.
Blob의 액세스 계층이 기본 계정 액세스 계층 설정에서 유추된 경우 Azure Portal에서는 액세스 계층을 핫(유추됨), 쿨(유추됨) 또는 콜드(유추됨)로 표시합니다.
Blob의 액세스 계층과 Azure PowerShell에서 유추되는지 여부를 확인하려면 Blob을 검색한 다음, 해당 AccessTier 및 AccessTierInferred 속성을 확인합니다.
$rgName = "<resource-group>"
$storageAccount = "<storage-account>"
$containerName = "<container>"
$blobName = "<blob>"
# Get the storage account context.
$ctx = New-AzStorageContext -StorageAccountName $storageAccount -UseConnectedAccount
# Get the blob from the service.
$blob = Get-AzStorageBlob -Context $ctx -Container $containerName -Blob $blobName
# Check the AccessTier and AccessTierInferred properties.
# If the access tier is inferred, that property returns true.
$blob.BlobProperties.AccessTier
$blob.BlobProperties.AccessTierInferred
Blob의 액세스 계층과 Azure CLI에서 유추되는지 여부를 확인하려면 Blob을 검색한 다음, 해당 blobTier 및 blobTierInferred 속성을 확인합니다.
PowerShell, Azure CLI, AzCopy v10 또는 Azure Storage 클라이언트 라이브러리 중 하나를 사용하여 Blob을 다른 계층으로 이동합니다.
Blob의 계층 변경
Blob의 계층을 변경하는 경우 Blob 계층 설정 작업을 호출하거나(직접 또는 수명 주기 관리 정책을 통해) AzCopy에서 azcopy set-properties 명령을 사용하여 해당 Blob과 모든 해당 데이터를 대상 계층으로 이동합니다. 이 옵션은 일반적으로 Blob의 계층을 더 높은 핫 계층에서 더 낮은 쿨 계층으로 변경하는 경우에 가장 적합합니다.
팁
스토리지 작업을 사용하면 정의한 조건 집합을 기반으로 여러 스토리지 계정에 걸쳐 blob의 액세스 계층을 대규모로 변경할 수 있습니다. 스토리지 작업은 Azure 스토리지 작업에서 사용할 수 있는 리소스입니다. 여러 스토리지 계정에 걸쳐 수백만 개의 개체에 대해 일반적인 데이터 작업을 수행하는 데 사용할 수 있는 서버리스 프레임워크입니다. 자세히 알아보려면 Azure 스토리지 작업이란?을 참조하세요.
Azure Portal에서 Blob 계층을 더 쿨한 계층으로 변경하려면 다음 단계를 수행합니다.
계층을 변경하려는 Blob으로 이동합니다.
해당 Blob을 선택하고 계층 변경 단추를 선택합니다.
계층 변경 대화 상자에서 대상 계층을 선택합니다.
저장 단추를 선택합니다.
PowerShell을 사용하여 Blob 계층을 더 쿨한 계층으로 변경하려면 Blob의 BlobClient 속성을 사용하여 Blob에 대한 .NET 참조를 반환한 다음, 해당 참조에서 SetAccessTier 메서드를 호출합니다. 꺾쇠 괄호로 묶인 자리 표시자 값을 사용자 고유의 값으로 바꿔야 합니다.
# Initialize these variables with your values.
$rgName = "<resource-group>"
$accountName = "<storage-account>"
$containerName = "<container>"
$blobName = "<blob>"
$tier = "<tier>"
# Get the storage account context
$ctx = (Get-AzStorageAccount `
-ResourceGroupName $rgName `
-Name $accountName).Context
# Change the blob's access tier.
$blob = Get-AzStorageBlob -Container $containerName -Blob $blobName -Context $ctx
$blob.BlobClient.SetAccessTier($tier, $null, "Standard")
Azure CLI를 사용하여 Blob의 계층을 더 쿨한 계층으로 변경하려면 az storage blob set-tier 명령을 호출합니다. 꺾쇠 괄호로 묶인 자리 표시자 값을 사용자 고유의 값으로 바꿔야 합니다.
Blob의 계층을 더 쿨한 계층으로 변경하려면 azcopy set-properties 명령을 사용하고 -block-blob-tier 매개 변수를 설정합니다.
Important
AzCopy를 사용하여 Blob의 액세스 계층을 변경하는 기능은 현재 미리 보기에 있습니다.
베타, 미리 보기로 제공되거나 아직 일반 공급으로 릴리스되지 않은 Azure 기능에 적용되는 약관은 Microsoft Azure 미리 보기에 대한 추가 사용 약관을 참조하세요.
참고 항목
이 예에서는 경로 인수를 작은따옴표(‘’)로 묶습니다. Windows 명령 셸(cmd.exe)을 제외하고 모든 명령 셸에서 작은따옴표를 사용합니다. Windows 명령 셸(cmd.exe)을 사용하는 경우 작은따옴표(‘’) 대신 큰따옴표(“”)로 경로 인수를 묶습니다. 이 예제에서는 Microsoft Entra ID를 사용하여 권한 부여 자격 증명을 제공했다고 가정하므로 SAS 토큰을 제외합니다. 스토리지 서비스에 대한 권한 부여 자격 증명을 제공하는 방법을 알아보려면 AzCopy 시작 문서를 참조하세요.
Blob 복사 작업을 호출하여 Blob을 한 계층에서 다른 계층으로 복사합니다. Blob을 다른 계층으로 복사할 때는 해당 Blob 및 해당 데이터를 모두 대상 계층으로 이동합니다. 원본 Blob은 원래 계층에 남아 있고 새 Blob이 대상 계층에 만들어집니다. Blob을 더 따뜻한 계층으로 이동하거나 보관 계층에서 Blob을 리하이드레이션하는 대부분의 시나리오에서는 Blob 복사를 호출하는 것이 좋습니다.
많은 수의 Blob을 다른 계층으로 이동할 때 최적의 성능을 위해 일괄 처리 작업을 사용합니다. 일괄 처리 작업은 단일 요청으로 여러 API 호출을 서비스에 보냅니다. Blob 일괄 처리 작업에서 지원하는 하위 작업에는 Blob 삭제 및 Blob 계층 설정이 포함됩니다.
일괄 처리 작업을 통해 Blob의 액세스 계층을 변경하려면 Azure Storage 클라이언트 라이브러리 중 하나를 사용합니다. 다음 코드 예에서는 .NET 클라이언트 라이브러리를 사용하여 기본 일괄 처리 작업을 수행하는 방법을 보여 줍니다.
static async Task BulkArchiveContainerContents(string accountName, string containerName)
{
string containerUri = string.Format("https://{0}.blob.core.windows.net/{1}",
accountName,
containerName);
// Get container client, using Azure AD credentials.
BlobUriBuilder containerUriBuilder = new BlobUriBuilder(new Uri(containerUri));
BlobContainerClient blobContainerClient = new BlobContainerClient(containerUriBuilder.ToUri(),
new DefaultAzureCredential());
// Get URIs for blobs in this container and add to stack.
var uris = new Stack<Uri>();
await foreach (var item in blobContainerClient.GetBlobsAsync())
{
uris.Push(blobContainerClient.GetBlobClient(item.Name).Uri);
}
// Get the blob batch client.
BlobBatchClient blobBatchClient = blobContainerClient.GetBlobBatchClient();
try
{
// Perform the bulk operation to archive blobs.
await blobBatchClient.SetBlobsAccessTierAsync(blobUris: uris, accessTier: AccessTier.Archive);
}
catch (RequestFailedException e)
{
Console.WriteLine(e.Message);
}
}
일괄 처리 작업으로 계층을 변경하는 방법을 보여 주는 심층 샘플 애플리케이션은 AzBulkSetBlobTier를 참조하세요.