今回は、Cloudnを利用してオブジェクトストレージに置いた動画を、独自ドメイン・CDN経由で配信する方法を試してみましょう。
オブジェクトストレージは、単体でも簡易的な配信機能を持っていますが、高負荷なアクセスになるとスループットは低下します。独自ドメインでアクセスすることで、初めはCDNを経由せずに直接配信をしながら、負荷が高まったときURLはそのままで、CDN経由に、こっそり?切り替えることができます。
それでは試してみましょう。
オブジェクトストレージの設定
まず1つのWebサイトのかたまりに相当するバケットを作成します。相当するとは、バケット名は、実質URLのホスト名になるためです。
その時のバケット名は、完全修飾のドメイン名(FQDN)を付けます。ホスト名に相当するところに、FQDNを設定するところに違和感がありますが、そういう仕様のようです。下図の例では、obj.bizsrv.jp で、アクセスする意味になります。バケットを作成したら、動画ファイルをアップします。
次にアップした動画を選択して、動画に割り当てる権限を変更します。「個別アクセス権設定」の箇所で、Publicの項目欄の「ACP読み出し可能」にチェックをいれます。「読み出し可能」は、チェックを入れても入れなくても構いませんが、チェックを入れるとブラウザから直接オブジェクトストレージにアクセスできます。つまり、CDNを使わない場合は、チェックは必要です。
登録の際、オブジェクトストレージへのURLを知る必要があるため、「パブリックURLアクセス」からURLを確認します。アドレスを見るだけなので確認したら無効状態で構いません。
obj.bizsrv.jp.str.cloudn-service.com であることを確認してメモしておきます。
CDNの設定
つぎにCDNの管理画面に入り設定を行います。
オリジンサーバーホスト名に、先ほどメモした、オブジェクトストレージのURLを「オリジンサーバーホスト名」に、そして独自ドメインのFQDNを「公開URL」に設定します。そうすると、wpcなんちゃらとcname(別名)のアドレスが表示されます。アクセス経由は、下図のような感じになります。
DNSの設定
最後にDNSの設定を行います。公開URLに対して、CNAMEを設定します。CNAMEの値は、CDNで出力されたアドレスになります。TTLは、公開URLが有効になった段階で、3600に書き換えます。
確認してみる
これで設定は完了です。正しく公開URLでアクセスできるか確認してみましょう。ただしCDNのキャッシュが有効に機能するまで1時間くらいかかるようなので、すぐにアクセスしてもオリジンの方に繋がりっぱなしになるので注意してください。
CDNから配信されているか確認をするため、「応答ヘッダー」の内容を確認します。IEでは「F12 開発者ツール」を有効にして「ネットワーク」タブから「キャプチャ開始」ボタンを押して、ネットワークのキャプチャーを行います。一度目のアクセスでは、オブジェクトストレージからの配信になりますが、何度かアクセスすると、X-Cache にHITという項目が表示されます。これが表示されたらCDNから配信されています。ちなみにサポートに聞いたところ、キャッシュの有効期限は、7日間です。
オリジンサーバー(オブジェクトストレージ)から配信されている状態
CDNから配信されている状態
このように、ApacheなどのWebサーバーでなくても、オブジェクトストレージをオリジンサーバーとして、独自ドメインでCDNからの配信ができることを確認しました。ワンタイムURLなどのアクセス制限は付けることはできませんが、構成がシンプルなため一つのやり方としては有効な方法だと思います。
(c) copyright 2008, Blender Foundation / www.bigbuckbunny.org