Heroku向けオートスケーリング「Hero Scale」登場
先日、salesforce.comによる買収が発表となったRuby on RailsホスティングサービスのHeroku向けの「Hero Scale」(恐らくヒーロー・スケールと読むのでしょう)というオートスケーリングのサービスが始まったようです。私は日本のHerokuユーザー会のおぐらじゅんやさんのメールで知りました。
一瞬、Scala(スカラ)かと空目しましたが違います、スケールです。そういえば、Python版のHerokuが登場したり、node.js系のホスティングは雨後の筍のように増えているのに、Scalaってありましたっけ? まあ、JVM語族はGoogle App Engineが使えるので、それでいいということかもしれません。GAEの次期バージョンアップではScalaやClojureが一斉に正式サポートになるという噂がありますね。すでにGAE上でClojureを動かしている人はたくさんいて、例えばBigTable向けにDSLをClojureで書いてWebアプリを作ったという話なんかは気になるところです。今はどの言語もクラウドにどう乗るかという競争が一斉に起こっていて、Ruby on RailsではEngine YardやHerokuが注目ですね。JVM系はVMwareとかGoogle、そしてそれ以外はAWSに乗せる形で出てきている、というところでしょうか。
さて、そのHerokuですが、もともとWebサーバとしてリクエストをさばく「Dyno」と、クエリを処理する「Worker」を増やしたり減らしたりすることはできました。3つ方法があって、1つはWebページのスライダーバーでやる方法、もう1つはコマンドラインツール、そして当然のようにAPIも用意されています。スライダーバーで、ぐりっと増やせば、それでスケールするという手軽さです(私は1 Dyno/1 Workerしか使ったことがありませんが)。
Dyno/Workerを増減するAPIがあるので、自分でオートスケーリング機能を作ることは可能でしょうけど、適当にやってくれるなら、それはそのほうが楽でいいよねということだと思います。
PaaS上では分業がどんどん進みますね。HerokuはPostgreSQLを使っていますが、PostgreSQLの細かな知識がなくても、スライダーバーでスケールできてしまうという意味で、DBが得意なエンジニアを仲間に入れるより、もはやネット上でAPIベースで協業しようぜ、というのが今の動きなのだと思います。最近、自分でやってみてイヤというほど分かりましたが、MySQL1つ取ってみても、MyISAMとInnoDBはどう違うのか、InnoDBのバックアップって「とめてー、吐いてー、また吸う」みたいにライト・ロックをかける単純な方式じゃだめなんですね。「え、バイナリ向けバックアップソリューションは有料2000ドル? じゃdumpでやるのかマジ勘弁……。え、漢ならLVM?」というように、そういうのを調べて設定するだけで2時間でも3時間でも時間がかかってしまいます。「Webアプリ作って公開したいだけなんだけどな……」という人にとって、DBなんて14万8000光年彼方のORM星雲まで抽象化してくれたほうが嬉しいのです。Herokuえらい! git push heroku rocks!
あ、言い過ぎました。抽象化には漏れが常にあるので、分かっておくべきことは、ちゃんと分かってないとダメですよね、ええ、ええ。
さて、脇道にそれました。Hero Scaleは、Herokuと同じで、一番下の料金コースだとタダ! イケてますねぇ。60分間隔で監視して最大3Dynoまで増減してくれます。Webアクセスは一時的に多くなるかもしれないけど、クエリは重たくないという静的な性質が高いWebサイトなら、これでいけちゃうのかもしれません。以下、料金表です。今はキャンペーン期間で上位コースがすべて20ドルのようですね。
ところで、Herokuといい、その周辺の奴らといい、Webページデザインはよくできてるけど、登場キャラやサービスのネーミングが子どもっぽいですね……。Super Awesomeってなんだよって気もします。まあ、だからと言って、エンタープライジーなネーミングなら信用できるかっていうと、もうそんな時代じゃないと思いますけどね。
それにしても料金体系がうまいですよね。だって、Dyno数の上限なんて恣意的で、サービスの開発難易度や負荷とか関係ないですよね、本来。API叩くときの数字が違うだけで……。でも、そこがビジネスマインドです。取れるところから取る。まったく正しいと思います。
それにしてもすごいですね、Heroku自体がAmazon EC2/S3を使ったクラウド上のPaaSというエコシステムの広がりを作っていると思っていたのですが、いまやHerokuの周辺に非常に多くのサービスが集まり、生まれつつあります。KVSやNoSQL系のストレージ実装も、もはやサービスとしてくっつけて利用する時代がそこまで来てるのかもしれません。ここら辺は、TIS/SonicGardenでyouRoomを開発・運用されている松村章弘さんの講演「Rails Add-onsで楽々開発 - youRoomを題材に」(動画、スライド)が参考になるかもしれません。
cronやcaptcha、全文検索エンジンみたいなOSレベルやCライブラリでやっていたことも、今やWebサービスでありますよね。そうなるとサービス間の連携というかネットワーク帯域、遅延が重要になってきて、ますますAWSの力が強まっていきそうです。12月にもAmazonクラウドが日本でスタートするという話でしたが、はっきり言って、こういうのが全部一斉に東京に来たら大激震ですよね。AWSがすごいのは、EC2とか仮想インスタンスのことではなく、こういうエコシステムのことですからね。
そういえば、salesforce.comのHeroku買収に対して、DHH(Railsの生みの親です、念のため)はちょっと冷めていて、様子見だねということを言っていますね。