Edited at

Azure Content Delivery Network

More than 1 year has passed since last update.

Microsoft Azure Content Delivery Networkを使ったコンテンツ配布方法を調べてみた。


コンテンツデリバリネットワーク(Content Delivery Network, CDN)


CDNとは


  • Webコンテンツをインターネット経由で配信するために最適化されたネットワークのこと。

  • 画像や動画などの静的コンテンツを、Webコンテンツが管理されているサーバーとは、別のサーバーにキャッシュし、代わりに配信することで、負荷が分散され、Webサイトの表示速度の向上を図る仕組み。


主な商用CDN


Azure の Content Delivery Network

Azure CDN の概要 | Microsoft Azure


Azure Content Delivery Network (CDN) では、戦略的に配置された場所に静的 Web コンテンツをキャッシュし、ユーザーへのコンテンツ配信に最大スループットを使用できます。CDN では、世界各地の物理ノードにコンテンツをキャッシュすることによって、高帯域幅コンテンツを配信するためのグローバル ソリューションを開発者に提供します。

CDN を使用して Web サイト資産をキャッシュすると、次のような利点があります。


  • エンド ユーザーのパフォーマンスとユーザー エクスペリエンスの向上。コンテンツの読み込みに複数のラウンドトリップか必要なアプリケーションを使用する場合は特にそうです。

  • 製品発表イベントの開始時のような、瞬間的高負荷を処理しやすくする大型のスケーリング。

  • ユーザー要求を分散させ、コンテンツをエッジ サーバーから配信することによる、配信元へのトラフィックの削減。



ストレージ

CDNでキャッシュする元となるコンテンツを収容するオリジンサーバーが必要です。Azureには静的コンテンツを収容すのに最適な Azure Storage があります。

Storage の概要 | Microsoft Azure


Azure Storage とは

クラウド コンピューティングは、スケーラブルで、耐久性と高可用性に富んだストレージを必要とするアプリケーションに適した新しいシナリオを実現します。それこそがまさに、Microsoft が Azure Storage を開発した理由です。Azure Storage は、開発者が新しいシナリオをサポートするための大規模なアプリケーションの構築に使用できるだけでなく、Azure Virtual Machines の堅牢性を裏付けるストレージ基盤となります。

Azure Storage サービスの概要

Azure Storage では、4 つのサービスが提供されます。Blob Storage、Table Storage、Queue Storage、および File Storage です。


  • Blob Storage は、非構造化オブジェクト データを格納します。ドキュメント、メディア ファイル、アプリケーション インストーラーなど、任意の種類のテキスト データやバイナリ データを BLOB として保存できます。Blob Storage は、オブジェクト ストレージとも呼ばれます。



ストレージの作成

今回は、Blob Strage (オブジェクトストレージ)を使用し、メディアコンテンツを収容してみます。

1. Azure ポータル で、ストレージ->ストレージアカウントを作成

ストレージ_-_Microsoft_Azure.png

2. [名前]を入力し、[リソース グループ]等を選択し、[作成]をクリック

ストレージ_アカウントの作成_-_Microsoft_Azure.png

3. 作成されストレージアカウントでBlob サービスをクリック

samplecontents2_-_Microsoft_Azure.png

4. Blob サービスの[+コンテナー]をクリックし、新しいコンテナーに[名前]を入力し、[作成]をクリック

新しいコンテナー_-_Microsoft_Azure.png

5. 新しいコンテナーが作成される

BLOB_サービス_-_Microsoft_Azure.png


ストレージにコンテンツのアップロード

Microsoft Azure Storage Explorerを使用します。



  1. Microsoft Azure Storage Explorerをダウンロードとインストール

  2. ツールを起動したら、画面の左上のコンセントアイコンをクリック
    Microsoft_Azure_Storage_Explorer.png


  3. Connect to Azure Storage のダイアログで ストレージ アカウントのアクセス キーを入力し、[次へ] をクリック

    Microsoft_Azure_Storage_Explorer_1.png

    ※ストレージ アカウントのアクセス キー

    アクセス_キー_-_Microsoft_Azure.png



  4. [Account Name] ストレージ アカウント名を入力し、[Next] をクリック

    Microsoft_Azure_Storage_Explorer_2.png


  5. ツリーにストレージ アカウントが追加される

    [Upload]ボタンでファイルをアップロード

    Microsoft_Azure_Storage_Explorer_3.png


  6. Upload filesのダイアログでファイルを指定して、[Upload]をクリック

    Microsoft_Azure_Storage_Explorer_4.png


  7. Azure ポータルのストレージ アカウントで、ファイルがアップロードされていることが確認できる

    contents_-_Microsoft_Azure.png


  8. コンテナの[アクセス ポリシー]をクリックし、[コンテナーの編集]で[アクセスの種類]を[BLOB]に変更

    CDNや外部からのパブリックアクセスを許可する

    コンテナーの編集_-_Microsoft_Azure_2.png



CDN

Blob Strage (オブジェクトストレージ)に収容したメディアコンテンツをCDNで配信してみます。


  1. Azure ポータル で、Web + モバイル -> CDNを作成
    Web___モバイル_-_Microsoft_Azure.png

  2. CDN のプロファイルで、[名前]の入力、価格レベルの選択を行い、[作成]をクリック
    価格レベルを選択する_-_Microsoft_Azure.png

  3. 作成されたCDNで、エンドポイントを作成する。[+エンドポイント]をクリック
    samplecdn2_-_Microsoft_Azure.png

  4. エンドポイントの追加で、[名前]の入力、[配信元の種類]で[ストレージ]を選択、[配信元のホスト名]にストレージアカウントを選択し、[追加]をクリック
    エンドポイントの追加_-_Microsoft_Azure.png


  5. エンドポイントが追加される

    samplecdn2_-_Microsoft_Azure_2.png

    エンドポイントの名前で、ドメイン <endpointname>.azureedge.net でキャッシュされたリソースにアクセスできるようになる。




プライベートコンテンツを配信

Webコンテンツは、アプリケーションで認証されたユーザや一定期間に限りアクセス可能とする制御として、署名付きURL (signed URL) / One-Time URL を利用することがよくあります。

Azure Storageでは、Shared Access Signature (SAS)を使って制限付きのURLを発行することが可能です。

アカウントの_Shared_Access_Signature__SAS__-_Microsoft_Azure.png

制限する項目を設定し、[SASの生成]をクリックすると、URLが作成されます。

.NETではプログラムでSASの生成が可能なようです。

参考)Shared Access Signatures (SAS) の使用 | Microsoft Azure

Microsoft Azure Content Delivery Network (CDN)からのアクセス時も、SASのクエリーパラーメータを付与すると参照が可能です。