サーバーレスコンピューティング

Serverless computing

利用者がサーバーの調達や台数管理を行わず、コードを預けるだけで実行環境が自動的に確保・拡縮される計算モデルである。出典は「サーバーレス=FaaS+BaaS」と定義し、明示的なプロビジョニングなしに自動拡縮し、使用量に基づいて課金されることを条件とする。

詳細

概要

サーバーレスコンピューティングは、計算資源の確保・配置・監視といった運用作業を事業者側に委ね、利用者はコードと実行条件のみを記述する形態を指す。出典は、サーバーレスを「FaaS+BaaS」と定式化し、サーバーレスと呼べる条件として、明示的なプロビジョニングなしに自動的に拡縮すること、および使用量に基づいて課金されることを挙げている。FaaSは利用者が関数を書き、事業者がインスタンス選択、拡縮、デプロイ、耐障害性、監視、ログ、セキュリティパッチのすべてを扱う形態である。BaaSはオブジェクトストレージやデータベース、メッセージングなど、用途特化のサーバーレスサービスを指す。

技術的な要点

出典は従来のクラウドとの違いを三点に整理する。第一に計算とストレージの分離で、両者は別々に拡縮され、独立に調達・課金される。第二に自動的な資源割当てで、利用者は資源を要求するのではなくコードを提供し、クラウドが実行に必要な資源を用意する。第三に課金単位で、確保した資源ではなく実際に使った資源に比例して支払う。実装上の主要な課題はコールドスタートである。出典は新しいインスタンスの起動時に生じる遅延が大きくなりうるとし、要因として関数の起動時間、ソフトウェア環境の初期化、アプリケーション固有の初期化の三つを挙げ、後の二つは数十秒に達しうると述べている。

産業での位置づけ

負荷が変動するワークロードほど、確保した資源を遊ばせない課金モデルの効果が大きい。GPUを用いる機械学習の推論やバッチ処理でも同じ考え方が適用され、起動遅延の短縮とスケジューリングが差別化要因となる。