サーバーレスの現状 | Datadog
サーバーレスの現状

/ / / / / / / / /

2023年8月更新

この調査は、2022年 6月に公開された本記事の前回版を基にしています。各実証に関するグラフはこちらからダウンロードでき、レポート本体はこちらをクリックしてダウンロードできます。

サーバーレスは現代のコンピューティングの主流となっています。今日、企業は増え続けるサーバーレスサービスを利用し、新しい革新的な方法でアプリケーションの構築と管理を行っています。チームはコンテナ化された関数やフルマネージド型のコンテナベースアプリケーションを利用することで、従来の FaaS (Function-as-a-Service) ソリューションを超えてシステムを拡張できるようになっています。AWS、Google Cloud、Azure などの主要なクラウドプロバイダーや、Vercel、Cloudflare などの新興プラットフォームは、開発者の期待するワークロードに対応するように設計された独自のサーバーレスコンピューティングサービスを提供しています。サーバーレスは、一部で従来のインフラストラクチャーを置き換えているものの、多くの場合ではこれらのインフラとより密接に統合されています。

このレポートでは、すべての主要なクラウドを対象に、サーバーレスシステムを運用し、当社のプラットフォームでそのワークロードを監視している 2 万人以上のお客様の利用データを調査しました。以下で、これらのお客様が実際のシナリオでサーバーレス技術をどのように利用しているかを示す重要な洞察をご覧いただけます。

ぜひ続きをお読みいただき、サーバーレスシステムの最新の動向をご確認ください。


事実 1

主要なクラウドプロバイダーは引き続きサーバーレスの採用を積極推進

過去 1 年間で、Azure と Google Cloud 上でシステムを稼働する組織のサーバーレス採用率はそれぞれ 6% と 7% 増加し、AWS の増加率は 3% でした。AWS の顧客の 70% 以上、Google Cloud の顧客の 60% が現在 1つ以上のサーバーレスソリューションを利用しており、Azure は 49% で僅かに劣っています。

主要なクラウドプロバイダーによるサーバーレス採用率

今年のレポートでは、2 つの新しいサーバーレスプラットフォーム、Azure Container Apps と AWS CloudFront Functions をデータに含めました。FaaS ソリューションは引き続きサーバーレス全体の人気を牽引している一方で、クラウドプロバイダーは顧客のニーズをより満たすためにサーバーレスツールのスイートを拡張していることがわかります。クラウドプロバイダーが既存のソリューションを改善し、サーバーレスコンテナやサーバーレスエッジコンピューティングなど、より新しい広範なサービスを提供するにつれて、より多くの企業がこれらのツールを利用して顧客に価値を提供できるようになっています。

注: この実証の目的のため、サーバーレスを採用している組織は以下のテクノロジーの少なくとも 1 つを使用しています。

  • AWS: AWS Lambda、AWS App Runner、ECS Fargate、EKS Fargate、AWS CloudFront Functions
  • Azure: Azure Functions、Azure Container Apps、Azure Container Instances
  • Google Cloud: Google Cloud Functions、Google App Engine-Flex、Google Cloud Run
事実 2

フルマネージド型コンテナベースのサーバーレス導入では Google Cloud がリード

Datadog の 2022 年の報告では、AWS Lambda、Google Cloud Functions、Azure Functions など、ランタイムが管理された従来型の関数に比べて、各企業はコンテナとしてパッケージ化された関数や、フルマネージド型のコンテナベースアプリケーションプラットフォームといったサーバーレス技術の利用を拡大していることが示されています。

この傾向は、主要な 3 つのクラウドすべてで続いています。特に Google Cloud では、サーバーレスを採用する組織の 66% がコンテナベースのサーバーレスワークロード (Cloud Run や第 2 世代の Cloud Functions など) を利用しています。

主要クラウドによるフルマネージド型・コンテナベースのサーバーレスプラットフォームの利用状況

