Web Storageパターン
可用性の高いインターネットストレージの活用
目次[非表示] |
解決したい課題
動画や高画質の画像、Zipファイルなどの容量の大きいファイルを1台のWebサーバーから配信する場合、ネットワーク負荷が問題となる。 そのような場合、ネットワーク負荷を下げるため、複数台のWebサーバーを並べて負荷分散する場合は、大容量のファイルを複数サーバーに配置することになり、 コスト面が問題となる。
クラウドでの解決/パターンの説明
大容量のファイルをインターネットストレージへ配置し、そこから直接ファイルを配信することで、Webサーバーのネットワーク負荷とディスク容量の問題を解決する。 インターネットストレージに保存したオブジェクトは、公開設定にすることでユーザーに直接アクセスさせることができる。 これを利用してインターネットストレージから配信するように、Webサーバーのネットワーク負荷を下げることができるほか、 配信ファイルを同期するために仮想サーバー間でデータをコピーし合う必要もなくなる。
実装
配信したいコンテンツをAzureStorageに配置し、利用者が直接AzureStorageからダウンロードできるようにする。
- インターネットストレージのAzureStorage上に「バケット」を作成し、公開する静的なコンテンツ(画像/動画/圧縮ファイルなど)をアップロードする。
- そのコンテンツに対して、ユーザーがアクセスできるよう公開設定を行う。公開設定を行なうと、各コンテンツ毎のURLが発行される。
- 発行されたURLをユーザーに提供、もしくはWebページ上にリンクを作成する。
構造
利点
- AzureStorageを使えば、ネットワーク負荷やデータ容量を気にする必要がなくなる。
- AzureStorageは3カ所以上のデータセンターでバックアップを行っているため、非常に耐久性が高い。
- 各コンテンツ毎のURLが発行されるため、ファイルをAzureStorageに置くだけでファイル共有など広範囲な目的で活用することができる。
注意点
AzureStorageで配信するコンテンツには独自のDNS名をつける必要があるため、メインサイトのDNS名をそのまま使うことはできない。 例えばメインサイトが「www.my-site.org」であれば、AzureStorage上のコンテンツは「data.my-site.org」など異なるDNS名とする必要がある。 このため、既に作成済みのHTMLファイルのリンク先を変更しなければならない可能性がある。 ただしこの場合、URL_Rewritingパターンを使用し、Webサーバーのモジュールで一括書き換えを行うことで対応できる場合もある。
その他
- Direct Hosting パターンを参照。
関連ブログ