BLOB のアクセス層を設定する

BLOB のアクセス層は、次の方法で設定できます。

  • ストレージ アカウントの既定のオンライン アクセス層 (ホットまたはクール) を設定する。 個々の BLOB の設定を明示的にオーバーライドしない限り、アカウント内の BLOB は、このアクセス層を継承します。
  • アップロード時に BLOB の層を明示的に設定する。 ホット アクセス層、クール アクセス層、コールド アクセス層またはアーカイブ アクセス層で BLOB を作成できます。
  • BLOB 層の設定操作で既存の BLOB の層を変更する。 通常は、ホット アクセス層からクール アクセス層に移動するのにこの操作を使用します。
  • Copy Blob 操作で BLOB をコピーする。 通常は、クール アクセス層からホット アクセス層に移動するのにこの操作を使用します。

この記事では、オンライン アクセス層で BLOB を管理する方法について説明します。 BLOB をアーカイブ アクセス層に移動する方法の詳細については、「BLOB をアーカイブする」を参照してください。 アーカイブ アクセス層から BLOB をリハイドレートする方法の詳細については、「アーカイブ済み BLOB をオンライン層にリハイドレートする」を参照してください。

BLOB のアクセス層の詳細については、「BLOB データのアクセス層」を参照してください。

ストレージ アカウントの既定のアクセス層を設定する

汎用 v2 ストレージ アカウントの既定のアクセス層の設定によって、新しい BLOB が既定で作成されるオンライン層が決まりす。 アカウントの作成時に、汎用 v2 ストレージ アカウントの既定のアクセス層を設定できます。または既存のアカウントの構成を更新して設定することもできます。

既存の汎用 v2 ストレージ アカウントの既定のアクセス層設定を変更すると、アクセス層が明示的に設定されていないアカウント内のすべての BLOB に変更が適用されます。 既定のアクセス層を変更すると、課金に影響する可能性があります。 詳細については、「アカウントのデフォルト アクセス層の設定」を参照してください。

Azure portal で、ストレージ アカウントの作成時にストレージ アカウントの既定のアクセス層を設定するには、次の手順に従います。

  1. [ストレージ アカウント] ページに移動し、 [作成] ボタンを選択します。

  2. [基本] タブに入力します。

  3. [詳細設定] タブの [BLOBストレージ] で、 [アクセス層][ホット] または [クール] に設定します。 既定の設定は [ホット] です。

  4. [確認および作成] を選択して、設定を確認し、ストレージ アカウントを作成します。

    ストレージ アカウントの作成時に既定のアクセス層を設定する方法を示すスクリーンショット。

Azure portal で、既存のストレージ アカウントの既定のアクセス層を更新するには、次の手順に従います。

  1. Azure portal 内で、ストレージ アカウントに移動します。

  2. [設定] の下で [構成] を選択します。

  3. [BLOB アクセス層 (既定)] 設定を見つけて、 [ホット] または [クール] を選択します。 このプロパティを以前に設定していない場合、既定の設定は [ホット] です。

  4. 変更を保存します。

アップロード時に BLOB の層を設定する

Azure Storage に BLOB をアップロードするときに、BLOB の層をアップロード時に設定するための 2 つのオプションがあります。

  • BLOB を作成する層を明示的に指定できます。 この設定は、ストレージ アカウントの既定のアクセス層をオーバーライドします。 アップロード時に BLOB または BLOB のセットの層をホット、クール、コールド、またはアーカイブに設定できます。
  • 層を指定せずに BLOB をアップロードすることができます。 この場合、ストレージ アカウントに指定された既定のアクセス層 (ホットまたはクール) に BLOB が作成されます。

暗号化スコープを使用する新しい BLOB をアップロードする場合、その BLOB のアクセス層を変更することはできません。

次のセクションでは、BLOB をホット アクセス層またはクール アクセス層にアップロードするように指定する方法について説明します。 アップロード時に BLOB をアーカイブする方法の詳細については、「アップロード時に BLOB をアーカイブする」を参照してください。

特定のオンライン層に BLOB をアップロードする

ホット アクセス層、クール アクセス層、またはコールド アクセス層に BLOB を作成するには、BLOB を作成するときにその層を指定します。 アップロード時に指定されたアクセス層は、ストレージ アカウントの既定のアクセス層をオーバーライドします。

