1. ホーム
  2. Blog
  3. AmazonS3上のファイルを国内でも高速配信可能なAmazon CloudFrontリリース

AmazonS3上のファイルを国内でも高速配信可能なAmazon CloudFrontリリース

フナミ タカオ

フナミ タカオ

コラム

%E3%83%94%E3%82%AF%E3%83%81%E3%83%A3%2014.png

フナミタカオです。
画像ファイルや音楽、動画ファイルの配信サーバーとして、AmazonS3を使ってみたいと思っても、これまでは、そのネットワークの遅さがネックになっていました。
11月18日に公開されたAmazon CloudFrontで、遂にその遅さの問題が解決しました!
22セント/GBで高速配信することができるようになったのです。

Amazon CloudFrontとは

アマゾンが提供するストレージサービスのAmazonS3におかれたコンテンツを高速に配信する仕組みです。コンテンツデリバリネットワーク(Contents Delivery Network, CDN)と呼ばれているサービスとなります。 CDNは、ユーザーの近くにたくさんのキャッシュサーバーを配置することで、ファイル配信を高速化します。 IT用語辞典によると、
音楽や動画といったデジタルコンテンツは、従来インターネット上で流通してきたHTMLファイルなどと比べてサイズが大きく、ネットワーク越しで配信を行なうとネットワークに多大な負荷がかかってしまう。  このとき、ネットワーク上のさまざまな場所にデジタルコンテンツの配布ポイントを用意し、ユーザのネットワーク位置に応じた最適な配布ポイントを指示することで、大容量のコンテンツをスムーズにユーザに配信できるようになる。 CDNとは 【コンテンツデリバリネットワーク】 (Contents Delivery Network) - 意味・解説 : IT用語辞典
とのことです。 国内では ・ブロードメディア®CDNJストリーム 等がCDNを提供しています。(各サイトに、詳細な仕組みの説明があるので、みてください。キャッシュだけじゃなくて、ストリーミングとかもありますね)

ところで、S3のメリットは、使った分だけ支払う従量制であるとうことと、容量はいくらでもスケールアップできるという点だと思います。
そして、それらのメリットを低コストで提供されているのがすばらしいところです。写真共有サービスなど日々ファイル容量が増加してゆくサービスの運用者にとっては、ディスク増設のタイミングをいつにしようかとか、帯域がくいつぶされて、ネットワークの増設の心配とかしないといけないのですが、そういう心配から解放されるのがすごくうれしい。

$0.150 per GB – first 50 TB / month of storage used $0.170 per GB – first 10 TB / month data transfer out Amazon Simple Storage Service (Amazon S3)

しかし、これらのメリットはあるものの、S3がアメリカにあるということで、日本国内からS3上のファイルを呼び出すとき、非常に遅いことが課題でした。
そのため、S3の利用を決断できなかったのですが、今回のCloudFrontはS3のCDNとうことで、S3上のファイルをたぶん日本国内にあるであろう(たぶん)Edgeサーバーがキャッシュし、国内でも高速の配信が可能になりました。


速さを測ってみた。


気になるのは、速さですが、同じファイルをS3経由と、CloudFront経由、国内のレンタルサーバーのWebArena SuitePro2,CPI,メディアテクノロジーラボのサーバーとも比較してみました。

計測方法
対象の各サーバーに同一のファイル(約1MBの音楽ファイル)を配置し
Apache Bench を使用して、合計50アクセス、多重度5 のリクエストを行った。

ab -n 50 -c 5 http://server/path
サーバー転送速度[Kbytes/sec]
s3.amazonaws.com506.57
cloudfront.net 3766.32
CPI VPS VS01 1983.34
WebARENA SuitePRO2 3079.32
MTL 2925.88
Google App Engine(おまけ) 1056.86
以上のように、S3とCloudFrontでは、7倍の差があり、断然高速です。 また、国内のレンタルサーバーで高速との評判のWebArena SuitePro2よりも高速で、十分実用的であることがわかりました。国内のCDNとの比較もしたかったのですが、試せる環境がありませんでした。(検証情報御待ちしています、それと、今頃気づいたのですが、mtlのサーバーって、実はそんなに速くないのですねえ)

ピクチャ 15

S3が遅すぎたからかもしれませんが、この改善度は感激です。
静的ファイルだけではありますが、十分実用的だと感じています。


CloudFrontの使い方


