Amazonが従量課金制のCDNサービス「Amazon CloudFront」を開始・・・したので試してみた

by Tati@


Amazonが、とうとうCDNサービス(コンテンツ配信)を開始しました。その名も「Amazon CloudFront

CDNとは何?については以下のURLが参考になります。


今まで、Amazon EC2Amazon S3でコンテンツ配信を行おうとすると、サーバがアメリカやヨーロッパにあるため、どうしても日本からはネットワーク的に不利だったわけですが、このCDNサービス「Amazon CloudFront」を使うと、コンテンツ配信の速度面や負荷分散などについては解消できそうです。


コンテンツが設置されるエッジサーバは以下の世界14ヶ所となり、日本も含まれていますよ!

The Amazon CloudFront Network

To deliver content to end users with lower latency, Amazon CloudFront uses a network of edge locations world-wide. Amazon CloudFront uses the following edge locations:

United States

  • Ashburn, VA
  • Dallas/Fort Worth, TX
  • Los Angeles, CA
  • Miami, FL
  • Newark, NJ
  • Palo Alto, CA
  • Seattle, WA
  • St. Louis, MO

Europe

  • Amsterdam
  • Dublin
  • Frankfurt
  • London

Asia

  • Hong Kong
  • Tokyo

Content Delivery Network (CDN) | Low Latency, High Transfer Speeds, Video Streaming | Amazon CloudFront


気になるお値段は、「Content Delivery Network (CDN) | Low Latency, High Transfer Speeds, Video Streaming | Amazon CloudFront」に詳しく記載されていますが、日本のエッジサーバからの配信については、以下となります。

Japan Edge Locations

Data Transfer


$0.220 per GB – first 10 TB / month data transfer out

$0.168 per GB – next 40 TB / month data transfer out

$0.147 per GB – next 100 TB / month data transfer out

$0.137 per GB – data transfer out / month over 150 TB

Requests

$0.013 per 10,000 GET requests

Content Delivery Network (CDN) | Low Latency, High Transfer Speeds, Video Streaming | Amazon CloudFront

試してみた!

細かい使い方は、今度時間のあるときにじっくり紹介をしますが、簡単には以下の手順となります。

  1. Sign up for CloudFront.
  2. Put your most frequently accessed static content into an Amazon S3 bucket and mark it as publicly readable.
  3. Create a new CloudFront Distribution using a single REST-style POST call. Capture the domain name returned by the call.
  4. Generate fresh URLs for your content using the domain name from step 3 and hand them out. By using our CNAME support you can even make the content appear as if it is coming from your own domain. You can associate up to 10 CNAMEs with each distribution.

「Amazon CloudFront」にサインアップした後、私はS3Fox(GUIなので簡単!)を使って、バケットにCDN用の新しいドメインネームの割当をAPIを通じて行いました。

Amazon S3を使ったことがある方なら、結構直感的に進めていけるかと思います。


あ、S3FoxのCloudFront対応のNewバージョンは、以下リンク先からダウンロードね。


で、実際に3.2MBのファイルをAmazon S3にアップロードして実験してみました。

まずは、Amazon S3からダウンロード

アップロードした3.2MBのファイルをS3からダウンロードしてみます。

$ wget http://xxx.s3.amazonaws.com/videodata.avi
--01:12:00--  http://xxx.s3.amazonaws.com/videodata.avi
xxx.s3.amazonaws.com をDNSに問いあわせています... 207.171.185.196
xxx.s3.amazonaws.com|207.171.185.196|:80 に接続しています... 接続しました。
HTTP による接続要求を送信しました、応答を待っています... 200 OK
長さ: 3396906 (3.2M) [video/avi]
Saving to: `videodata.avi'

100%[===============================================================================>] 3,396,906    289K/s   in 14s

01:12:14 (237 KB/s) - `videodata.avi' を保存しました [3396906/3396906]

この通り、237KB/s で、まぁいつも通りです。

次に、CloudFront経由でダウンロード

次に、CloudFront用に割り当てられた新しいURLを通して同じファイルをダウンロードしてみます。

$ wget http://xxxxxxx.cloudfront.net/videodata.avi
--01:14:22--  http://xxxxxxx.cloudfront.net/videodata.avi
xxxxxxx.cloudfront.net をDNSに問いあわせています... 失敗しました: 名前またはサービスが不明です.

あ、すぐは無理ですね。DNSが有効になっていないので、しばらく時間をおいて・・・

$ wget http://xxxxxxx.cloudfront.net/videodata.avi
--01:24:35--  http://xxxxxxx.cloudfront.net/videodata.avi
xxxxxxx.cloudfront.net をDNSに問いあわせています... 216.137.53.140, 216.137.53.9, 216.137.53.176, ...
xxxxxxx.cloudfront.net|216.137.53.140|:80 に接続しています... 接続しました。
HTTP による接続要求を送信しました、応答を待っています... 200 OK
長さ: 3396906 (3.2M) [video/avi]
Saving to: `videodata.avi'

100%[===============================================================================>] 3,396,906    200K/s   in 20s

01:24:55 (167 KB/s) - `videodata.avi' を保存しました [3396906/3396906]

167KB/s と、ビックリするくらい速くありません。
あ、ひょっとしてここでエッジサーバにキャッシュされた???

というわけで、もう一回CloudFront経由でダウンロード

1回目のタイミングで日本のエッジサーバに配置されたかもしれないので、もう1回確認すると、、、

# wget http://xxxxxxx.cloudfront.net/videodata.avi
--01:26:56--  http://xxxxxxx.cloudfront.net/videodata.avi
xxxxxxx.cloudfront.net をDNSに問いあわせています... 216.137.53.175, 216.137.53.16, 216.137.53.181, ...
xxxxxxx.cloudfront.net|216.137.53.175|:80 に接続しています... 接続しました。
HTTP による接続要求を送信しました、応答を待っています... 200 OK
長さ: 3396906 (3.2M) [video/avi]
Saving to: `videodata.avi'

100%[===============================================================================>] 3,396,906   6.05M/s   in 0.5s

01:26:57 (6.05 MB/s) - `videodata.avi' を保存しました [3396906/3396906]

おおおっっ!! 6.05MB/s とちょっぱや、です!

その後、何度かトライしてみましたが、やはり 4〜6MB/s 程度のスピードが出ていました。

アジアでは香港と東京の2個所にエッジサーバを配備し、1000Mbps、1000リクエスト/秒のピーク負荷に耐えるという。これ以上の負荷になる場合、別途Webサイトを通じてリクエストを送れる。リクエストには2営業日以内に対応するとしている。

アマゾンが従量課金CDNサービスを開始 − @IT

↑の話は本物そうですね!


ちなみに、最後に元々のAmazon S3のURLからダウンロードしてみると、やはり300KB/s程度でした・・・。

また、今度詳しい使用方法を紹介したいと思います。

追記:詳しい使い方を別エントリに書きました!

Amazon CloudFrontの詳細な使用方法を以下のエントリに記載しています。

よろしければご参考までにどうぞ〜。