Azure Content Delivery Network에서 Azure Blob Storage 만료 관리

Azure Storage의 Blob Storage 서비스는 Azure Content Delivery Network와 통합된 여러 Azure 기반 원본 중 하나입니다. 공개적으로 액세스할 수 있는 모든 Blob 콘텐츠는 TTL(Time to Live)이 경과할 때까지 Azure Content Delivery Network에 캐시할 수 있습니다. TTL은 원본 서버의 HTTP 응답에 있는 Cache-Control 헤더에 의해 결정됩니다. 이 문서에서는 Azure Storage에서 Blob에 Cache-Control 헤더를 설정할 수 있는 여러 가지 방법을 보여 줍니다.

콘텐츠 배달 네트워크 캐싱 규칙을 설정하여 Azure Portal에서 캐시 설정을 제어할 수도 있습니다. 캐싱 규칙을 만들고 캐싱 동작을 재정의 또는 캐시 무시로 설정하는 경우 이 문서에 설명된 원본 제공 캐싱 설정이 무시됩니다. 일반적인 캐싱 개념에 대한 자세한 내용은 캐싱 동작 방식을 참조하세요.

BLOB에 TTL을 설정하지 않을 수도 있습니다. 이 경우 Azure Portal에서 캐싱 규칙을 설정하지 않은 경우 Azure Content Delivery Network는 7일의 기본 TTL을 자동으로 적용합니다. 이 기본 TTL은 일반 웹 배달 최적화에만 적용됩니다. 대용량 파일 최적화의 경우 기본 TTL은 1일이고 미디어 스트리밍 최적화의 경우 기본 TTL은 1년입니다.

Azure Content Delivery Network가 Blob 및 기타 파일에 대한 액세스 속도를 높이기 위해 작동하는 방법에 대한 자세한 내용은 Azure Content Delivery Network 개요를 참조하세요.

자세한 내용은 Blob Storage 소개를 참조하세요.

콘텐츠 배달 네트워크 캐싱 규칙을 사용하여 Cache-Control 헤더 설정

BLOB Cache-Control 헤더를 설정하기 위한 기본 방법은 Azure Portal에서 캐싱 규칙을 사용하는 것입니다. 콘텐츠 배달 네트워크 캐싱 규칙에 대한 자세한 내용은 캐싱 규칙을 사용하여 Azure Content Delivery Network 캐싱 동작 제어를 참조하세요.

참고 항목

캐싱 규칙은 Edgio의 Azure CDN Standard 프로필에만 사용할 수 있습니다. Edgio 프로필의 Azure CDN Premium의 경우 유사한 기능을 위해 관리 포털에서 Azure Content Delivery Network 규칙 엔진을 사용해야 합니다.

CDN 캐싱 규칙 페이지로 이동하려면:

  1. Azure Portal에서 콘텐츠 배달 네트워크 프로필을 선택한 다음, Blob에 대한 엔드포인트를 선택합니다.

  2. 설정 아래의 왼쪽 창에서 캐싱 규칙을 선택합니다.

    콘텐츠 배달 네트워크 캐싱 규칙 단추의 스크린샷

    캐싱 규칙 페이지가 나타납니다.

    콘텐츠 배달 네트워크 캐싱 페이지의 스크린샷.

전역 캐싱 규칙을 사용하여 Blob Storage 서비스의 Cache-Control 헤더를 설정하려면:

  1. 전역 캐싱 규칙에서 쿼리 문자열 캐시 동작쿼리 문자열 무시로 설정하고 캐싱 동작재정의로 설정합니다.

  2. 캐시 만료 기간 상자에 3600초를 입력하거나 시간 상자에 1시간을 입력합니다.

    콘텐츠 배달 네트워크 전역 캐싱 규칙 예제의 스크린샷.

    해당 전역 캐싱 규칙은 1시간의 캐시 기간을 설정하고 엔드포인트에 대한 모든 요청에 영향을 줍니다. 엔드포인트에서 지정한 원본 서버가 보낸 Cache-Control 또는 Expires HTTP 헤더를 재정의합니다.

  3. 저장을 선택합니다.

사용자 지정 캐싱 규칙을 사용하여 Blob 파일의 Cache-Control 헤더를 설정하려면:

  1. 사용자 지정 캐싱 규칙에 따라 일치 조건 두 개를 만듭니다.

    A. 첫 번째 일치 조건의 경우 일치 조건경로로 설정하고 일치 값으로 /blobcontainer1/*을 입력합니다. 캐싱 동작재정의로 설정하고 시간 상자에 4시간을 입력합니다.

    B. 두 번째 일치 조건의 경우 일치 조건경로로 설정하고 일치 값으로 /blobcontainer1/blob1.txt를 입력합니다. 캐싱 동작재정의로 설정하고 시간 상자에 2시간을 입력합니다.

    콘텐츠 배달 네트워크 사용자 지정 캐싱 규칙 예제의 스크린샷.

    첫 번째 사용자 지정 캐싱 규칙은 엔드포인트에서 지정한 원본 서버의 /blobcontainer1폴더 내 모든 Blob 파일에 대해 4시간의 캐시 기간을 설정합니다. 두 번째 규칙은 blob1.txt Blob 파일을 위한 첫 번째 규칙을 재정의하고 이에 대해 2시간의 캐시 기간을 설정합니다.

  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()

.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 속성을 업데이트하려면

  1. Blob를 선택하고 바로 가기 메뉴에서 속성을 선택합니다.
  2. CacheControl 속성까지 아래로 스크롤합니다.
  3. 값을 입력한 다음, 저장을 선택합니다.

Azure Storage Explorer 속성

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, Postman 또는 Fiddler와 같은 도구를 사용하여 응답 헤더를 검사할 수도 있습니다.

다음 단계