使い方ですが、これまで、S3を使っていたのであれば、非常に簡単。
CloudFront経由で公開したいバケット(S3上のデリレクトリ)を用意する(既存でOK)
このバケットにたいしてDistributionを生成する。
もとのバケットはOrigin Serverと呼ばれる。
Origin Serverはs3経由で配信、DistributionはCloudFront経由で配信ということになる
と書くと結構ややこしいけど、URLで比べると以下のようになる。

Origin Server  :   http://s3.amazonaws.com/star/IMG_4702_2.jpg
Distribution   :   http://d2baq9usm1wv9l.cloudfront.net/IMG_4702_2.jpg
同じファイルを、S3のオリジナル方式でも、CloudFront方式のどちらでも取得できるということですね。

S3 Organizerで設定してみる

また、これらの設定はS3 Organizerを使うのが便利です。Firefoxのアドオン配布サイト:Amazon S3 Firefox Organizer(S3Fox) 0.4.1では v0.4.1が配布されていますが、CloudFrontを設定するにはv0.4.5が必要です。

AmazonWebService自体のサインアップは別途完了しているとして話を進めます。

0. v0.4.5のインストール
S3Fox Organizer for Amazon (S3Fox)
http://www.rjonna.com/ext/s3fox/S3FoxOrganizer_v0.4.5.xpi
↑こちらのリンクからダウンロード可能

1.S3 Organizerの設定
FireFoxのツールメニューからS3 Organizerを起動後、左上のManage Accountをクリック
Account Name,Access Key,Secret Keyを入力。
Account Name,Access Key,Secret Keyは
http://aws.amazon.com/account/
のページの左下にある、Access Identifiers のリンクをクリックして開いたページに表示される。
Account Nameは画面右上のAccount Number のこと。

ここまで設定できたら、S3の一覧が表示されるはず。

2.公開したいバケットを選び(無ければ作る)右クリック。
Manage Distributions

3.ダイアログが開いたらCreate Distributionボタンを押す。
ピクチャ 18
Domain NameがCloudFron経由のURL。
ボタンを押してすぐは[In Progress]になっているが、しばらくすると

fin
Deploydになる。
これで、アクセスが可能になる。

なお、公開したいファイルはEdit ACLで、readの権限をつけておくと、だれでも、閲覧が可能になる。
ピクチャ 20


11/19追記
Amazonの従量課金制CDNサービス「Amazon CloudFront」を使う方法 - RX-7乗りの適当な日々
↑こちらのページでとてもわかりやすくまとめられています。
11/19追記ここまで

手動で管理できる範囲であれば、このS3 OrganizerかRightScaleが便利です。

RightScale :Create a CloudFront Distribution


課金方式


課金はS3とCloudFrontのあわせ技です。

Paying-1

1.ストレージはS3の費用を支払います


Storage
$0.150 per GB – first 50 TB / month of storage used
$0.140 per GB – next 50 TB / month of storage used
$0.130 per GB – next 400 TB /month of storage used
$0.120 per GB – storage used / month over 500 TB


2.エッジサーバーとS3の間
エッジサーバーはS3をオリジナルとしているので、1回目はS3からエッジサーバーへの転送料がかかります。また、キャッシュが破棄されたときもその次のリクエスト時に転送料が発生します
ちなみに、このエッジサーバーとS3の転送は、かなり遅いです。頻繁に更新されるファイルだと、この転送のためにユーザーが待たされる可能性があります。


Data Transfer
$0.100 per GB – all data transfer in
$0.170 per GB – first 10 TB / month data transfer out
$0.130 per GB – next 40 TB / month data transfer out
$0.110 per GB – next 100 TB / month data transfer out
$0.100 per GB – data transfer out / month over 150 TB
Requests
$0.01 per 1,000 PUT, COPY, POST, or LIST requests
$0.01 per 10,000 GET and all other requests*
* No charge for delete requests


3.エッジサーバーからユーザーまでの配信はCloudFrontの利用料がかかります。


日本エッッジサーバーから

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 request


1Gの配信コストが、30円くらいになるのであればたぶん、CDNとして見ても相当おやすい相場のようです。CDNの相場というのも、見積もりベースのものがおおいのか、なかなか、シンプルな料金比較表が無いのですが、以前いくつかCDNを検討したときのレンジは50円〜200円/GBくらいという話を聞いたことがあります。
実は、転送料無制限のレンタルサーバーというのもあって、前述のWebArena SuitePro2,CPIもそうです。
WebArena SuitePro2であれば8,820円/月ですが、1Tをこのサーバーで配信すると10円以下の配信コストにすることも可能です。(実は、一時的にそういう使い方をしたことがありましたが、特に問題なく配信できていました)