2019 年の Cloud Run のローンチ以来、Google Cloud はこのカテゴリーでリードしてきましたが、今年はコンテナ化された Lambda 関数と AWS App Runner を搭載したフルマネージド型のコンテナワークロードを実行しているサーバーレス組織が増加し、AWS のシェアが 26% に増加しました。この数値は昨年の約 20% から上昇し、Azure は 22% で僅かに劣っています。当初は割合が少なかったとはいえ、2022 年 5 月の Azure Container Apps のリリースにより、Azure のコンテナベースのワークロード採用率は前年比 76% と著しい伸びを見せています。

コンテナベースのサーバーレスコンピューティングプラットフォームの人気が高まっている一因は、サーバーレスの導入と移行を簡素化できるためだとされています。例えば、組織は既存のコンテナイメージをクラウドプロバイダーがホストするレジストリにアップロードし、それらのコンテナをマイクロサービスとしてシームレスにデプロイすることができます。また、サーバーレスコンテナ製品は、サーバーレス関数と比較して、幅広い言語と大規模なアプリケーションサイズをサポートしており、ワークロードの移行をさらに促進しています。

“Google Cloud は、サーバーレスサービスを提供することで、顧客のポータビリティと柔軟性の要求に応えています。Cloud Run と第 2 世代の Cloud Functions は、FaaS (Functions-as-a-Service) 向けのコンテナファーストのアプローチであり、Google Cloud 上のすべてのクラウドプラットフォーム、オンプレミス、すべてのコンテナプラットフォームでワークロードを実行する能力を顧客に提供し、Cloud Functions から Cloud Run や Google Kubernetes Engine への移行を容易にします。このアプローチにより、プラットフォーム間でワークロードを作り直す必要性が減少し、顧客のコストを削減することに貢献します。”

Rachel Tsao
Google Cloud サーバーレスプロダクトマネージャー
事実 3

新興サーバーレスプラットフォームの主要カテゴリーはフロントエンド開発

今日のサーバーレスコンピューティング界においては、AWS、Google Cloud、Azure といった主要なクラウドプロバイダーの他にも、多くのプレーヤーが存在しています。例えば、Vercel、Netlify、Cloudflare、Fastly などの最新のフロントエンド開発およびコンテンツデリバリネットワーク (CDN) プラットフォームは、コアプラットフォームと緊密に統合されたサーバーレスコンピューティング機能を開発者に提供しています。主要なクラウドでサーバーレスワークロードをモニタリングしている全組織の 7% は、これらの新興クラウドプラットフォームの少なくとも 1 つを使用してワークロードを実行しています。このうち 62% が Vercel や Netlify のようなフロントエンド開発プラットフォームを利用しており、39% が Cloudflare や Fastly のようなエッジコンピューティング製品を利用しています。

新興プラットフォーム別のサーバーレスコンピューティング採用率

Vercel Functions や Netlify Functions のようなプラットフォームを活用することで、フロントエンド開発者はクラウドからアプリケーション全体を簡単に作成・実行できます。これにより、フルスタックプロジェクトや開発をより多くの人が利用できるようになります。一方、Cloudflare Workers や Fastly Compute@Edge のような分散型エッジプラットフォームは、開発者が既存の CDN プロバイダーと緊密に統合された形で、エンドユーザーに近いサーバーレスアプリケーションを構築することを可能にします。

Cloudflare や Vercel などのプラットフォームは、フロントエンド開発とフルスタック開発のためのエッジコンピューティングを取り入れるよう進化してきました。例えば、Cloudflare は Workers を利用してフルスタックアプリケーションを構築できるよう、Pages やその他のツールを提供しています。また、Vercel でアプリをデプロイする際、開発者は同社のエッジネットワークを利用することができます。全体として、主要なクラウドプロバイダー以外の CDN とフロントエンド開発プラットフォームの進化は、組織が高いパフォーマンスのエンドユーザーエクスペリエンスを提供するための代替オプションを採用していることを示唆しています。

