「サーバレス実態調査」の8つのインサイト
ここからは、「サーバレスの実態調査」から得られた8つのインサイトを紹介する。
Lambda関数の呼び出し回数が2年で3.5倍に
サーバレスのなかでも代表的なサービスであるLambda。2019年第1四半期にLambdaを使用している企業を対象に行なった調査によると、1日あたりの関数の実行が、2019年第1四半期と比較して、2年間で3.5倍に増加している。
同社の調査によると、Lambdaを利用している企業は、モダンなテクノロジーに精通している企業はもちろん、金融機関やヘルスケアなど多岐にわたる業種で使われている。
Lambdaのユースケースとして、モバイルアプリケーションのサーバー側の処理や、クラウドのインフラの状態変化に基づき動作するバッチ処理などで使われるなど、高いスループットあるいは同時実行性が求められるもの、あるいは突発的にピークが起こりうる処理などが挙げられる。
Azure FunctionsとGoogle Cloud Functionsの利用も加速
サーバレスは、2014年に登場したLambdaが火付け役になったが、2016年には、Microsoft AzureではAzure Functions、Google CloudではCloud Functionsがそれぞれリリースされ、採用が加速している。
同社の調査によると、Azure Functionsを利用している組織の割合は、過去1年間で26%から36%に上昇。さらに、Google Cloudを利用している組織のうち4分の1がCloud Functionsを利用している。
Lambdaの起動時間の中央値は1年で半分に
サーバレスの関数は、実行時間の分だけ課金されるということで、利用にあたっては実行時間の管理が重要になる。
2019年と2020年の実行時間をそれぞれの中央値で比較すると、1年間で約半分になっている。この背景として守屋氏は、仕組みとしての変化がAWSにあったわけではなく、ユーザーがLambda開発のベストプラクティスに習熟してきたことの表れだ、と説明した。
Step Functionsがさまざまなワークロードで活用
Step Functionsは、サーバレスを含むいくつかの機能をオーケストレーションするサービス。複雑なプロセスを処理できるワークフローのようなものだ。
Step Functionsは、Lambda、Amazon ECS、Amazon SQS、Amazon DynamoDBを含む20以上のサービスで構成されているが、同社の調査結果から、Step Functionsの平均的なワークフローには、4つのLambda関数が含まれ、さらに月を追うごとに増加傾向にあることが分かった。
以下のグラフからわかるように0~1分の処理にもStep Functionsは多く活用され、Webリクエスト処理のような、ほぼリアルタイムのワークフローにもStep Functionsが利用可能であると考えられる。一方、ETL、機械学習のワークフローのように、1日以上かかるワークフローでも活用されているなど、短時間から長時間まで、さまざまなワークロードで活用されている。
Lambda@Edge関数の67%が20ミリ秒以下で実行される
続いて、コンテンツ配信におけるエッジ処理について。パフォーマンスやユーザー体験を重視するときに、処理をエッジ側にするのが一つのセオリーになっている。AWSのCDNサービスAmazon CloudFrontの機能であるLambda@Edgeを使うと、ユーザーに近いリージョンでコードを実行し、レイテンシの低い状態でコンテンツの配信ができる。
CloudFrontを使用している企業の4分の1はLambda@Edgeを活用している。ユースケースとしては、デバイスのタイプを判別し、画像を動的にサイズ変更したり、HTTPヘッダーの追加や変更を行うことで、コンテンツがキャッシュされやすくしたり、ABテストのようにWebアプリケーションの異なるバージョンを生成したりすることなどが想定される。
さらに同社のデータによると、Lambda@Edgeの機能の約67%が20ミリ秒以下で実行されていることが分かった。サーバレスはこれまで「低レイテンシーの処理で使えるのか」という議論もあったが、この結果は、レイテンシーが重要なアプリにおいて、最小限のオーバーヘッドで実行可能なことの表れだと守屋氏は述べる。