クラウドユーザの5社に1社はFaaSを活用、Python人気の一方でJavaも!? など「サーバレスの8つのトレンド」
“サーバレス活用のリアル” Datadogがグローバル調査で解明
2021年09月07日 07時00分更新
Datadog Japanは9月1日、同社顧客を対象にグローバルで行った実態調査「サーバレスの現状」の結果について、国内報道関係者向けの説明会を開催した。「AWS Lambda」「Azure Functions」「Google Cloud Functions」など、ハイパースケーラが提供するファンクションサービス(FaaS)を中心として急激に市場が拡大するサーバレスアーキテクチャだが、現実の世界ではどのようなユースケースでどんな使われ方をしているのだろうか。本稿ではDatadog Japanの解説をもとに“サーバレス活用のリアル”を紹介する。
急拡大するサーバレス市場、ユーザー調査で見えた「8つのトレンド」
MarketsandMarketsの調査によれば、AWS Lambdaなどのサーバレスアーキテクチャの市場規模は2018年に42.5億ドル(約4674億円)となり、年平均成長率(CAGR)28.6%と高い伸びを示しながら、2023年には149.3億ドル(約1兆6420億円)にも達するといわれている。
こうしたサーバレス市場の急速な拡大の理由について、Datadog Japan SEマネージャーの守屋賢一氏は「インフラをまったく気にすることなくコードを実行できるサーバレスコンピューティングは、エンジニアを『他社との差別化要因にはならないが重労働である作業』から解放し、アプリケーションの実行だけにフォーカスできる環境を提供することが最大のメリット」と指摘する。サーバレスコンピューティングはしばしばFanctions-as-a-Serviceとイコールで語られるが、まさにファンクションの実行だけに特化できる点が最大の魅力といえるだろう。
それではサーバレスアーキテクチャは現在、どのように使われているのか。守屋氏はDatadogの調査から見えてきた「8つのサーバレストレンド」を挙げている。以下、それぞれのトピックに沿って、サーバレス活用の現状を見ていこう。
1. Lambda関数の呼び出し回数が2年で3.5倍に増加
サーバレスコンピューティングのさきがけであり、現在もサーバレスの代名詞ともいえる存在のAWS Lambdaだが「2014年11月の最初のリリース以来、市場で本格的に受け入れられるまでにはそれなりの時間がかかっている」と守屋氏は指摘する。Lambdaはある意味でインフラレイヤの抽象化を極限まで推し進めたサービスだが、初期のころは実験的な導入に限定されていたケースが少なくなく、本格的なサーバレス導入が幅広い業界で拡大したのは2019年ごろだという。
ターニングポイントとなった2019年以降にLambdaを使い始めた企業を調査したところ、それらの企業におけるLambda使用量は大幅に増加しており、2年後の2021年初頭には1日あたりのLambda関数の呼び出し回数が「平均3.5倍」まで増えている。その背景には7年前と比べて多種多様な業界、たとえば金融などレガシーな業界でサーバレス(Lambda)利用が拡大したことが挙げられる。代表的なユースケースとして、守屋氏は「モバイルのバックエンドにおけるリクエスト処理やバッチ処理、または高いスループットが求められたり突発的なピークが起こりうる処理で使われるケースが多い」と解説しており、サーバレスが確実に拡大傾向にあることをうかがわせる。
2. 主要3クラウドベンダのFaaSは、それぞれ少なくとも5社に1社が使用している
前述したようにサーバレスコンピューティングの火付け役となったのはAWS Lambdaだが、AWSに次ぐハイパースケーラのMicrosoft AzureやGoogle Cloudもそれぞれ「Azure Functions」「Google Cloud Functions」というファンクションサービスを提供し、着実に導入実績を拡げている。守屋氏によれば、Azure全ユーザにおけるAzure Functionsを利用する企業の割合は過去1年間で26%から36%に増加、Google Cloud FunctionsもGoogle Cloudユーザの約4分の1が利用しているという。平均すると主要3クラウドのファンクションサービスに関しては、それぞれのクラウドユーザの少なくとも5社に1社が採用している計算となり、さらに拡大する傾向が見て取れる。
3. Lambdaの起動時間の中央値は1年で半分に
Lambdaなどファンクションサービスの料金形態は「処理を実行した分だけ支払う」が基本である。つまりサービスの実行時間に着目するとサーバレスのトレンドが見えてくることになる。本調査によれば、2020年のLambdaの呼び出し時間の中央値は60ミリ秒で、2019年の130ミリ秒の半分以下となった。より短い実行時間での処理が増えている一方で、「ロングテールも維持されている(計算量が多い処理に対応)」(守屋氏)という傾向も示されている。
こうしたトレンドについて、守屋氏は「とくにLambdaに大きな仕組み上の変化が起こったわけではなく、ベストプラクティスに収斂している結果なのではないか」と指摘する。とくにコールドスタート問題(後述)に悩むLambdaユーザの場合、リクエストがないタイミングでもファンクションを定期的に実行できるよう「小さくてステートレスな開発」(守屋氏)がスケールさせるために必要な指針となっていることが影響しているという。
4. Step Functionsはレイテンシを重視するタスクから長時間実行されるジョブまで、さまざまなワークロードで活用される
2016年12月にリリースされた「AWS Step Functions」は、Lambda関数やAWSサービスを組み込んだイベントドリブンなワークフローを開発者が容易にオーケストレーションできるサービスだ。たとえばあるLambda関数から別のLambda関数を呼び出す場合、コード上で呼び出す関数を指定したり、エラー時の処理を定義する必要があったが、Step Functionsを使うことでこうした作業は不要になり、複数のステップからなる分散アプリケーションやマイクロサービスをシンプルに構築できる。守屋氏はStep Functionsの具体的なユースケースとして「データをダウンロードし、加工処理を行ったあとに、S3に格納する――その処理の流れを指定でき、処理の分岐やエラー時の対応も決められる。また、ECSやキューイング、Amazon DynamoといったAWSサービスとの連携も容易」と説明する。
このStep Functionsはサーバレスコンピューティングを活用する企業ではひろく使われており、調査によればStep Functionsの平均的なワークフローには4つのLambda関数が含まれていて、月を追うごとにその数は増加中だという。また、Step Functionsには長時間実行されるワークフローに最適な「Standard」と、5分以内の短いワークロードを対象にした「Express」が用意されている。本調査によれば、Step Functionsの40%以上のワークフローが「0~1分以内」で実行されており、Expressによるクイックな処理(Webリクエストなど低レイテンシが重要な処理)に多用されている一方で、「1日以上」あるいは「1週間以上」にもおよぶ長時間の処理(ETLや機械学習など)で利用されるStandardワークフローもあり、Step Functionsが実に多様なサーバレスワークロードを支えていることがわかる。