ばかおもちゃ本店:Youtube twitter:@sashimizakana Amazon.co.jpアソシエイト

2013年10月12日土曜日

AWS S3で安くて頑丈なWebサーバーを立てる/艦くりのバックボーン

「火事は起きたが無事けが人も無かった記念のぜかましさん」

AWS S3ってなんなん

艦隊くりっかーの配布はAmazon Web Service(AWS)のS3というサービスを使っている。
ちょうど最近AWSを色々使い始めており、また無料レンサバの類ではアクセス数なんかに関して割と制限が厳しかったりするので、S3を使ってみることにした。
S3はAWSの提供するデータストレージ(ネット上にあるファイル置き場だと思えばよいです)で、そこに置いたファイルをそのままWeb上に公開することができる。つまりファイルを置くだけでホームページみたいなものがつくれるよ、という感じ。

無料ではなく従量課金されるサービスなのだけど、たぶん小規模なサイトならかなり安いレンサバ系と勝負出来るくらいの値段におさまることと、そういうレンサバより遥かに高い負荷にも耐えることと、たぶん一般人が気軽に利用できるサービスの中で最強クラスの堅牢性(99.999999999%)がある。ファイルは自動的に複数のデータセンターに複製される。簡単に言うとデータセンターひとつに爆弾が落ちてもファイルはなくならない。
S3はおいているデータサイズと、総転送量で支払う金額が決まる。公式サイトで月額10円で運用できると書いているとおり、データ容量が1GB以内、かつデータ転送量も一ヶ月で1GB(登録から一年以内は15GB)におさまるなら、10円で運用できる。

どれくらいかかるん

で、実際いくらかかるのってのを具体的に書くと、艦くりの公開初日から現在までの13日間でおよそ$2.6ほどかかっている。ドル100円で計算すると260円くらい。もっとも無料転送量枠が月にまたがって30GB分消費されているので、一年間の無料枠期間を超えると、転送量が更に600円ほど増えるはず。

それが高いか安いかは感覚次第だが、公開翌日のピーク時は6000PV/時くらいあったが少なくとも遅延等はほぼ発生しなかった。実際の所はよく知らないがレンサバではアナリティクスのリアルタイム閲覧者数が200くらいになったら自動的に絞られたみたいな話もあるので(自分が見てた限りでは艦くりでは500を越えていた)、高負荷がかかる可能性があるなら充分選択肢に入れても良いのでは無いかと思う。
運悪く誰も見てくれなくても10円しかかからない。

お金がかかる要素はかなり色々あるので全部はよく分からないが、基本的に値段の9割くらいは上記で書いた通り、データ容量と転送についてで、更に言うと、
  • 置いているデータの容量(月1GBあたり10円:低冗長化の場合8円)
  • データを要求されるときのリクエスト(10000リクエストあたり0.4円)
  • データの転送量(1GBあたり20円)
というかんじ。艦くりの場合、この中でリクエストが意外と大きい。
置いているデータはもちろん1GB以下なので月10円、データ転送量は無料枠を越えたのは5GB(他の用途にも使ってるので概算)程度で100円くらい、リクエストが残りの150円くらい。

安くならんの

jQueryとかライブラリとかはGoogleのホスティングライブラリから呼び出せばその分の転送量は要らない。あとcssとかjsとかhtmlはgzipしたりminifyしたりすれば転送量もリクエストも減らせるのでgrunt.jsとか使えば良いと思う。今回は正直そんなにウケると思ってなかったので全くやってなかった。

まとめ

ファイルはそう簡単には無くならないし、使われなきゃ10円だし、かなり高負荷にも耐えるしおすすめ。
ちなみにRubyだのPHPだののサーバーサイドプログラムを動かしたりすることは出来ない。その場合AWSだとEC2とかを使うことになるけどこれは仮想サーバー丸ごとのサービスだしそこそこ値段もするので、おとなしくレンサバを借りたりした方が安く付くかもしれない。