前回、概要について書きましたので、今回は実際に設定してみようと思います。
まず、どういう配信をしたいのか、要件を決めましょう。
- 個人でも利用できるCDNを利用する
- 日本国内にサーバーがあること
- 配信形態 MP4ファイルをプログレッシブで配信する
- セキュリティはとりあえず考えない、流すだけ
CDNベンダーは、いろいろありますが、個人で利用できる所は多くないようです。探してみてよさげだった所は、イギリスのCDNベンダー
CDN77.com でした。ここは、クレジットカード一つで個人でも利用でき、固定費なしの完全な従量課金です。つまり配信した流量だけ課金されます。
また14日間のお試し期間もあり、日本国内にもサーバがあるため要件を満たしています。ただし日本語の案内はないので、トラブルなど起きた時は、英語でやり取りすることになります。
CDN77.com
次に、MP4ファイルを格納するオリジンサーバー(配信元サーバー)を決めます。やりかたは2つあり、
- CDNベンダー(CDN77.com)が用意するストレージを利用
- 自前のサーバーを利用
ここでは、話を単純にするために、CDN77.com が用意するストレージを利用します。ストレージがあるロケーションは、2ヶ所あるようで、欧州と米国から選ぶことができます。また、ストレージ容量は、50Gまで無料のようです。
ここでは、米国を選択しました、ストレージへの接続は、FTPでファイルをアップロードします。
次にCDNの設定を行います。
SSLは使わないので、Disabledで、ストレージの種類は、CDN77のCDN Storageを使います。そしてディレクトリ名が、my_storage。
重要なのが、CNAMEの設定です。CNAMEは、ドメインの別名の設定で、CDN77が用意するドメインアドレスに対して、自分の手持ちのドメインを割り当てます。
mycdn.example.info IN CNAME 123123123.r.cdn77.net
例えば、今回の設置用に、CDN77が、123123123.r.cdn77.net というアドレスを発行したとすれば、それに対して、自分が取得したドメインで、mycdn.example.info を割り当てることができます。そうすることで、分かりやすいアドレスで接続することができます。
※example.info は説明のためのダミーアドレスです。
そして、DNSサーバーに対して、上記のようなCNAMEを割り当てます。割り当て直後はTTLの値を小さくしてすぐに設定を反映させます。そして、あとで3600にします。ここではcloudnのDNSを利用しています。
これで設定は完了です。実際にアクセスできるか確かめてみましょう。
MP4ファイルなので、ブラウザのchromeではブラウザ内で、そのまま動画が再生されますが、ここでは、あえてIEを使います。アドレスバーにアップした動画のURLを入力して実行すると、Windows Media Playerが立ち上がり再生されます。
一回目の再生では、CDNの効果はでてきません、次のアクセスあたりからキャッシュ効果がでてきます。
その確認として、IEを起動したときに、F12キーを押して、「開発者ツール」を立ち上げます。そして、「ネットワーク」タブから「キャプチャの開始」を実行します。そして、MP4の動画にアクセスして再生させます。
キャプチャにより、URLにMP4のアクセスがでてくると思います。そのURLをダブルクリックします。
そうすると、
X-Edge-Locatioin の値が
Tokyo,JP で日本国内から配信されていることが分かります。
そして、X-Cache が
HIT していることは、キャッシュサーバーから配信されていることを意味します。
※ ちなみに、サーバーに、nginx 使っていることもわかりますね。
まだキャッシュされずに配信されるときは、X-Cacheの値は、MISSになります。近場のロケーションから配信されることは変わらないようです。
CDN77 の管理サイトでは、CDNのリソース別(ドメイン別)にトラフィックの従量や金額がレポートされます。どこのデータセンターから配信されたかもわかるので、結構便利だと思います。
今回は、シンプルなCDNの配信の仕方について説明をいたしました。CDNは、オリジンサーバーから、エッジサーバーにファイルをキャッシュして配信を行いますが、オリジンにファイルをアップしただけでは、エッジサーバーに対してデータは、コピーはされません。
エッジサーバーに対してアクセスが発生した段階で、キャッシュとしてコピーされます。これは、アクセスのないロケーションにファイルをコピーしてもサーバーリソースが無駄になるからでしょう。
次回は、CDNで、ワンタイムURLを実現するSecure Tokenについて説明したいと思います。