はじめに
クラウド事業部の太田です。
本記事では、Azure BLOBに格納された画像ファイルをAzure CDN経由で取得/表示する環境/構築手順について記載します。
構成
Azure CDNを使用し Azure BLOBに格納された画像をWebサーバを経由せずに表示します。
想定される使い方としての1例となりますが、オンプレミス環境でstorageをWebサーバなど経由で表示する構成(下記図before)から、
Azure BLOBに画像を格納、Azure CDN経由で表示する構成(下記図after)に変更が可能です。
before
after
手順
- Azure BLOB作成
- CDN/Endpoint作成
- 接続
Azure BLOB作成
AzureCLIからコマンドを実行して作成します。
RESOURCE_GROUP=r_ota LOCATION=japaneast STORAGE_ACCOUNT_NAME="storage$RANDOM" CDN_PROFILE_NAME=rota-cdn2 az storage account create \ --name $STORAGE_ACCOUNT_NAME \ --resource-group $RESOURCE_GROUP \ --location $LOCATION \ --sku Standard_LRS \ --kind StorageV2
storage20760 というストレージ アカウントができました。
container という名前のコンテナを作成し、testimage.png というテスト画像ファイルを配置します。
今回は アクセスレベルを BLOB(BLOB 専用の匿名読み取りアクセス に設定します。
CDN/Endpoint作成
CDNを作成します。
今回は Azure CDN Premium from Edgio で作成します。
基本 の設定を入力します。
今回はCDN作成と同時にCDNエンドポイントも作成します。
配信元は、先ほど作成した storage20760 を指定します。
接続
エンドポイントの概要から、エンドポイントのホスト名を確認します。
今回は https://rota-cdn2.azureedge.net です。
アクセスは、[エンドポイントのホスト名]+[配信元のコンテナ名]+[ファイルパス]となります。
今回は container という名前のコンテナを作成し、testimage.png というテスト画像ファイルを配置しているため
https://rota-cdn2.azureedge.net/container/testimage.png となります。
タイトル通り「Azure BLOBの画像をAzure CDN経由で表示する」ことができました!
まとめ
今回は、タイトル通り「Azure BLOB の画像をAzure CDN経由で表示する」をご紹介しました。
- メリット
- Azure BLOB はマネージドサービスのためOSのアップデートなど不要(管理コストが低い)
- Azure BLOB 容量は5 PiBと大容量
※既定のストレージ アカウントの最大容量 5 PiB
https://learn.microsoft.com/ja-jp/azure/storage/common/scalability-targets-standard-account より
- デメリット
- セキュリティ 設定(アクセス制限や認証する仕組みなどを設計/実装)を誤ると大変危険です
- 学習コスト 移行元環境をCDNを使用したアーキテクチャに変更する必要があります
おわりに
CDNは配信技術的にスタンダードになりつつある技術です。
CDNを使用した構成をご検討/調査されてはいかがでしょうか。