クラウドのデファクトスタンダードAWSに「Lambda」というサービスが出ています。これはすごいです。何がすごいのかというと、Lambdaは計算機の抽象化の新しい形態と思われるからだ。
Lambdaは何をしてくれるのかというと、データが投げられるイベントを検知して処理をしてくれる。ユーザーはLambda FunctionというNode.js、JavaまたはPythonのコードを事前にアップロードしておく。このコードはイベントを入力値として、それに対する処理が記述されている。Lambdaは
- S3
- Kinesis
- DynamoDB
といったものにデータが投げられるイベントを検知して、Lambda Functionを実行する。
ユーザーが意識するのはデータを処理するコードとその処理をどのデータストアに紐付けるかのみでよい。
イベントを検知することやイベントが増えたらVMインスタンスを増やすといったことをユーザーは考えなくて良い。これを自前で作るのはかなり大変だ。pollingしてイベントを見つける、イベントの処理をキューに追加する、プロセスがジョブとしてキューを捌いていく、ジョブの監視を行うマスターがいる、マスターはキューの長さも監視する、キューが長くなってきたらプロセスを増やす操作がいる、ジョブが終わらなかったら殺して再実行するなりしなければならない……他にも考えなければならないことがありそうで、だいぶ面倒そうだ。
Lambaはこういうことを全く考えなくていい。ユーザーが気にするのはどのデータに何をするかのみでよい。処理を記述したコードだけ用意すればよい。マシンだとかプロセスだとか一切考えなくていい。計算機の存在を今考えうる限りもっとも抽象化した形だろう。裏で何が起こっているのか分からない気持ち悪さはあるが、結果だけ求めるなら非常に効果的な形態だ。
Webサービスを作るなら非常に便利そうだ。例えば、ブログが投稿されたというイベントを検知して、不適切な内容がないかを検閲して怪しげなのを管理者に通知するといったことができる。あるいはコメントが投稿されたらユーザーにメールで知らせるとかも簡単だ。
私はWebサービスの知識はないのですが……イベント駆動でなくても、データを書き込む処理をするときにイベントの処理のリクエストを投げるというやり方もできると思います。ただこうすると、メンテナンスだとか障害とかでリクエストの受付を止めた時どうするの?とか考えないといけない。また、システムの至るところにそういうことを考えたコードが散らばるので、システムがスパゲッティになってしまうのでは?――と、Lambdaを何に使うのかと考えたときに思いました。
なので、Lambaはすごい、めちゃめちゃ使えるじゃないかと関心した。これは普及する。
AWSはEC2しか使ったことがなかったが、いつの間にやらどんどん上位のサービスが追加されている。世の中に置いて行かれている気分だ。
Amazonの人はこういうのがあったらユーザーにとって利便があるだろうということだけ考えているのだろうな。他社の動向なんて調べても絶対にこういうものは作れない。
他社は○○なのだから、我々も××せざるを得ない。
とか、
世の中は○○となっているから、××しなければ生き残れない。
とか言われるとゲンナリする。知らんがな、"It's not my business"だ。他のとこを引き合いに出されたら、バッタモンなんて作りたくないと人がそっちに流れかねない。一般に偉い人は「ざるを得ない」と「生き残れない」をいうものだけれど、これらは会社を殺すキラーワードだ。もちろん命令には従わなければ生き残れないから、聞かざるを得ないが、意義が見いだせないのでモチベーションは低下せざるを得ない。もしかしたら、Bezosも内部では言っているのかもしれないが……
モノマネもありふれた企業戦略で、それ自体は悪くない。すごいアイデアなんてなかなか出るものではない。他のが良かったらどんどんパクったらいい。卑怯でもなんでもない、パクりパクられの世界だ。マネシタ電機――結構じゃないか。*1
しかし、パクるならパクるでいいのだが、やろうとしていることの自体の価値を説くべきなのだ。
我々が××することは世の中によって必要なんだ。
とか、
××は世の中をこう良くする。
っていうのが聞きたい――と思う人が多いのではないか思います。世の中を良くする気がしてくることをしたいです。
ジェフ・ベゾス 果てなき野望?アマゾンを創った無敵の奇才経営者
- 作者: ブラッド・ストーン
- 出版社/メーカー: 日経BP社
- 発売日: 2014/01/09
- メディア: Kindle版
- この商品を含むブログ (5件) を見る