「サーバーレスとは何か」という定義をAWSサーバーレスサービスを例に考えてみた。
サーバーレスとは何か
現在、サーバーレスという用語の明確な定義は無く、パッチ適用などインフラストラクチャ管理が不要、必要なときに必要なだけリソースを使用可能、使用した分だけの課金、といった特徴があるものをサーバーレスと呼ぶ傾向があります。
参考:Wikipediaの「Serverless computing」
「Serverless computing is a cloud computing execution model in which the cloud provider allocates machine resources on demand, taking care of the servers on behalf of their customers.」
「Pricing is based on the actual amount of resources consumed by an application. It can be a form of utility computing.」
また、サーバーレスはサーバーを使わないことではなく、実際にはバックエンドでサーバーが動作してしています。
これらの一般に言われるサーバレスの特徴から、「フルマネージドかつ待機中のコンピューティング料金が発生しない」という観点が多くのサーバーレスサービスに当てはまると考えられます。
AWSのサーバーレスサービス
AWSでのサーバーレスサービスには以下の表のようなサービスが紹介されています。
ただし、これらのサービスの内容や特徴は異なり、課金される単位も様々であるため注意が必要です。
また、これら以外にもサーバーレスとされているAWSサービスはいくつもあるため各サービス毎にその特徴を捉える必要もあります。
以下の表ではサーバーレスに分類されているAWSサービスが、
①フルマネージド
②待機中のコンピューティング料金が発生しない
という2つの特徴が満たされているかという観点でまとめてみました。
AWSサービス名 | フルマネージド | 待機中のコンピューティング料金無料 | 補足説明 |
---|---|---|---|
AWS Lambda | ○ | ○ | フルマネージド。 イベント駆動のコンピューティング実行が主な課金対象。 キャパシティ設定は調整可能。 |
Amazon Fargate | ○ | △(※1) | フルマネージド。 タスク実行中のコンピューティング実行が主な課金対象。 (※1)タスク実行中にリソースを使用していなくても課金はされる。 キャパシティ設定は調整可能。 |
Amazon EventBridge | ○ | ○ | フルマネージド。 イベントが主な課金対象。 キャパシティ設定は調整不可。 |
AWS Step Functions | ○ | ○ | フルマネージド。 状態遷移が主な課金対象。 キャパシティ設定は調整不可。 |
Amazon SQS | ○ | ○ | フルマネージド。 リクエストが主な課金対象。 キャパシティ設定は調整不可。 |
Amazon SNS | ○ | ○ | フルマネージド。 通知が主な課金対象。 キャパシティ設定は調整不可。 |
Amazon API Gateway | ○ | ○ | フルマネージド。 APIコールが主な課金対象。 キャパシティ設定は調整不可。 |
AWS AppSync | ○ | ○ | フルマネージド。 データ変更操作とリアルタイム更新料金が主な課金対象。 キャパシティ設定は調整不可(GraphQL API専用キャッシュをプロビジョニングすることは可能)。 |
Amazon S3 | ○ | ○ | フルマネージド。 ストレージ使用が主な課金対象。 キャパシティ設定は調整不可。 |
Amazon DynamoDB | ○ | ○ | フルマネージド。 ストレージ使用とAPIコール(キャパシティユニット)が主な課金対象。 キャパシティ設定は調整可能。オンデマンドキャパシティーモードはキャパシティを自動調整。 |
Amazon RDS Proxy | ○ | △(※2) | フルマネージド。 (※2)有効化されているAmazon RDSインスタンスのvCPU数と相関するため、RDSのコンピューティング実行時間に依存。 キャパシティ設定は調整不可。 |
Amazon Aurora Serverless | ○ | ○ | フルマネージド。 イベント駆動のコンピューティング実行が主な課金対象。 キャパシティ設定は調整可能。 |
Amazon QLDB | ○ | ○ | フルマネージド。 ストレージ使用とリクエストI/O件数が主な課金対象。 キャパシティ設定は調整不可。 |
(※1)タスク実行中の待機時間も継続的な処理に俊敏に対応するための最低限必要なリソースを確保しているという見方をすれば、待機中のコンピューティング料金は無料と考えることはできる。
(※2)Amazon RDSインスタンスの起動中は常にRDS Proxyが必要とされているという見方をすれば、待機中のコンピューティング料金は無料と考えることはできる。
このように、
①フルマネージド
②待機中のコンピューティング料金が発生しない
という2つの特徴の観点で見てみましたが、見方によっては完全に一致するサービスばかりではないことがわかります。
強いて言えば、
①フルマネージド
②待機中のコンピューティング料金が「最適化できる」
という条件であれば上記のAWSサービスは条件を満たすことができます。
ただ、やはり結論としてサーバーレスという用語を明確に定義することは難しく、サーバレスと呼ばれるそのサービスの特徴は何かを個別に理解しながら活用することが重要だと言えます。
サーバレスという用語は「サーバーレス≒フルマネージド+α」のような広い意味合いがあることを前提に、この用語と今後も付き合っていく必要がありそうです。