APC 技術ブログ

株式会社エーピーコミュニケーションズの技術ブログです。

株式会社 エーピーコミュニケーションズの技術ブログです。

【Blog Week】Azure BLOBの画像をAzure CDN経由で表示する

はじめに

クラウド事業部の太田です。
本記事では、Azure BLOBに格納された画像ファイルをAzure CDN経由で取得/表示する環境/構築手順について記載します。

構成

Azure CDNを使用し Azure BLOBに格納された画像をWebサーバを経由せずに表示します。

想定される使い方としての1例となりますが、オンプレミス環境でstorageをWebサーバなど経由で表示する構成(下記図before)から、
Azure BLOBに画像を格納、Azure CDN経由で表示する構成(下記図after)に変更が可能です。

before

after

手順

  1. Azure BLOB作成
  2. CDN/Endpoint作成
  3. 接続

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経由で表示する」をご紹介しました。

  • メリット
  • デメリット
    • セキュリティ 設定(アクセス制限や認証する仕組みなどを設計/実装)を誤ると大変危険です
    • 学習コスト 移行元環境をCDNを使用したアーキテクチャに変更する必要があります

おわりに

CDNは配信技術的にスタンダードになりつつある技術です。
CDNを使用した構成をご検討/調査されてはいかがでしょうか。