PR

サーバーに関わる面倒な作業はすべて任せたい―。エンジニアのそんな希望をかなえる技術が「サーバーレス」である。NPB、ダイソー、アサヒビール、JapanTaxiの活用例を見ていく。

 2019年3月29日。プロ野球の開幕と同時にサーバーレスを使った新システムの本格稼働が始まった。プロ野球選手の写真を貸し出す日本野球機構(NPB)のサービス「NPB CIC」を支援するシステムだ。

 新システムにより、球団担当者が選手の写真を選んで情報を追加する作業を自動化。1試合当たり4時間かかっていた作業を8分の1の30分に短縮できたという。

図 日本野球機構(NPB)が運営する「NPB CIC」の概要
図 日本野球機構(NPB)が運営する「NPB CIC」の概要
活用が進むサーバーレス(画像提供:富士フイルムソフトウエア)
[画像のクリックで拡大表示]

主流はFaaS、トリガーで起動

 サーバーレスは開発者がサーバーを意識しなくて済む仕組みだ。ベンダーが提供するクラウドサービスを使ってサーバー用ソフトウエアの管理を自動化し、開発や運用の効率を高める。こう書くだけでは分かりにくいので、詳しく説明していく。

 システム開発者は通常、アプリケーションのロジックだけでなく、サーバーに関わる課題を踏まえて開発を進める必要がある。「仮想マシンをどこにどれだけ置くか」「データベースなどのミドルウエアとして何を用意するか」「負荷の高まりにどう対応するか」などだ。こうしたサーバー周りの課題を考えなくても済むようにして、ロジックの開発に専念させる。これがサーバーレスの狙いだ。

 サーバーレスの仕組みはベンダーがクラウドサービスとして提供する。例えば「PaaS(プラットフォーム・アズ・ア・サービス)」はサーバーレスとみなせる。システム開発を手掛けるベーシックの中野聡洋グループマネージャーは「開発期間を短くでき、突発的な負荷の高まりを自動的に捉えて処理を分散してくれる」と説明する。

図 サーバーレスの動作概要
図 サーバーレスの動作概要
トリガーを基にコードを実行
[画像のクリックで拡大表示]

 現在はサーバーレスというと「FaaS(ファンクション・アズ・ア・サービス)」を主に指す。FaaSは特定の処理を担うPaaSの一部と捉えられる。

 FaaSは以下のように処理を進める。あらかじめ「機能(ファンクション)」を用意するとともに、その機能が起動するきっかけ(トリガー)を設定しておく。例えば機能として「サムネイルを生成する」、トリガーとして「ストレージに画像が保存される」とする。

 FaaSの機能は「コンテナ」として扱うケースが多い。コンテナは2つ目の新技術で、ミドルウエアなどの動作環境とアプリをまとめたものをいう。

 トリガーが発生するまで、コンテナは起動しない。トリガーが生じて初めてコンテナが立ち上がり、処理を実行する。処理が終わるとコンテナを消し去る。

 クラウドサービスは通常、サーバーで仮想マシンを常に動かし、その分のコストがかかる。これに対し、FaaSはトリガーが発生しない限り機能は立ち上がらず、コストも生じない。このため「仮想マシンを常時稼働しておく場合よりも低いコストで済む」(ベーシックの中野マネージャー)。

 FaaSの先駆けと言えるのがAWSの「AWS Lambda」だ。続いて2016年にマイクロソフトが「Azure Functions」、IBMが「OpenWhisk(現IBM Cloud Functions)」を提供。グーグルも2017年に「Cloud Functions」のベータ版を公開した。