日々のできごとと写真

Amazon CloudFrontを体験してみた


2008-12-15 01:33 | IT, エントリー | コメントをする »

遅くなりましたが、CloudFrontを体験してみました。

実験の前に参考サイト

CloudFrontの設定方法や、ダウンロードのベンチマークなどは以下のサイトを参考にしましょう。(と丸投げ)

実験の方法

今回やりたかったことは、ブラウザーを使って普通にブラウジングをしてみて、体感を測ることです。

  1. HTMLファイル    1
  2. JSファイル    5
  3. CSSファイル    2
  4. 画像ファイル    25

合計33ファイル、163KBのページを表示して、ページがロードされる具合を体感してみました。

EC2単体で体感実験

まずは、全てをEC2のスモールインスタンス上にアップした状態で体感。
Apacheは2.2.9、設定はrpmのデフォルト。KeepAliveはOFF。

EC2スモールインスタンスへアクセス

やはりもっさり感は否めません。(4.6秒)

CloudFrontで体感実験

では1のHTML以外をS3にアップロードして、CloudFront経由で体感してみます。

CloudFront経由で体感

これは明らかに速い(1.16秒)。EC2の場合は「ただいま画像1つ1つをロードしてます」って感じで画像が描画されるまでもたもたしていましたが、CloudFront経由の場合はページのロードと同時に画像も描画されました。

Etagもきっちり返してくれるので2回目以降のアクセスには304が返ってきますし、gzipを利用したhttp圧縮も行われているので、cssやjsなどのテキストファイルは効率よく転送されるはずです。

CloudFrontアクセス時のヘッダ

ただし、最初のアクセス時はキャッシュサーバーにデータが届いていないため、キャッシュする為にS3サーバーからの転送時間が加わるので、もっさり感を感じます。2回目はX-Cacheヘッダーが上画像のように変わります。

まとめ

実に簡単な体感実験ですが、CloudFrontの実力は歴然でした。
イメージサーバなどの用途で静的なファイルを負荷分散をするサーバーを立てるケースを想定すると、アクセス急増時にロードバランサー配下のリアルサーバーを増やしたり、静的なファイルを共有する、もしくは分散する仕掛けを用意したり、トラッフィクに注意したり、メンテナンスと運用にかかる時間と人のリソースは、想像に難しくありません。

上記のような心配が必要なサービスを運用している会社さんの場合は、当然既にakamaiなどのCDNを利用していると思いますが、それでもファイル転送元のリアルサーバーは持っている必要があります。
CloudFrontの場合は、配信元サーバーがS3なので、そこのリソースも気にしなくて済みます。

社内でかかるメンテナンスコスト(ベンダー保守、社内保守・監視、対応)、電気代、帯域代、ラック代、サーバー代など様々なコストを考えると、すべて込み込みで1GB/30円っていうのはかなり魅力的ではないでしょうか。

EC2用にCentOS5.2のAMIを作ってみた


2008-12-01 01:18 | IT, エントリー | 3 コメント »

CloudFrontで生まれ変わるか

EC2は日本からだと相変わらず帯域がもっさりしているんですが、Amazon CloudFrontがリリースされて、利用方法を工夫すれば、まともに使えるのでは?と俄然注目です。
CloudFrontはS3上に配置したファイルを展開するCDNで、しかもキャッシュサーバーが日本国内にもあるので、静的なコンテンツはCloudFrontで配信、動的なコンテンツはEC2で配信と分散すれば体感はだいぶ速くなるんじゃないでしょうか。

Amazon Machine Image(AIM)を作る

その実験に先立って、いざという時に安心して使えるEC2用のイメージを持っておこうと思い、使い慣れているCentOSのオリジナルイメージを作ってみました。
作成したイメージファイルを圧縮・分割してS3上に置いた上で、EC2にAIMとして登録を行うと、いつでもそのイメージファイルからインスタンス(サーバー)が起動できるようになります。
当然S3に保管しておくのに料金がかかりますが、月$0.15/GBなので、圧縮したイメージファイルが一つ500Mくらいですから、毎月$0.05(5円)程度ととても経済的です。
(実際、毎月のクレジットの明細にきっちり$0.05が請求されています。請求の手間の方がかかるような気が)

