元RX-7乗りの適当な日々 このページをアンテナに追加 RSSフィード Twitter

RX-7(FD3S)WRX STI関連のキーワードで検索されて来られた方へ。
右サイドのカテゴリ『』をクリックすると関連する項目だけが表示されます。
日々の写真は『Flickr』で公開しています。

2008/11/18

by Tati@

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


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

Amazon CloudFront | Content Delivery Network (CDN) for Video Streaming | AWS

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


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

Amazon CloudFront | Content Delivery Network (CDN) for Video Streaming | AWS

試してみた!

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

  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の詳細な使用方法を以下のエントリに記載しています。

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


参考




まとめ

はてなユーザーのみコメントできます。はてなへログインもしくは新規登録をおこなってください。


オススメ (一部は、最近読んでいる本とも言う)
Chef実践入門 ~コードによるインフラ構成の自動化 (WEB+DB PRESS plus) クラウド Amazon EC2/S3のすべて~実践者から学ぶ設計/構築/運用ノウハウ~ [Web開発者のための]大規模サービス技術入門 ―データ構造、メモリ、OS、DB、サーバ/インフラ (WEB+DB PRESS plusシリーズ) エキスパートのためのMySQL[運用+管理]トラブルシューティングガイド [24時間365日] サーバ/インフラを支える技術 ~スケーラビリティ、ハイパフォーマンス、省力運用 Linux-DB システム構築/運用入門 (DB Magazine SELECTION) キャパシティプランニング ― リソースを最大限に活かすサイト分析・予測・配置 スケーラブルWebサイト 実践ハイパフォーマンスMySQL 第3版 ウェブオペレーション ―サイト運用管理の実践テクニック (THEORY/IN/PRACTICE) SQLアンチパターン インターネットのカタチ―もろさが織り成す粘り強い世界― ハイパフォーマンス ブラウザネットワーキング ―ネットワークアプリケーションのためのパフォーマンス最適化 Linuxの教科書―ホントに読んでほしいroot入門講座 (IDGムックシリーズ)