日経クラウドファースト編集長 中山秀夫
日経クラウドファースト編集長 中山秀夫

 米アマゾンウェブサービス(AWS)の「AWS Lambda(ラムダ)」といえば、ストレージにデータが書き込まれる、設定した時刻になる、といったイベントに基づいて、JavaScriptやPythonなどの比較的軽量なコードを実行するサービスだ。

 ユーザーは仮想マシン(サーバー)を操作する必要が無い。コンテナ型の仮想マシンが自動的に立ち上がり、コードを実行し終えるとリソースを解放する。基本的に実行時間に応じた課金なので、仮想マシンのようにアイドル状態なのにコストが発生することはない。だから安く使える。

 ユーザーがサーバーを操作する必要のないシステム構成は「サーバーレスアーキテクチャー」と呼ばれ、Lambdaは代名詞的な存在になっている。同様のサーバーレスのコード実行サービスには、米マイクロソフトの「Azure Functions」、米IBMの「Bluemix OpenWhisk」、米グーグルの「Google Cloud Functions」などがある。今や、主要なクラウド事業者がこぞって提供するサービスの一つだ。

Lambdaの初回起動は5秒以上かかる

 とはいえ、他社に先駆け2014年11月に登場したLambdaでもいまだ広く使われているわけではない。「実績が無い」「使い道が分からない」「業務システムには使えない」――。そんな声をよく聞く。

 否定的なのも無理はない。手間が掛からず安いという特徴と引き換えに、Lambdaには厄介な制約がある。仮想マシンのように常時立ち上がっているわけではないので、初回起動に時間が掛かるというものだ。

 Lambdaに詳しいNTTドコモの秋永和計氏(イノベーション統括部 クラウドソリューション担当 担当課長)の検証では5秒以上掛かることもあったという。さらに、コードの最長実行時間は300秒まで。一時ストレージ容量は512MBに限られる。

 こうした制約を抱えるLambdaで業務アプリケーションを実装しようとすると、機能を細切れにしたうえで、処理が終わるとコンテナが消えるという前提に立って機能同士を連携させる必要がある。これは「ファンクション・アズ・ア・サービス」と呼ばれる新しいシステムの実装方法であり、そのための開発・テスト・運用の方法やツールは作られつつあるという段階。すぐ実用化できるわけではないだろう。

 だからといって、Lambdaによるサーバーレスは使えないと切り捨てるのは早計だ。実際には、すぐにでも使えるうえに用途は幅広い。

 その用途は業務アプリケーションのような複雑な機能の実装とは別のところにある。ストレージや仮想マシンなどのサービス同士を連携させてちょっとした問題を解決するような、簡単な用途である。