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

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

2008/11/19

Amazonの従量課金制CDNサービス「Amazon CloudFront」を使う方法


Amazon CloudFront」はAmazonが提供してくれるCDNサービスの1つで、コンテンツを世界各国に分散して配置させることで、ユーザからのアクセスを集中させること無く分散させることと、ユーザは最もネットワーク距離の近いサーバからコンテンツをダウンロードすることが出来るため、ユーザにとっても非常に快適でかつ効率的なアクセスの仕組みを作ることが出来ます。

Amazon CloudFrontでは、世界14ヶ所にエッジサーバがあり、それぞれの場所でコンテンツをキャッシュして配信することが可能です。


で、そんな話を昨日のエントリ「Amazonが従量課金制のCDNサービス「Amazon CloudFront」を開始・・・したので試してみた」にて、"Amazon CloudFront"の概要や実際の速度なんかを紹介したのですが、具体的な使用方法を端折ったので、今日はここに使い方を書き残しておきたいと思います。


尚、速さについては、私が昨日試した限りでは、4〜6MB/sのスピードでダウンロードすることが出来ました。国内からの配信ということもあって、レスポンス遅延も気になりません。

詳細は、昨日のエントリ(Amazonが従量課金制のCDNサービス「Amazon CloudFront」を開始・・・したので試してみた)をご覧ください。


まずは、Amazon S3にデータを配置させることが前提

この部分については、過去の私のエントリや、今日CodeZineで公開された連載記事が参考になるかと思います。


上記のエントリを参考に、まずはAmazon S3でコンテンツをアップロードして公開してみましょう。


次に、Amazon CloudFrontにサインアップする

まず、以下リンク先のAmazon Web Servicesの公式サイトにある「Amazon CloudFront」のページへ行きます。


http://farm4.static.flickr.com/3283/3044095932_3fe4954287.jpg

で、"Sign Up For Amazon CloudFront"ボタンをクリックします。

その後、認証画面が出てきた際は、お持ちのAmazon Web Servicesのアカウントでログインしてください。


http://farm4.static.flickr.com/3037/3044095970_6b19e452c4.jpg

次に、Sign Upの確認画面が出てきますので、料金体系などをよく確認の上、一番上にある"Complete Sign Up"をクリックします。


http://farm4.static.flickr.com/3006/3043259141_a917e51f5a.jpg

↑の画面が出てきたら、サインアップは完了です。


Amazon CloudFrontに対応したS3Foxを用意する

多分、操作が最も簡単であろう、Firefoxのアドオンである「S3Fox」を使用します。

昨日のエントリの紹介と重複しますが、以下リンク先より"S3Fox"の"v0.4.5"以降をFirefoxからクリックすることでインストールが行われます。


コンテンツをAmazon CloudFrontを使って配信する

Amazon CloudFrontを使って配信したいバケットを右クリックします。


http://farm4.static.flickr.com/3278/3044096050_8bbdd6e230_o.png

"Manage Distributions"をクリックしましょう。


http://farm4.static.flickr.com/3177/3044096086_5ff2377660_o.png

"Create Distribution"をクリックします。


http://farm4.static.flickr.com/3294/3044096142_f1e292a7c8_o.png

すると、選択したAmazon S3のバケットのURLの別名のような形で、Amazon CloudFront経由でアクセス可能となるURLが付与されます。上記で言う「xxxxxxx.cloudfront.net」がそれです。

このURLに対してDNSでCNAMEを設定すれば、好きなドメイン名を使ってコンテンツ配信することが可能となりますね。

↑画面のStatusが"Deployed"に変わり次第、利用可能状態となります。


Let's Enjoy

あとは、Amazon S3を使うのと同じ要領で、Amazon CloudFront経由のURL(xxxxxxx.cloudfront.net)でコンテンツにアクセスすれば、昨日のエントリ(Amazonが従量課金制のCDNサービス「Amazon CloudFront」を開始・・・したので試してみた)で紹介したとおり、高速なコンテンツ配信が可能となります。


なかなか高価なCDNサービスを使えなかったベンチャー企業でも、サービスのスタートアップとして、まずこのAmazon CloudFrontを使うという選択肢は十分有るのではないでしょうか。


料金表(2008/11)

Pricing

Pay only for what you use. There is no minimum fee. Estimate your monthly bill using the AWS Simple Monthly Calculator.

United States Edge Locations

Data Transfer

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

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

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

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

Requests

$0.010 per 10,000 GET requests

European Edge Locations

Data Transfer

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

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

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

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

Requests

$0.012 per 10,000 GET requests

Hong Kong Edge Locations

Data Transfer

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

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

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

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

Requests

$0.012 per 10,000 GET requests

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)



まとめ

FJSKFJSK 2008/12/04 14:16 rx7さま

初めまして、こんにちは。
とても興味深い内容を拝見させて頂きました。
映像ストリーミングサイトを構築する案件があり、いくつか候補を挙げていまして
予算が限られているので、Amazon EC2+S3で運営するのも視野に入っているのですが
各所でネットワークスピードの問題がレポートされていたため躊躇していました。
しかしこのCloudFrontの記事を拝見しまして、これならいけるのでは!と思ったのですが
いくつか疑問がありまして、もし知ってらっしゃったらご教授戴けますと幸いです。

