Cloud CrowdはRuby製のオープンソース・ソフトウェア。大量のデータを処理しようと思った時にはMapReduceのような仕組みに注目が集まる。テキストのみならず、大量のOCR処理が必要になったり画像をサムネイル化したいといった時にはどのようなシステムを構築するのだが良いだろうか。

ピクチャ 11.png

Rubyを使って分散処理

 

一時的に無数のシステムを立ち上げ平行で処理を走らせる時に注目したいのがAmazon EC2だ。以前、ニューヨークタイムズでは1,100万枚を越える画像をPDFに変換するという処理をAmazon EC2のインスタンスを100立ち上げて行ったという事例がある。どうようのシステムを構築するのがCloud Crowdだ。

Cloud Crowdも利用するのはAmazon EC2だ。アクションはRubyで定義するようになっており、テキスト処理のみならず画像変換などの柔軟なシステム処理が可能になっている。特徴的なのはCloud Crowdが管理インタフェースとしてローカルでサーバを立ち上げるということだ。そしてキューの処理やインスタンスの状況についてグラフ化し、刻々とステータスを更新する。

ピクチャ 12.png

コマンドヘルプ

 

立ち上げるインスタンスの数などは設定ファイルで管理できる。処理データの授受はAmazon S3を使って行うようになっている。Amazon Web ServiceでもHadoopベースのAmazon Elastic MapReduceというサービスがあるが、Cloud Crowdの方がより柔軟に処理が指定できそうだ。

Amazon EC2は常時立ち上げておく場合はもちろん、このような一時的な処理を行う場としても最適だ。そしてその管理インタフェースとしてCloud Crowdもまた便利なソフトウェアだ。

 

documentcloud’s cloud-crowd at master - GitHub

 http://github.com/documentcloud/cloud-crowd