こんにちは、エンジニアの何某です。
クラウドサービスは便利ですが、いざ使ってみると色々制約があり、思いのほか苦戦したことがありました。 今回は開発でよく使用するAzure Blob Storageの制約事項について少し紹介できればと思います。
※以下は、執筆時点での仕様になります。仕様は今後変わる可能性があるので、その点ご承知おきください。
1.1つのストレージアカウントで保存できる最大データサイズ
Azure Blob Storage に保存できる最大容量は 、1つのストレージアカウントで最大 5PiB(ペタバイト) です。 もしこの容量で足りない場合は、ストレージアカウントを追加で作成する必要があります。 また、ストレージアカウントも無限に作成できるわけではなく、既定では250個までとなっており、クォータ(制限)を解除することによって最大500個まで作成できます。
参考サイト
- Azure サブスクリプションの制限とクォータ - Azure Resource Manager | Microsoft Learn https://learn.microsoft.com/ja-jp/azure/azure-resource-manager/management/azure-subscription-service-limits#azure-blob-storage-limits
2.zipファイルはストレージ上で解凍できない
Azure Blob Storage上にあるzipファイルを直接ストレージ上で解凍することはできません。 そのため、ストリームを使って解凍するか、ローカルディスクなどの作業領域で解凍する必要があります。 ただし、以下の注意点があります。
- ストリームで解凍する場合 zipファイルのファイルサイズが多く、物理メモリが少ないと、OutOfMemoryExceptionが発生します。 1ファイルあたりの容量を少なくする、物理メモリを増やすなどの対策が必要です。
- ローカルディスクなどの作業領域で解凍する場合 必ずしもクラウド上のローカルディスクで解凍処理を行う必要はありませんが、Azure上のTEMPディレクトリを使って解凍をする場合、AzureリソースによってTEMP領域に制限があります。 ◆ Azure Automationの場合 $env:TEMPの上限は1GBです。
◆ Azure Functionsの場合 SKUに依存しますが、たとえば「Basic B1」ではTEMP領域が11GBとなります。
参考サイト
- サンドボックスでの一時ストレージ https://learn.microsoft.com/ja-jp/azure/automation/automation-runbook-execution#temporary-storage-in-a-sandbox
- Understanding the Azure App Service file system | Temporary files https://github.com/projectkudu/kudu/wiki/Understanding-the-Azure-App-Service-file-system#temporary-files
3.生成したSASトークンを再度確認できない
Azure Blob StorageにはSAS(Shared Access Signatures)という機能があり、使用できるデータの種類(Blob、ファイル、キュー、テーブル)や操作(読み取り、書き込み、削除、更新など)、IP制限、有効期限などの制限を設けることで、Azure Storage リソースへの制限付きのアクセス権を付与することができます。
「SASと接続文字列を生成する」ボタンを押すとSASトークンが発行されますが、発行したSASトークンが分からなくなってしまった場合は、SASトークンの再発行を行う必要があるので注意が必要です。
尚、Microsoftの開発部門宛てに発行したSASトークンを確認する機能をつけてほしいという要望がユーザーから寄せられており、今後そういった機能が実装されるかもしれません。
参考サイト
- Shared Access Signatures (SAS) でデータの制限付きアクセスを付与する - Azure Storage | Microsoft Learn https://learn.microsoft.com/ja-jp/azure/storage/common/storage-sas-overview
- SAS トークンを生成する - Azure Data Explorer & Real-Time Analytics | Microsoft Learn https://learn.microsoft.com/ja-jp/azure/data-explorer/kusto/api/connection-strings/generate-sas-token
まとめ
Azure Blob Storageを利用する方の参考になれば幸いです。 開発案件のご相談は以下お問い合わせフォームよりご連絡ください。