【参考】
RightScale
がCentOSのイメージを公開しているので、それでも問題ない場合はそれを利用した方が楽です。
ami-1363877a    rightscale_images/CentOS5_2V4_0_2_Beta.manifest.xml

大まかな流れは

  1. 空のimgファイルにyumを使ってOSをインストールし、AMI用に各種設定を行う
  2. S3にアップロードする前にimgファイルを分割してマニフェスト(xmlの設定ファイル)を作る
  3. 分割したimgファイルとマニフェストをS3にアップロードする
  4. アップロードしたimgを自分のAMIとしてEC2に登録する

参考にしたサイト

とてもよくまとまっています。
ここを参考に作業を進めていけば、かなりスムーズにいきます。
なので、ここでは環境の問題などで詰まった部分や補足を説明します。

AMI tools は ruby が必要

EC2用のコマンドツール群はEC2のインスタンスを立ち上げたり、情報を取得したり、操作をしたりするec2-api-toolsと今回利用するAMIを作成したり、アップロードしたりするec2-ami-toolsがあります。
後者はrubyが必須で、前者はJava VMが必須です。

yum で 作ったイメージに CentOS 5 をインストールする

ここでyumのgroupinstallオプションでインストールをするわけですが、最初CentOS4.6上で作業した時にはここで躓きました。yumのバージョンが全然違うので、当たり前っていえば当たり前です。
CentOS5のイメージを作成する際に利用する作業マシンのOSはyum > 3 のものを利用しましょう。
(CentOS4系にyum3系インストールするのは依存関係が半端無く、萎えますのであきらめましょう。)

アップロード

ec2-upload-bundleコマンドでアップロードします。
今回はWindows Vista上のVMWareのゲストOS(CentOS5)で作成、そのままアップロードを行いました。
が、VMWare上ではゲストOSの時刻が狂うという問題がありまして、アップロード中にサーバー(S3)の時刻とクライアントの時刻が狂っているとエラーが発生し、正常にアップロードできません。
最終的には、S3Foxを使って手作業でアップロードして、該当するbucketのACLを修正して対応しました。
ACLの設定は「za-team」ユーザーにRead権限を与えます。

以降はスムーズに行くと思います。

インスタンスを立ち上げた後

無事立ち上がった後、このイメージをベースにするため、自分で利用しやすいように環境を整えます。
いきなりhttpdやpostfixなどミドルウェアを入れにいってもいいのですが、どんなサーバーに利用しても必要となる最低限の環境を整えることが今回の目的なので、
ユーザーの作成や、sysstatのインストール、yumレポジトリの追加を行いました。

ベース環境の設定が終わったら、今度はこのインスタンスをイメージ化するため、インスタンス上にprivatekeyファイルとcertificateファイルをコピーして、
ruby、ec2-ami-toolsのインストールからS3へのアップロード、EC2への登録まで、全く同じ手順で行います。
作業の途中、「ec2-bundle-vol」コマンドがエラーで止まってしまうはずなので、

こちらを参考に、EC2カーネル用モジュールをコピーして、依存を修正します。

これでようやく汎用的なマイイメージが出来上がりです。

今後はこれにhttpdを入れればWebサーバに、PerlやPHPを入れてAPサーバーに、MySQLやPostgreSQLを入れてDBサーバーにと、ベースのインスタンスを拡張していろいろな用途のサーバーを自由に、いつでも用意できるようになります。

次回はこのインスタンスを使って、Webサーバーを立てて、CloudFrontの実用性を検証してみたいと思います。

七人は僕の恋人@本多劇場


2008-11-25 01:22 | テレビ, 日記, 演劇 | 3 コメント »

昨日観に行きました。

ウーマンリブは2回目か3回目かなぁーと感想を書く前に調べてみたら
5回目でビックリした。5回も観てるのか!
っていうか大人計画本公演よりウーマンリブの方が多いのか・・・。

