株式会社マイニングブラウニーは2006年に設立された会社で、主にインターネットの情報を集めてくるロボット(クローラ)と、その集めてきた情報をデー タマイニングし、有益なマーケティングデータを提供するサービス「MitsuBachi」を展開しており、国内の大手企業に利用されています。

現在提供中のサービスにて、主にEC2、RDS、SQS、SimpleDB、S3を使っています。サーバ構成図は下記のとおりとなります。 お客さまに提供するインターフェイスとクローリングと解析処理にはEC2で行い、スケーリングの仕組みにはSQSを使っております。 AutoScaling などもあったのですが、クローラという特性上、CPU使用率は常に100%が理想で、タスクの量という観点でスケーリングを行うよ うにするためにSQSを使っています。 キューにはタスクが入っているのですが、具体的な内容はS3に入れ、キューにはそこにアクセスする為のURLをいれています。 SQSへのキューの追加はCrawling Clusterからの追加と、ユーザインターフェイス(WEBサーバ)からの追加もしています。 Crawling Clusterが解析した結果は、RDSに保存され、またWEBサーバからお客さまに提供されます。

miningbrownie_architecture

User Interface:

Amazon EC2

CentOS 5.4 + Apache 2.2 + mod_php

Instance : m1.small

Crawling Cluster:

Amazon EC2

CentOS 5.4 + Apache CouchDB + polipo

Instance : m1.small

Analise Cluster:

Amazon EC2

CentOS 5.4

Instance : m1.small

DB Server:

Amazon RDS

Instances:m1.small MultiAZ

社内にサーバを置き、回線も複数引っ張り、データベース、WEB、クローラがそれぞれ複数台づつという構成でサービスを提供していました。完全にスケール する事はなく、手でこのサイトはこのサーバからといったような分散を行っていました。 現在は全てをAWS 上で稼動させています。

AWS を最初に採用したのは、現在のクローラではなく、E-Commerceサイトでした。 EC2が発表されてすぐの導入だったのですがEIP・EBSがなかったりだったため、当時は毎日S3にAMIのバックアップをしていました。しかし、その まま使っているうちにEIPやEBSが登場し、どんどん便利になっていき、いつのまにかサーバを買うということを忘れていました。 その後、クローラーのサービスを新たに立ち上げる際には既にサーバを買うという発想はなく、最初からAWS を使う前提での設計をしていました。 SQSもあり、S3もある、さらにはRDSもある。こんなリッチなインフラを初期投資なしで、運用にかかる手間も少なく使えるのなら、サーバを買うという 発想がなくなるのは当然です。

AWS を使う前提での設計だったので、推測になってしまうのですが、まずは初期投資の部分に関して、サーバを購入した場合、十数台のサーバを用意する事に なり、かつネットワークの帯域もかなり使用する。 初期費用だけで見ても、1,000,000円以上の削減になり、月々の運用の費用も、弊社のサービスを展開する上で、レンタルサーバ(共有、専用どちら も)はお断りされる事が多くハウジングになってしまうのですが、そこでかかる費用と比べても毎月半分程度に抑えることが出来ています。

AWS のメリットはサーバのスケールや、初期費用の削減が良く言われますが、全くその通りです。 ですが、AWS 導入のメリットはそこだけでは有りません。様々なクラウドサービスが台頭してきている中、なぜAWS を使うのかというと、それはEC2以外 のサービスの充実が挙げられます。 SQS、S3、RDS、SimpleDBなどのサービスの存在こそが、オンプレミスよりも、他社クラウドよりも優れた点です。 東京リージョンでの利用が可能となった今、他社クラウドを選択する理由は思いつきません。

サーバのプラットフォームだけではなく、SQS、SimpleDB、S3といった何かに特化したサービスがあるため、全てのインフラを自前で構築する必要 もなければ、保守する必要もないところが最も気に入っています。 SimpleDBが特に気に入っているのですが、CassandraやTokyoCabinetのように自分でインストールする事も必要なければ、サーバ のメンテナンスも必要ありません。 また、いつ使われるかわからない、かつ、常に動いているわけではないような場合EC2では動いてない間も待っているためにコストをかけなくてはいけないの ですが、実際に使った容量だけで課金されるSimpleDBは非常に安く上がります。 実際に現在動いているものでは、もしEC2(もしくはRDS)で動かしていたら、月に5,000円(2011.3.7現在)位掛かってしまうものも SimpleDBにする事で、この半年を見ても最高で$1.44/月に抑えることが出来ました。それ以外の月は0円です。 簡単に言うと半年で$1.44しか掛かっていません。それでも24時間つながる状態で待機されています。

今後はデータマイニングにはEMRを使います。ユーザインターフェイスにはELB、AutoScalingを使い冗長性と、負荷分散をしていくと計画しています。

Simple Logging Serviceが欲しいです。[r]syslog[-ng]のバックエンドで動く事もでき、コストも1,000,000メッセージあたり$0.1位でS3 にログを生成可能なサービスが欲しいです。 Syslogの為にIOを使うのは勿体無く、複数サーバのログを一元管理できそのログをすぐに、EMRで解析できる。そのようなニーズを満たせるログサーバがあったらいいと思います。

さらに詳しくは、http://mitsubachi.ne.jp