サーバーレスコンピューティングとは
サーバーレスコンピューティングは、クラウドプロバイダーがアプリケーションを実行するために必要なコンピューティングリソースを動的に割り当てるクラウドコンピューティングの実行モデルです。このモデルでは、ユーザーは事前にリソースを購入する必要がなく、アプリケーションのリクエストを満たすために使用されたリソース量に基づいて課金されます。
このモデルの主な特徴は、物理サーバーがアプリケーションコードを提供するユーザーの視点から完全に抽象化されている点です。そのため、「サーバーレス」という名前が使われています。これは、ユーティリティコンピューティングの一形態であり、ユーザーはインフラの管理を気にせずに、アプリケーション開発に集中できます。
サーバーレスコンピューティングは、
マイクロサービスなどの従来のサーバーベースのコードと組み合わせて使用できます。たとえば、Webアプリケーションの一部を
マイクロサービスとして構築し、別の部分をサーバーレスコードとして実装できます。また、プロビジョニングされたサーバーを全く使用せず、完全にサーバーレスなアプリケーションを構築することも可能です。
サーバーレスランタイム
多くのサーバーレスベンダーは、Functions as a Service (FaaS) プラットフォームとして機能するコンピューティングランタイムを提供しています。FaaSプラットフォームは、アプリケーションロジックを実行しますが、データは保存しません。代表的な例としては、以下のようなものがあります。
Google App Engine (2008年): Googleがリリースしたサービスで、当初はカスタムPythonフレームワークを使用したアプリケーションの課金を行っていました。しかし、任意のコードを実行できるわけではありませんでした。
AWS Lambda (2014年): Amazonが提供するサービスで、抽象的なサーバーレスコンピューティングサービスを提供する主要なプロバイダーの一つです。リリース当初は
Node.jsのみをサポートしていました。
近年、サーバーレス
データベースも登場しています。これらのシステムは、サーバーレス実行モデルをRDBMSに拡張し、物理的な
データベースハードウェアのプロビジョニングやスケーリングを不要にします。以下にいくつかの例を挙げます。
Azure Data Lake: Microsoftが提供する拡張性の高いデータストレージおよび分析サービスです。Azureのパブリッククラウドでホストされており、リソースの動的な割り当てと解除が可能であるため、使用したサービスのみを支払うことができます。
Google Cloud Datastore: Googleが提供する結果整合性ドキュメントストアです。Google App Engineの
データベースコンポーネントをスタンドアロンサービスとして提供しています。また、Googleが所有するFirebaseには、固定および従量課金プランで利用できる階層型
データベースが含まれています。
*
FaunaDB: Fauna社が提供するグローバル分散トランザクション
データベースです。
Twitter由来の技術に基づいており、従量課金制で複数のパブリッククラウドプロバイダーで利用できます。また、オンプレミスでの利用も可能です。
これらのサーバーレス技術は、開発者がインフラ管理の負担を軽減し、より迅速にアプリケーションを開発・展開することを可能にします。利用量に応じた課金体系は、コスト効率の高い運用にもつながります。