“フロントエンドの観点から言えば、開発者は常に、より良いエンドユーザー体験と SEO の実現のためにサーバーの力を理解してきましたが、歴史的には、グローバルに分散されたエッジネットワークを維持し、プロビジョニングするための参入障壁は高く、大企業でなければ非常に困難でした。サーバーレスのプリミティブへの合理化されたアクセスや、React Server Components を搭載した Next のようなサーバーファーストモデルをますます採用するフロントエンドフレームワークなど、フロントエンドのクラウドエコシステムにおけるイノベーションにより、私たちの業界はウェブがもともと素晴らしいものにしてきた原点 - より速く、よりパーソナライズされ、よりファーストパーティで、かつさらにプライベートな体験 - へと回帰しているのです。”

Guillermo Rauch
Vercel CEO
事実 4

Node.js と Python は依然として AWS Lambda 関数の主要言語

Python と Node.js は、AWS Lambda 開発者の間で今でも最もよく使われている言語であり、実際には、Lambda データセットにおける呼び出しの半分以上が、Python または Node.js で書かれた関数によって行われています。Lambda が最も早くサポートした 2 つの言語のうちの 1 つであることに加え、どちらの言語も Lambda のための堅牢なツールと大規模な開発者コミュニティを提供しています。そのため、組織がサーバーレスシステムを初めて導入する際には、Python と Node.js を利用する傾向があります。

AWS Lambda の呼び出し割合における言語別の比較

Datadog の調査によれば、Java は Lambda 言語の中で 3 番目に人気で、カスタムランタイムと Go がほんの少し後れて続いています。これらの合計は、当社の顧客による Lambda 呼び出し全体の約 4 分の 1 を占めています。Java が 3 番目に人気のある Lambda 言語である理由は、大企業が Java で書かれた既存のワークロードやアプリケーションを Lambda に移行していることが増えているからだと考えられます。

さらに、カスタムランタイムは最も急成長している関数であり、Lambda 関数の呼び出し割合は前年比で 50% 以上増加しています。カスタムランタイムの人気が高まっているのは、サーバーレスコンテナに対する関心が高まっているからでしょう。サーバーレスコンテナは、PHP や Rust など、Lambda がネイティブにサポートしていない言語で関数を記述することを可能にし、サーバーレスの機能を拡張します。

“AWS Lambda で Node、Python、Java、カスタムランタイムを使用して本番ワークロードを 7 年間実行してきましたが、クライアントはこの決定を後悔したことは一度もありません。運用の負担が劇的に軽減され、初期の学習曲線を超えてから、開発者と DevOps の生産性が大幅に向上しました。”

Andy Warzon
Trek10 CTO
事実 5

Java での AWS Lambda 関数のコールドスタート時間は、Python や Node.js の 2 倍

コールドスタートとは、サーバーレスのコンピューティングプラットフォームがリクエストに対応するために新しい実行環境を作成しなければならない状況を指し、これは今日のサーバーレス開発者が直面している主要な懸念点のひとつです。Lambda におけるコールドスタートの影響は、関数がどのランタイムで書かれるかによって異なります。例えば、Node.js と Python の関数はコールドスタート時間が最も短く、Java の関数は最も長くなります。Java の平均コールドスタート時間は、Python のそれと比較してほぼ 3 倍であり、これは Java 仮想マシン (JVM) と Java の実行に必要なライブラリのロードに時間がかかるためだと考えられます。

コールドスタート時間の言語別比較

Datadog の調査では、Lambda 関数に割り当てられるメモリ量がランタイムによって異なることも明らかになっています。これは、Lambda 関数に割り当てられるメモリを増やすと、その関数に割り当てられる CPU の量も増え、コールドスタート時間を短縮できるためだと考えられます。Python や Node.js など、コールドスタート時間がすでに最も短いランタイムは、一般的に Java よりも割り当てられるメモリが少ないのが特徴です。AWS は、プロビジョニング済みの同時実行、プロアクティブな初期化、Lambda SnapStart など、開発者がコールドスタートに対処し、サーバーレス関数のパフォーマンスの影響を軽減するためのさまざまなツールを開発しています。

Lambda 関数の割り当てメモリが 1,024MB を超える割合

