イベント駆動型コード実行サービスは、「ストレージにファイルが配置された」といったイベントに基づいてコードを実行するクラウドサービスだ。コード実行時間による従量課金で利用できるのが特徴の1つである。

イベント駆動型コード実行サービスの動作
[画像のクリックで拡大表示]

 イベント駆動型コード実行サービスは管理機構とコードを実行するコンテナで構成される。管理機構が他のサービスからイベント通知を受け取ると、コンテナを作成してコードを配置し実行。コード実行が完了するとコンテナを削除する、というのが一般的な仕組みだ。

 コードを実行している間だけCPUやメモリーなどのリソースをコンテナとして確保するので、稼働しっぱなしの仮想マシンに比べて無駄なリソースが発生しにくい。この仕組みによって、コード実行時間での従量課金を実現する。

 半面、コード実行の前にコンテナを作成する分、タイムラグが発生する。実際にはキャッシュ機構などによってタイムラグを1ミリ秒未満にしているケースもあり、必ずしも遅いわけではない。

 起点となるイベントは例えばオブジェクトストレージへのファイル配置、データベースへの書き込み、メッセージキューイングサービスへのメッセージ到達など様々なものがある。イベント駆動型コード実行サービスの管理機構のスケジューラーを使って、「毎週月曜日午前0時」のように繰り返しコードを実行することも可能だ。さらに、イベント駆動型コード実行サービスによる処理を複数連ねることにより、イベントを起点としてドミノ倒しのように連鎖的に一連の処理を行える。

 クラウドサービスだけでなくオンプレミス(自社所有)環境で同様の機能を実現するソフトも登場している。