BLOB または BLOB のセットを特定の層にアップロードするには、Azure portal で次の手順に従います。

  1. ターゲット コンテナーに移動します。

  2. [アップロード] ボタンを選択します。

  3. アップロードするファイルを選択します。

  4. [詳細設定] セクションを展開し、 [アクセス層][ホット] または [クール] に設定します。

  5. [アップロード] ボタンを選択します。

    Azure portal で BLOB をオンライン層にアップロードする方法を示すスクリーンショット

規定の層に BLOB をアップロードする

ストレージ アカウントには、新しい BLOB を作成するオンライン層を指定するための、デフォルト アクセス層の設定があります。 デフォルト アクセス層には、ホット、クールいずれかのアクセス層を設定できます。 この設定の動作は、ストレージ アカウントの種類によって若干異なります。

  • 新しい汎用 v2 ストレージ アカウントの既定のアクセス層は、既定でホット層に設定されています。 デフォルト アクセス層の設定は、ストレージ アカウントの作成時および作成後に変更できます。
  • レガシ BLOB Storage アカウントを作成するときには、ストレージ アカウントの作成時に既定のアクセス層設定をホットまたはクールに指定する必要があります。 ストレージ アカウントの既定のアクセス層の設定は、アカウントの作成後に変更できます。

明示的に層を割り当てていない BLOB では、アカウント のデフォルト アクセス層の設定によって層を判断します。 Azure portal、PowerShell、または Azure CLI を使用して、BLOB のアクセス層が推論されるかどうかを判断することができます。

アカウントのデフォルト アクセス層の設定によって BLOB のアクセス層を判断した場合、Azure portal では、アクセス層が “Hot (inferred)” (ホット アクセス層 (推定)) または “Cool (inferred)” (クール アクセス層 (推定)) と表示されます。

Azure portal での BLOB の既定のアクセス層を示すスクリーンショット

BLOB を別のオンライン層に移動する

BLOB を別のオンライン層に移動するには、次の 2 つの方法があります。

  • アクセス層を変更する。
  • BLOB を別のオンライン層にコピーする。

これらの各オプションの詳細については、「BLOB の層を設定または変更する」を参照してください。

PowerShell、Azure CLI、AzCopy v10、またはいずれかの Azure Storage クライアント ライブラリを使用して、BLOB を別の層に移動します。

BLOB の層を変更する

BLOB の層を変更する場合は、BLOB 層の設定操作 (直接またはライフサイクル管理ポリシーを使用) を呼び出すか、AzCopy で azcopy set-properties コマンドを使用して、その BLOB とそのすべてのデータをターゲット層に移動します。 このオプションは通常、BLOB の層をホットな層からよりクールなものに変更する場合に最も良い方法です。

ヒント

ストレージ タスクを使用すると、定義した一連の条件に基づいて、複数のストレージ アカウント全体で BLOB アクセス層を大規模に変更できます。 ストレージ タスクは Azure Storage Actions で利用できるリソースです。これは、複数のストレージ アカウントにまたがる数百万ものオブジェクトに対して一般的なデータ操作を実行するために使用できるサーバーレス フレームワークです。 詳細については、「Azure Storage Actions とは」を参照してください。

Azure portal で BLOB の層をよりクールな層に変更するには、次の手順を実行します。

  1. 層を変更する BLOB に移動します。

  2. BLOB を選択し、 [層の変更] ボタンを選択します。

  3. [層の変更] ダイアログで、ターゲット層を選択します。

  4. [保存] ボタンを選択します。

    Azure portal で BLOB の層を変更する方法を示すスクリーンショット

BLOB を別のオンライン層にコピーする

Copy Blob (BLOB のコピー) 操作を呼び出して、ある層から別の層に BLOB をコピーします。 BLOB を別の層にコピーするときは、その BLOB とそのすべてのデータをターゲット層に移動します。 ソース BLOB は元の層に残り、ターゲット層に新しい BLOB が作成されます。 BLOB をよりホットな層に移動するかアーカイブ層から BLOB をリハイドレートするほとんどのシナリオでは、Copy Blob を呼び出すことをお勧めします。

該当なし

一括階層化

コンテナーまたはフォルダー内の別の層に BLOB を移動するには、BLOB を列挙し、それぞれに対して [BLOB 層の設定] 操作を呼び出します。 次の例は、この操作の実行方法を示しています。

該当なし

多数の BLOB を別の層に移動する場合は、最適なパフォーマンスを得るためにバッチ操作を使用します。 バッチ操作では、1 つの要求で複数の API 呼び出しがサービスに送信されます。 Blob Batch 操作でサポートされるサブ操作には、Delete BlobSet Blob Tier があります。

注意

BLOB Batch 操作の 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」を参照してください。

次のステップ