Azure CDN(Content Delivery Network)에서 Azure Blob Storage 만료 관리
Important
Microsoft의 Azure CDN 표준(클래식)은 2027년 9월 30일에 사용 중지됩니다. 서비스 중단을 방지하려면 2027년 9월 30일까지 Azure Front Door 표준 또는 프리미엄 계층으로 Microsoft의 Azure CDN 표준(클래식) 프로필을 마이그레이션해야 합니다. 자세한 내용은 Microsoft의 Azure CDN 표준(클래식) 사용 중지를 참조하세요.
Edgio의 Azure CDN은 2025년 1월 15일에 사용 중지됩니다. 서비스 중단을 방지하려면 이 날짜 이전에 워크로드를 Azure Front Door로 마이그레이션해야 합니다. 자세한 내용은 Edgio 사용 중지 FAQ의 Azure CDN을 참조 하세요.
Azure Storage에서 Blob Storage 서비스는 Azure Content Delivery Network와 통합된 여러 Azure 기반 원본 중 하나입니다. TTL(time to live)이 경과할 때까지 공개적으로 액세스 가능한 모든 Blob 콘텐츠는 Azure Content Delivery Network에 캐시될 수 있습니다. TTL은 원본 서버의 HTTP 응답에 있는 Cache-Control
헤더에 의해 결정됩니다. 이 문서에서는 Azure Storage에서 Blob에 Cache-Control
헤더를 설정할 수 있는 여러 가지 방법을 보여 줍니다.
콘텐츠 배달 네트워크 캐시 규칙을 설정하여 Azure Portal에서 캐시 설정을 제어할 수도 있습니다. 캐싱 규칙을 만들고 캐싱 동작을 재정의 또는 캐시 무시로 설정하는 경우 이 문서에 설명된 원본 제공 캐싱 설정이 무시됩니다. 일반적인 캐싱 개념에 대한 자세한 내용은 캐싱 동작 방식을 참조하세요.
팁
BLOB에 TTL을 설정하지 않을 수도 있습니다. 이 경우 Azure Content Delivery Network는 사용자가 Azure Portal에서 캐싱 규칙을 설정하지 않은 한, 7일의 기본 TTL을 자동으로 적용합니다. 이 기본 TTL은 일반 웹 배달 최적화에만 적용됩니다. 대용량 파일 최적화의 경우 기본 TTL은 1일이고 미디어 스트리밍 최적화의 경우 기본 TTL은 1년입니다.
BLOB와 다른 파일에 대한 액세스 속도를 높이기 위해 Azure CDN이 작동하는 방법에 대한 자세한 내용은 Azure Content Delivery Network 개요를 참조하세요.
자세한 내용은 Blob Storage 소개를 참조하세요.
콘텐츠 배달 네트워크 캐싱 규칙을 사용하여 Cache-Control 헤더 설정
BLOB Cache-Control
헤더를 설정하기 위한 기본 방법은 Azure Portal에서 캐싱 규칙을 사용하는 것입니다. 콘텐츠 배달 네트워크 캐싱 규칙에 대한 자세한 내용은 캐싱 규칙 사용하여 Azure Content Delivery Network 캐싱 동작 제어를 참조하세요.
참고 항목
캐싱 규칙은 Edgio의 Azure CDN Standard 프로필에만 사용할 수 있습니다. Edgio의 Azure Content Delivery Network Premium 프로필은 유사한 기능을 위해 관리 포털에서 Azure CDN 규칙 엔진을 사용해야 합니다.
CDN 캐싱 규칙 페이지로 이동하려면:
Azure Portal에서 콘텐츠 배달 네트워크 프로필을 선택한 다음, Blob용 엔드포인트를 선택합니다.
설정 아래의 왼쪽 창에서 캐싱 규칙을 선택합니다.
캐싱 규칙 페이지가 나타납니다.
전역 캐싱 규칙을 사용하여 Blob Storage 서비스의 Cache-Control 헤더를 설정하려면:
전역 캐싱 규칙에서 쿼리 문자열 캐시 동작을 쿼리 문자열 무시로 설정하고 캐싱 동작을 재정의로 설정합니다.
캐시 만료 기간은 초 상자에 3600초를 입력하거나 시간 상자에 1시간을 입력합니다.
해당 전역 캐싱 규칙은 1시간의 캐시 기간을 설정하고 엔드포인트에 대한 모든 요청에 영향을 줍니다. 엔드포인트에서 지정한 원본 서버가 보낸
Cache-Control
또는Expires
HTTP 헤더를 재정의합니다.저장을 선택합니다.
사용자 지정 캐싱 규칙을 사용하여 Blob 파일의 Cache-Control 헤더를 설정하려면:
사용자 지정 캐싱 규칙에 따라 일치 조건 두 개를 만듭니다.
A. 첫 번째 일치 조건의 경우 일치 조건을 경로로 설정하고 일치 값으로
/blobcontainer1/*
을 입력합니다. 캐싱 동작을 재정의로 설정하고 시간 상자에 4시간을 입력합니다.B. 두 번째 일치 조건의 경우 일치 조건을 경로로 설정하고 일치 값으로
/blobcontainer1/blob1.txt
를 입력합니다. 캐싱 동작을 재정의로 설정하고 시간 상자에 2시간을 입력합니다.첫 번째 사용자 지정 캐싱 규칙은 엔드포인트에서 지정한 원본 서버의
/blobcontainer1
폴더 내 모든 Blob 파일에 대해 4시간의 캐시 기간을 설정합니다. 두 번째 규칙은blob1.txt
Blob 파일을 위한 첫 번째 규칙을 재정의하고 이에 대해 2시간의 캐시 기간을 설정합니다.저장을 선택합니다.
Azure PowerShell을 사용하여 Cache-Control 헤더 설정
참고 항목
Azure Az PowerShell 모듈을 사용하여 Azure와 상호 작용하는 것이 좋습니다. 시작하려면 Azure PowerShell 설치를 참조하세요. Az PowerShell 모듈로 마이그레이션하는 방법에 대한 자세한 내용은 Azure PowerShell을 AzureRM에서 Azure로 마이그레이션을 참조하세요.
Azure PowerShell은 Azure 서비스를 관리하는 가장 강력하고 빠른 방법 중 하나입니다. Get-AzStorageBlob
cmdlet을 사용하여 Blob에 대한 참조를 가져온 다음 .ICloudBlob.Properties.CacheControl
속성을 설정합니다.
예시:
# Create a storage context
$context = New-AzStorageContext -StorageAccountName "<storage account name>" -StorageAccountKey "<storage account key>"
# Get a reference to the blob
$blob = Get-AzStorageBlob -Context $context -Container "<container name>" -Blob "<blob name>"
# Set the CacheControl property to expire in 1 hour (3600 seconds)
$blob.ICloudBlob.Properties.CacheControl = "max-age=3600"
# Send the update to the cloud
$blob.ICloudBlob.SetProperties()
팁
PowerShell을 사용하여 콘텐츠 배달 네트워크 프로필 및 엔드포인트를 관리할 수도 있습니다.
.NET을 사용하여 Cache-Control 헤더 설정
.NET 코드를 사용해 Blob의 Cache-Control
헤더를 지정하려면, .NET용 Azure Storage 클라이언트 라이브러리를 사용하여 BlobHttpHeaders.CacheControl 속성을 설정합니다.
예시:
class Program
{
const string containerName = "<container name>";
const string blobName = "<blob name>";
const string connectionString = "<storage connection string>";
static void Main()
{
// Retrieve storage account information from connection string
BlobContainerClient container = new BlobContainerClient(connectionString, containerName);
// Create a blob client for interacting with the blob service.
BlobClient blob = container.GetBlobClient(blobName);
// Set the CacheControl property to expire in 1 hour (3600 seconds)
blob.SetHttpHeaders(new BlobHttpHeaders {CacheControl = "max-age=3600" });
}
}
팁
.NET용 Azure Blob Storage 샘플에서 사용할 수 있는 추가 .NET 코드 샘플이 있습니다.
다른 방법을 사용하여 Cache-Control 헤더 설정
Azure Storage Explorer
Azure Storage Explorer를 사용하여 CacheControl 속성 등의 속성을 비롯한 Blob Storage 리소스를 확인하고 편집할 수 있습니다.
Azure Storage Explorer에서 Blob의 CacheControl 속성을 업데이트하려면
- Blob를 선택하고 바로 가기 메뉴에서 속성을 선택합니다.
- CacheControl 속성까지 아래로 스크롤합니다.
- 값을 입력한 다음, 저장을 선택합니다.
Azure CLI
Azure CLI를 통해 명령줄에서 Azure Blob 리소스를 관리할 수 있습니다. Azure CLI를 사용하여 Blob을 업로드할 때 cache-control 헤더를 설정하려면 -p
스위치를 사용하여 cacheControl 속성을 설정합니다. 다음 예제에서는 TTL을 1시간(3600초)으로 설정하는 방법을 보여 줍니다.
azure storage blob upload -c <connectionstring> -p cacheControl="max-age=3600" .\<blob name> <container name> <blob name>
Azure Storage 서비스 REST API
Azure Storage 서비스 REST API를 사용하면 요청에 다음 작업을 사용하여 x-ms-blob-cache-control 속성을 명시적으로 설정할 수 있습니다.
Cache-Control 헤더 테스트
Blob의 TTL 설정을 쉽게 확인할 수 있습니다. 브라우저의 개발자 도구를 사용하여 Blob에 Cache-Control
응답 헤더가 포함되어 있는지 테스트합니다. Wget 또는 Fiddler와 같은 도구를 사용하여 응답 헤더를 검사할 수도 있습니다.