内容はショートストーリーというか長編コントといった感じで、
最初の2本は中学生の悪のりって感じだったし、
全体としてぐっとくるポイントがありませんでした。
後半はだれて長く感じました。
流星の絆のうっぷん晴らしなのかと。
ちょっと残念。

その中でも荒川良々演じる桜庭ジュンはキレてたし、
今回は伊勢さんが印象的で良かった。すごい頑張ってた。

今話題になっているのでメモとして。
ブルース・リーの卓球!
あーかっこいい!!

このケータイがマジで欲しい。

Recordrリリース!


2008-11-21 23:23 | IT, エントリー | コメントをする »

先日開発合宿に参加させていただいた、HeartRailsさんから新サービス「Recordr」がリリースされました。
おめでとうございます!!

Recordr

ブラウザーで録画/録音、そのまま配信できる動画ストリーミングサービスです。

言葉で説明するより、実際に触ってみていただくのが一番いいと思うので、
こちらからトライしてみましょう→録画/録音する

※録音するにはPCにマイク、録画にはカメラ(Webカメラ)が必要です。

利用方法を考えてみた

オークションでの利用

recordrの特徴で、任意のURLに対して動画をコメントとしてつけることができるので、
出品した商品に対して、もっと詳しい情報を!とか、それって本物なんですか?
とかリクエストあった時に素早く対応できます。
↑はチケットです。

Q&Aサイトでの利用

例えばQ&A recorded by sekine

Q&Aサイトで、言葉では伝わりにくいことってありますよね。
「この腕時計のこの部分が硬くて取れないんですけど・・・」(実話)とか
動画も合わせて説明できれば早期解決です。

他にも、小さな会社がPRに利用したり(顔が見えて声が聞こえると信頼感がでます)、
被災した場合に無事な姿を見せたり(災害掲示板)、いろんな使い方ができると思います。

今まで運用まで関わるサービスにしか携わったことがなかったので、
サービスに対して完全に客観的になれず、苦労していますが
今回は本当にちょっとだけお手伝いさせていただいただけなので
愛着と客観性が両方持てて、とても新鮮です。

Recordrをよろしくお願いします。

GREEとpaperboy&co


2008-11-20 01:09 | エントリー | 3 コメント »

上場です。

身近な会社の上場話に、すごいなぁーと感心しました。
個人的にはアンチ上場派ですが、この景気逆噴射の中、上場までこぎつけるのは
相当大変だったことを想像すると、祝福せずにはいられません。

2社とも若い社長、しかも同世代ですから、いろんな意味で刺激を受けるニュースです。
上場後どういう道を歩んでいくのか分かりませんが、
創業者利益で潤ったところで、何か新しいことにチャレンジしてもらいたいです。

なゼアンチなのか

上場したところで、1年後には株価が半分、出来高はぼちぼち、
内部統制や上場維持にかかるコストで利益は薄まり、
本当にやりたいことはコンプライアンスに引っかかり、
内部調整でローンチが遅れ、もたもたしているうちに
かつての自分たちのようなアーリーステージのベンチャーに
先をこされる。
役員が株主のことを考えている間に、
「昔の方がよかった」と言い残し、社員がまた一人去っていく。
しばらくするとサービスが維持できなくなり、
急募をかけるが、求人コストがはね上がるばかりで、
本当にいい人材は入ってこない。
サービスの維持をするため、パートナー会社に協力を求め
なんとか立て直すものの、保守コストが圧迫し、
契約を解除した後に残ったものは、担当者以外にはわからないスパゲッティコード。

まあ、書き始めたら止まらないんですが、
そもそもネットサービスを生業にしている会社と上場というフレームワークが
全くもってマッチしないんですよね。

産業障壁が低くて、サービスが当たらなかったら沢山のお金を利用して、
倍々でリターンが返ってくるような投資対象にもならない世界です。
(それを信じてやるのが投資ですが)

業種や相手が誰なのか、もっと言うと、どこからお金が入るのか、
どのくらい長続きするのか、がはっきりしていないということですね。

ネット広告もゼロ成長に突入しそうですから、
BtoBで確実にニーズを取りにいくか、BtoCならモバイルプラットフォームで課金、
そういうモデルに2極化して行きそうです。