サーバーレスでプログラムコードを実行する「FaaS(ファンクション・アズ・ア・サービス)」基盤のクラウドサービスを使い、業務システムを構築する企業が相次いでいる。FaaS基盤のクラウドサービスを利用すれば、開発者は仮想マシンやコンテナなどの実行環境を構築・管理する必要がなくなり、開発の生産性向上につながる。しかもFaaS基盤のクラウドサービスは料金が比較的安く、利用企業にとってコスト削減にもつながる。
実行環境の構築・管理が不要で料金が安いのは、クラウドサービスの内部でITリソースの管理を自動化しているからだ。FaaS基盤のクラウドサービスでは、あらかじめ利用者のITエンジニアがJavaなどの言語でコードを作成して登録し「オブジェクトストレージの特定バケットへのファイル書き込み」といったイベントなどを指定しておくと、管理機構がそのイベント発生を検知して実行環境を立ち上げ、コードを読み込み実行する。コードの実行が終わると必要に応じて実行環境を削除しITリソースを解放する。つまり実行環境が必要なときだけITリソースを自動で確保する仕組みによって、ITエンジニアの手間をなくし、クラウドサービスの原価を下げている。
このFaaS基盤のクラウドサービスは米アマゾン・ウェブ・サービス(AWS)、米マイクロソフト、米グーグルの3大クラウド事業者がそれぞれ提供している。その中でも代表格といえるのが「AWS Lambda」だ。
AWSは以前、Lambdaファンクション(起動して利用者指定のコードを読み込んだマイクロ仮想マシン)のコード実行時間を最長5分に制限していた。そのこともあり、従来はサービス間のメッセージ連携や単純なデータ加工のような短時間で終わる処理に使われるケースが多かった。
しかし2018年、AWSがLambdaファンクションの実行時間を最長15分に延長したのを機に適用範囲が複雑な処理へ広がってきている。業務システムや外販するSaaS(ソフトウエア・アズ・ア・サービス)をAWS Lambdaで実装する事例も登場している。
AWSは2022年11月下旬から開いた年次イベント「AWS re:Invent 2022」で、Lambdaファンクションの高速起動オプションや、複数のLambdaファンクションなどで構成する処理フローの実行・管理サービス「AWS Step Functions」での並列処理数の大幅増を発表した。並列処理数については従来の40個から1万個へ拡張した。これにより、AWS Lambdaの適用範囲がさらに広がると期待を集めている。
では、FaaS基盤のクラウドサービスを使って比較的複雑なアプリケーションを動作させるには、どのように設計、実装したらよいのか。以下でSBI生命保険、NTTドコモ、横浜ゴムの3社によるAWS Lambdaの活用事例を通して、FaaS基盤のクラウドサービスを活用してシステムを構築するメリットと勘所を解説する。