まず、記事上ではS3のデータをCloudFrontで各Regionのエッジサーバにデリバリーするということですが、EC2にメインコンテンツを配置している場合、こちらのデータは反映されないということでしょうか?ということは速度は変わらないということでしょうか?あと、Panda等を使わずに、Flash Media Streaming Serverを使って、動画配信を行いたいと思っているのですが、そもそもEC2の環境で使えるのかどうか検索しても全然実績がないのか、情報がないので知ってらっしゃったら教えて下さいませ。(Linux版とWindows版があります)
最後に世界中でサービスを考えた場合、各RegionCloudを契約すれば、同じデータが各エッジサーバに反映されるのでしょうか?それとも一対一でひとつのエッジサーバしか選べないのでしょうか?

いろいろとお聞きしますが、ご教授の程、宜しくお願いいたします。

rx7rx7 2008/12/05 00:35 コメントありがとうございます。

まず、Amazon CloudFrontでの配信対象となるものは、Amazon S3に設置しているコンテンツが対象となります。
そのため、Amazon EC2に設置しているコンテンツが対象とはなりません。
ですので、Amazon CloudFrontで配信を行いたい場合は、まずEC2に配置しているデータをS3へ同期させることが必要となります。

http://d.hatena.ne.jp/rx7/20080528/p1
方法は上記リンク先のまとめエントリから飛んだ先にあるs3fsやs3syncを使った手順がよろしいかと思います。
もちろん、S3に直接ご設置いただいてもOKです。

あと、実際に試したわけではないですが、Amazon CloudFrontでは、CDNサービスとなりますので、コンテンツは世界の様々な地域のエッジサーバへ配置されるというかキャッシュされることになるかと思います。
各地域から配信可能ですが、地域によって転送量による課金のレートが異なります。

FJSKFJSK 2008/12/05 15:34 rx7さま

早速のご返答、有難うございました!

なるほどですね、当初の考えでは、S3は動画ストレージとEC2のイメージバックアップ等ぐらいに考えておりましたが、そうなりますと、EC2で動的コンテンツを生成している場合でも、生成元の各データをS3に入れておき、CloudFrontで分散させておけば、各Regionのエッジサーバから読み込まれる為、速度面でも優位になるということですよね?特に私の求めている、映像を配信するとなれば、さらに恩恵にあやかれるということで、これは再候補にあげないといけないですね。
後は、このサービスでFlash Media Streaming Serverを利用出来るかのテストをしてみたいですが、利用にはクレジットカードが必要ということですから、会社がテスト代金を支払ってくれるだろうかが気になりますが。(笑)

この度は再検討する後押しを戴きまして、さらに勉強にもなりまして本当に有難うございました。お忙しいかと存じますが、また有益な情報をお教え下さいませ。

p.s. 要望ですが、お時間を縫ってAdobeのサイトにFlash Media Streaming Serverの無償デベロッパ版があるので、記事にして戴けますと心強いです。

rx7rx7 2008/12/07 12:11 そうです。動的コンテンツの生成やアプリケーション処理は、リソースコンピューティングを司るEC2に任せて、データそのものはAmazon S3へ配置、そしてコンテンツの配信はAmazon CloudFrontを任せることで、キレイに役割分担しつつ、高性能を発揮できる基盤がAmazonに出来つつあります。

どこまで使えるかは求められる要件とサービスレベル次第ではありますが、候補に入れていただいても面白いかと思います!

yossiyossi 2008/12/15 17:50 CloudFrontについて詳細な記事を書いていただいてありがとうございます!静的なswfのキャンペーンサイトを一時的にオープンさせようと考えていましたので、実用的に使えそうなことがわかってとても有益でした。

一点質問なのですが、このCDNのサーバーにアクセスが集中し、一台のサーバーで耐え切れなくなった場合はどのように対処すればいいのでしょうか?EC2のように自分でインスタンスを追加していくのか、あるいはAmazonで自動的に拡張してくれたり(^^;)するのでしょうか?教えていただけるとありがたいです!

rx7rx7 2008/12/17 00:54 こんにちは。コメントありがとうございます!
DNSでIPアドレスを引いてもらえればわかるのですが、どうもDNSラウンドロビンになっているようで、バックエンドには数台のコンテンツ配信サーバの存在が伺えます。負荷分散はされているようですね。

http://www.atmarkit.co.jp/news/200811/18/amazon.html
の記載を引用させていただくと、、、
「1000Mbps、1000リクエスト/秒のピーク負荷に耐えるという。これ以上の負荷になる場合、別途Webサイトを通じてリクエストを送れる。リクエストには2営業日以内に対応するとしている。」
だそうですよ〜。

yossiyossi 2008/12/18 15:53 いやー、すばらしいです!ありがとうございます。
この手軽さで1000Mbps、1000リクエスト/秒のピーク負荷って革命ですね。今までサーバー管理していたのがなんだったのかと思わせるほどです。丁寧な解説をありがとうございました。

rx7rx7 2008/12/20 01:12 ほんとに革命だと思います。一種のサービスイノベーションですよね。
数年後、ガラリと変わるか、それほど変わらないか、の今ちょうど境目にいるような気がしてならないのです。

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


オススメ (一部は、最近読んでいる本とも言う)
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ムックシリーズ)