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 があります。
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 ポータル で、ストレージ->ストレージアカウントを作成
2. [名前]を入力し、[リソース グループ]等を選択し、[作成]をクリック
3. 作成されストレージアカウントでBlob サービスをクリック
4. Blob サービスの[+コンテナー]をクリックし、新しいコンテナーに[名前]を入力し、[作成]をクリック
5. 新しいコンテナーが作成される
ストレージにコンテンツのアップロード
Microsoft Azure Storage Explorerを使用します。
-
Microsoft Azure Storage Explorerをダウンロードとインストール
-
Connect to Azure Storage のダイアログで ストレージ アカウントのアクセス キーを入力し、[次へ] をクリック
-
コンテナの[アクセス ポリシー]をクリックし、[コンテナーの編集]で[アクセスの種類]を[BLOB]に変更
CDNや外部からのパブリックアクセスを許可する
CDN
Blob Strage (オブジェクトストレージ)に収容したメディアコンテンツをCDNで配信してみます。
-
エンドポイントの追加で、[名前]の入力、[配信元の種類]で[ストレージ]を選択、[配信元のホスト名]にストレージアカウントを選択し、[追加]をクリック
-
エンドポイントの名前で、ドメイン
<endpointname>.azureedge.net
でキャッシュされたリソースにアクセスできるようになる。
プライベートコンテンツを配信
Webコンテンツは、アプリケーションで認証されたユーザや一定期間に限りアクセス可能とする制御として、署名付きURL (signed URL) / One-Time URL を利用することがよくあります。
Azure Storageでは、Shared Access Signature (SAS)を使って制限付きのURLを発行することが可能です。
制限する項目を設定し、[SASの生成]をクリックすると、URLが作成されます。
.NETではプログラムでSASの生成が可能なようです。
参考)Shared Access Signatures (SAS) の使用 | Microsoft Azure
Microsoft Azure Content Delivery Network (CDN)からのアクセス時も、SASのクエリーパラーメータを付与すると参照が可能です。