転送能力からみたコスト
そこは、信頼性とのトレードオフだと思いますが、性能としては
1,000 megabits per second and peak request rates of 1,000 requests per second.
と1Gbpsの帯域を許可してくれています。 この帯域はさすがにWebArena SuitePro2も許してくれないでしょう。(あくまで予想ですが、ピーク10Mbpsくらいまでなら、大丈夫な気がします)

転送量も、デフォルトでは上記の制限はあるものの、要望を出せば2営業日で増量可能ということです。
Request to Increase Amazon CloudFront Distribution Limits

Amazon CloudFront はCDNの性能をきちんと備えた上でこの料金なので、やっぱり、画期的な料金だと思います。


なにに使うのか?


・大勢がアクセスする、静的なファイル
 javascript、ロゴ画像、素材系

・Flashやクライアントアプリの配布
 同じファイルを大量に配信しますね

・画像共有サービス
 あまり閲覧されない画像だと、キャッシュされない可能性もありますが、よく見られる画像ほど高速表示されるというのは理にかなっていると思います。
 また、いくらでもスケールできるのがこのてのサービスの運営者にとっては嬉しいです。

・広告のバナー
 アドネットワークの画像バナーやFlashバナーの配信

個人的な体験ですが、コマーシャライザーの公開時には、想定以上の閲覧があり、帯域の確保が大変でした。コマーシャライザーのCMは画像と、音楽ファイル、FlashのSWFから構成されているのですが、こういうサービスには向いていると思います。ま、それは、CloudFront出なくてもCDN向きということでもありますね。


導入までの懸案と期待


コスト的にも十分おやすいですし、いくらでもスケール可能ということで、すぐにでも使ってみたいですが、懸案事項としては
「パブリックベータということで、もしかしたら止まるかもしれない」
という点ででしょうか。なかなか、企業ユースだとここが問題になるかもしれませんね。
EC2,S3はベータがとれてSLAが導入されましたが、CloudFrontもベータがとれると、企業内での利用も全く問題なくなるとおもいます。

近ごろAmazonは、これまで使用されたいた「ベータ」ラベルを取り去り、製品としてのEC2サービスの可用性(リンク)を発表した。その主な変更点は、SLAの導入である。サービスの可用性をつねに99.95%保証するものである。
AmazonのEC2、ベータ版から商用サービスへ


また、期待としては、EC2の日本との間のネットワーク速度も改善されることです。
体験値としては、最近では、EC2のコンソールが、固まるようなことはなくなりましたが、EC2からの配信はS3と同等、すなわち、国内のそこそこのサーバーの5〜6倍くらいの転送時間がかかります。
この速度さえ改善されれば、EC2をアプリケーションサーバーにして、Simple DBとS3をストレージとして使えれば、スケールが非常に簡単なインフラとして、積極的に使いたいなあと思っています。

もちろん、メディアテクノロジーラボは実験検証期間ですので、多少遅くても実用的であればOKなので、動的ページはEC2、静的ファイルはS3+ CloudFrontの構成で検証してみようと思っています。


まだまだ気になること、試したいことがあります


CloudFrontについては、いろいろ、試してみようとおもっています。
・独自ドメインを使うこともできる
ファイルはどのようにエッジサーバーに配信されるか?
・キャッシュの寿命は?(Amazon CloudFront Developer Guide に詳細がありそうです)

とかに関しても、別途エントリーできればと思います。

追記 2009/01/13
Amazon CloudFrontの使用上の注意とTipsまとめ」に気になってたことまとめました。
あわせてご覧ください


関連情報

Amazon、コンテンツ配信サービス、CloudFrontをローンチ
Amazonの従量課金制CDNサービス「Amazon CloudFront」を使う方法 - RX-7乗りの適当な日々
Amazonが従量課金制のCDNサービス「Amazon CloudFront」を開始・・・したので試してみた - RX-7乗りの適当な日々
アマゾン・ドットコム、新コンテンツ配信サービス「CloudFront」を提供開始
アマゾンが従量課金CDNサービスを開始
S3Fox Organizer for Amazon (S3Fox)
Amazon S3を使いこなしてみよう~Amazon EC2/S3環境構築のすべて~
ETech07 - AmazonEC2を無料で試せる RightScale
rootが使えて&転送量無制限で1890円から使えるVPS

トップへ戻る