“Datadog の 2023 年版「サーバーレスの現状」レポートは、開発者がサーバーレスの運用モデルを採用することで、どのようにモダンなアプリ開発を加速させるかについての洞察を提供しています。Datadog は、開発者のエクスペリエンスを向上させるため、コードの変更なしに関数の起動パフォーマンスを最大 10 倍高速化する Lambda SnapStart for Java など、さまざまな分野でイノベーションを続けています。”

David Nasi
AWS Lambda プロダクト管理責任者
事実 6

ARM での AWS Lambda 利用が過去 1 年で倍増

2021 年、AWS は ARM ベースの Graviton2 プロセッサでの Lambda 関数サポートを発表し、x86 ベースのプロセッサと比較して、より高速な実行時間と最大 34% のコスト削減を約束しました。Lambda を使用しているサーバーレス組織の中で、ARM を採用している組織の割合は過去 1 年間で倍増し、現在では 11% の組織が何らかの形で ARM を使用して Lambda 関数を呼び出しています。

ARM 上で Lambda を利用するサーバーレス組織の割合

ARM を採用したこれらの組織では、ARM 対応ランタイムを使う関数の 29% が ARM 上で実行されています。この採用傾向から、これらの組織は、提案されたパフォーマンスとコストの組み合わせによるメリットを享受している可能性が高いと推測されます。

しかし、これらの数字は、さらに多くの適格な関数が ARM に移行される機会がまだあることを示しています。AWS Lambda 関数の多くがまだ ARM に移行していない一因として、Graviton2 がまだすべての AWS リージョンで利用可能ではなく (最新情報はこちら)、Node、Python、Java、.NET、Ruby、カスタムランタイムのサブセットとしか互換性がないことが挙げられます。これらは普遍的に利用できるものではないため、サーバーレスフレームワークや自動化ツールは、まだデフォルトの設定としてこの技術を採用していません。

お客様との対話を基に考察すると、地域とランタイムの利用可能性が増加し、ARM がサーバーレスツールのデフォルト設定になるにつれて、サーバーレスの採用は拡大し続けることが予想されます。

“ARM ベースの Graviton2 プロセッサを利用した Lambda 関数は、低コストで優れたパフォーマンスを提供します。利用可能な地域が増えるにつれて、デプロイフレームワーク全体でデフォルトの選択肢になることが期待されています。”

Jeremy Daly
AWS サーバーレスヒーロー& Ampt CEO
事実 7

Terraform は大規模組織の間で AWS Lambda のデプロイツールとして人気

Serverless Framework や Terraform のような Infrastructure as code (IaC) ツールは、開発者が手動で Lambda 関数やその他のリソースを大規模にデプロイし設定する課題を克服するのに役立ちます。AWS は IaC プラットフォームである CloudFormation 上に、フレームワークとして CDK、SAM、Chalice を提供しています。これらのツールによって、チームはインフラストラクチャーをより適切に定義し、サーバーレスリソースをプログラム的に管理することができます。当社の観察によれば、組織が成熟し拡大するにつれ、Lambda 関数のデプロイと管理に適した IaC ツールは、予測可能な方法で変化しています。

例えば、Serverless Framework は、Datadog の顧客の間で AWS Lambda 関数を管理する最も人気のある IaC ツールとなっています。アプリケーションとサーバーレスインフラストラクチャーを一緒にデプロイすることを容易にする、合理化されたワークフローを提供しています。これは、開発者コミュニティの強力なサポートとともに、新参者やサーバーレスに焦点を当てているチームにとって、魅力的なエントリーポイントとなっています。

それでも、組織のホスト数が増えるにつれて、AWS Lambda を管理するために Terraform を利用する傾向が見られます。これは Terraform の柔軟性、マルチクラウド対応、および DevOps チームによる幅広い採用と利用が、多様なクラウドインフラを運用する大規模な組織に支持されていることを示しています。

Lambda デプロイツールのホスト数別採用状況

“スタートアップやサーバーレス専門のチームは、Serverless Framework や SST など、サーバーレスアプリケーションを構築するための専用ツールを自由に選択できます。サーバーレス技術が従来のワークロードと並んで組織のインフラストラクチャーの重要な一部となるにつれ、これらのチームはすべてのワークロードを一元管理できるソリューションを優先する必要があります。”

