Amazon CloudFront Memo


Amazon S3にあるファイルのダウンロードを高速化できる、Amazon CloudFront関係のメモ。たまに更新されるかも。
・S3からデータをエッジ(配信)サーバーにキャッシュする。
Amazon CloudFrontは、Amazon S3にあるデータを各国に設置されているエッジサーバーにキャッシュし、そこから配信する、いわゆるCDN。そのため、Amazon S3の契約も必要。Amazon CloudFrontでの配信設定に使用するソフトはS3Foxの最新版など、Amazon CloudFrontに対応したものを用いる。
エッジサーバーに要求されたファイルのキャッシュが無い場合、Amazon S3からダウンロード&キャッシュするため表示に時間が掛かる(キャッシュされた後はキャッシュが消滅しない限りエッジサーバーから直接配信されるので大丈夫)。
リクエストした時に返ってくるヘッダーのX-Cacheが”Hit from cloudfront”であればエッジサーバーにキャッシュがあるためエッジサーバーから直接配信。”Miss from cloudfront”であればキャッシュがないのでAmazon S3からファイルを転送しキャッシュしたことになる。
・DNSでエッジ(配信)サーバーを振り分けている。
どうやら、DNSサーバーのある国によってエッジサーバーを振り分けている模様。
そのため、日本国内でもOpenDNSなど他国のDNSサーバーを指定している場合、そのDNSサーバーのある国(地域)のエッジサーバーに接続されるので注意(なのでプロバイダのDNSに戻したのは秘密)。
tracerouteすれば分かるかも。
・国内サーバーの配信料金は消費税入り
Account ActivityのAmazon CloudFront(→Japan)の項目を見ていただければ分かると思うが、
$0.221 per GB – first 10 TB / month data transfer out (includes consumption tax)
そう、includes consumption tax。訳すと消費税込。
どうやら日本国内サーバーの配信料金はさらに消費税が付加されているようだ。
・独自ドメインから配信
CloudFront配信設定時に、CNAME欄にcdn.example.comなどのように、割り当てたいドメイン名を指定する(設定後でも可能)。カンマ区切りで複数指定も可能(例:cdn.example.com,static.example.net,files.example.org)。
設定後、割り当てられた”~.cloudfront.net”をCNAMEでドメインのDNSに設定すればOK。
実際、独自ドメインでCloudFrontを利用している(cf.pspelp.comから呼び出されているものはすべてCloudFrontでの配信)。