Filip Pyrek
AWS サーバーレスヒーロー& Buttonize.io CEO
事実 8

65% の組織が AWS Lambda 関数を VPC に接続

組織が既存のサービスの一部を Lambda に適応させたり置き換えたりする際には、すべてのサーバーレス関数がインフラ全体で統合されたままであることを確認することが重要です。これを実現するため、多くのチームは Lambda 関数を、広範なコンピューティングリソースとデータベースリソースを含む仮想プライベートクラウド (VPC) に直接接続しています。きめ細かなネットワークアクセス制御とセキュリティを提供するだけでなく、VPC は、大規模なアプリケーションのサーバーレスワークロードを、標準的なデプロイメントにおける Elastic Cloud Compute (EC2) や Relational Data Store (RDS) インスタンスなどの既存のインフラストラクチャーサービスに接続するために、組織にとってますます重要になっています。

過去 1 年間で、Lambda を利用している Datadog のお客様の 65% が、自社の AWS アカウント内の専用 VPC に接続された Lambda 関数を少なくとも 5 つデプロイしています。さらに、多くのお客様 (80%) が少なくとも 1 つの Lambda 関数を専用 VPC に接続しており、10% はすべての関数を独自の VPC で実行しています。

Lambda 関数と VPC の接続

VPC に Lambda 関数を接続する際には、リスクとトレードオフを考慮する必要があります。AWS のデフォルトセキュア VPC を使用しないことで、お客様の組織は共同責任の枠組みの中で、より大きな責任を負う可能性があります。また、AWS は近年、ENI 接続のパフォーマンスを大幅に改善しましたが、VPC にはコールドスタートという追加の懸念点が存在します。

“Lambda を採用するチームは、セキュリティ、パフォーマンス、および機能要件に基づいて、十分に情報を持って決定を下す必要があります。今日、これらの要件には通常、既存のアプリケーション、インフラ、コンプライアンス要件との統合のために VPC に接続する必要性が含まれていますが、VPC はすべてのアプリケーションやケースには適していないかもしれません。アプリケーションやチームが進化するにつれて、RDS プロキシや VPC エンドポイントなど、ネットワーキングとセキュリティを確保する、よりクラウドネイティブでサーバーレスファーストなソリューションへの移行の機会が生じるでしょう。”

Mike Stemle
Arc XP (ワシントン・ポスト傘下) プリンシパルアーキテクト

Datadog Serverless Monitoring を利用することで、サーバーレスアプリケーションのパフォーマンス問題を検出し、解決することができます。

方法論

調査対象

本レポートでは、Datadog の顧客ベースである数千の企業の使用データを集計しました。Datadog のお客様は、企業の規模や業界を問わず、多くの分野で活躍していますが、いくつかの共通の特徴があります。例えば、これらのお客様はソフトウェアインフラストラクチャーとアプリケーションパフォーマンスに真剣に取り組んでいる傾向があります。また、一般のお客様よりも、クラウドプラットフォームやサービスの導入に積極的です。この記事に掲載されているすべての結果は当社の顧客ベースから得られたものであり、全世界の市場の大規模かつ不完全なサンプルであるため、データには偏りが存在する可能性があります。

サーバーレスの定義

AWS、Azure、Google Cloud などのクラウドプラットフォームは、開発者が顧客の問題を解決するために、様々なコンピューティングサービスを提供しています。サーバーレスは、これらのコンピューティングサービスの一部を指すカテゴリーラベルやマーケティング用語として広まっています。

  • 開発者の納品時間と価値創造までの時間の改善
  • 運用コストの削減
  • インフラ設定と管理の抽象化

さらに、これらのサービスのほとんどは、マルチテナントモデルでアプリケーションが消費するリソースに対してのみ課金し、リソースが使用されていない時は課金対象外にスケールダウンする精緻な価格設定モデルにより、コスト削減の機会を提供していますが、その保証はありません。

インフラストラクチャーの正確な抽象化レベルと課金の動作の粒度は、スペクトラム上で確認できます。Datadog は、クラウド全体で見られる 5 つの共通カテゴリーを調査しており、クラウド間およびクラウド内のカテゴリー間で機能の重複や境界の曖昧さが顕著に確認できています。

  • サーバーレスオーケストレーターとコンテナ
  • Application platform as a service (PaaS)
  • 完全に管理されたコンテナアプリケーション
  • Functions as a Service (FaaS)
  • エッジ機能

本レポートでは、主にサーバーレス機能、フルマネージド型のコンテナアプリケーション、およびエッジ機能の採用に焦点を当てています。また、サーバーレスの定義に当てはまらないサービスであっても、エンドユーザーに迅速に価値を提供するために、当社のお客様が選択しているテクノロジーについてより完全なビューを提供する目的で、特定の実証においてサーバーレスオーケストレーターを使用した PaaS とコンテナも考慮しています。

実証 1

2022 年のサーバーレスの現状レポートによれば、各主要クラウド (AWS、Google Cloud、Azure) で稼動している組織の半数以上がサーバーレスを採用していることが明らかになりました。当社では、特定のクラウドで月に 5 台以上のホストを実行している組織を、そのクラウドの顧客と見なしています。また、そのクラウドで月に 5 つ以上の関数または 1 つ以上のサーバーレスアプリケーションを実行している場合も、同様にそのクラウドの顧客と見なします。

2023 年に入り、サーバーレスワークロードの定義と、各クラウド内でのホストベースの利用を検出するために使用するメトリクスのセットを拡張しました。その結果、2022 年に各クラウドで検出された総顧客数は増加したものの、Azure と AWS で検出されたサーバーレス組織の割合は減少しました。しかし、各クラウドはサーバーレスの採用において前年比で着実な成長を続けています。

注: 各クラウドでサーバーレスを採用している組織の割合を決定するために、以下のテクノロジーを監視している顧客を対象としました。

  • AWS: AWS Lambda、AWS App Runner、ECS Fargate、EKS Fargate、AWS CloudFront Functions
  • Azure: Azure Functions、Azure Container Apps、Azure Container Instances
  • Google Cloud: Google Cloud Functions、Google App Engine-Flex、Google Cloud Run

両方の基準を満たす組織もあれば、片方しか満たさない組織もあります。この事実では、2023 年 5 月時点で後者の基準を満たした組織をサーバーレスコンピューティングを採用したとみなし、2022 年 5 月との前年同月比で比較しています。

実証 2

実証 1 のサーバーレス組織の定義を踏襲します。

実証 3

実証 1 のサーバーレス組織の定義を踏襲し、新たなクラウドプラットフォームを利用する顧客を特定するために、Cloudflare Workers、Fastly Compute@Edge、Vercel Functions、Netlify Functions からのメトリクスやログを提出する組織を含めます。

実証 4

2023 年 5 月に監視した Lambda 関数からの起動を、起動メトリクスに関連するランタイムメタデータを利用して分析しました。各言語のランタイムバージョンを組み合わせて、言語レベルでの起動を集計しています。

実証 5

相対的なコールドスタート時間を決定するために、2023 年 5 月に Datadog が強化した init_duration メトリクスを調査しました。各言語のランタイムバージョンを組み合わせて、言語レベルでの初期化継続時間を集計しました。相対的なコールドスタート時間は、各言語のコールドスタート時間の中央値に基づいています。割り当てメモリが 1,024 MB を超える Lambda 関数の割合は、2023 年 5 月に呼び出された Lambda 関数のメタデータに基づいています。

実証 6

2023 年 5 月に呼び出された Lambda 関数のメタデータに基づきます。2023 年 5 月時点で ARM と互換性のあるランタイムを ARM 対応ランタイムと定義します。

実証 7

2023 年 5 月に呼び出された Lambda 関数のメタデータに基づきます。

実証 8

2023 年 5 月からの Lambda 関数の監視サンプルに基づきます。