AWS Lambda Web Functionsは、Amazonのクラウド(AWS)に2026年10月に加わった、WebサイトやWebアプリを動かすための新しい仕組みです。作り手がふだん使っている形のまま、AWS上に載せられます。待ち時間の分まで料金を払わずに済む場合があるとされ、技術ブログやSNSで名前を見かけるようになりました。
ひとことで言うと、何をするためのものですか?
AWS Lambda Web Functionsは、ふだんのWebアプリを作り替えずにAWSのクラウドで動かし、アクセス数に合わせて自動で増減させるための新しい実行形態です。AWS自身が公式ブログで、標準的なHTTP Webアプリを、イベントハンドラへ書き直さずにLambdaで動かせる新しい形態だと紹介しています。
※AWS(Amazon Web Services)とは: Amazonが提供する、コンピューターをネット越しに借りられるサービスです。
※Lambda(ラムダ)とは: AWSの中で、プログラムを必要なときだけ動かし、動かした分だけ料金を払う仕組みです。
※Webアプリとは: ネットショップや予約サイトのように、ブラウザから使うアプリのことです。
たとえるなら、レストランの店員の働き方
従来のLambdaは、お客さん1人に店員を1人つけ、お客さんが増えるたびに新しい店員を呼ぶ店のようなものです。新しい店員が来るまでお客さんは待たされます。店員は料理の完成を待つ間も立っていて、その間の時給もかかります。
Web Functionsは、1人の店員が同時に何人ものお客さんを受け持つ店に近いです。料理待ちの間は別のお客さんの注文を聞けます。費用も、実際に手を動かした時間を中心に数えます。
実際の仕組みでは、店員にあたるのが「実行環境」(プログラムを動かす小さな箱)です。1つの実行環境が最大128件のアクセスを同時にさばけると、AWSの公式ブログにあります。
これまでと何が変わるのか
- 費用の数え方が変わります。 データベースや他のサービスの返事を待っている間は、CPU(計算をする部分)の料金がほとんどかかりません。待ち時間が長いサービスでは、費用を抑えられる場合があるとAWSは説明しています。
- アクセスが急に増えても、待たされにくくなる可能性があります。 すでに動いている環境を複数のアクセスで共有しやすくなるためです。ただし、その効果を測った比較データは今回の資料にはありません。
- 作る人の手間が減ります。 これまでは、Lambda用に「変換部品」(アダプター)を挟む必要がありました。Web Functionsでは、その部品なしでアプリを載せられます。
AWS Lambda Web Functionsとは?誰が作った何なのか
AWS Lambda Web Functionsは、AWSが2026年10月12日に正式公開(GA)した、Lambdaの新しい形態です。GAとは、お試し版ではなく、誰でも使える正式な提供という意味です。クラスメソッドの記事によると、10月1日にSDKとCLI(開発者向けの道具)へ先行して追加されていました。
Lambdaの3つの形態
AWSの説明では、Lambdaは3つの形態になりました。どれも、利用者同士を隔てる技術「Firecracker」の上に作られています。
- Event Functions: 従来のLambdaの新しい呼び名です。何かの出来事(イベント)を受け取って処理し、結果を返します。1つの環境が一度に扱うのは1件で、動いた時間の長さで課金されます。
- Web Functions: 今回の主役です。ポート(アプリが外からの通信を待つ入り口)で待ち受ける普通のWebサーバーを、そのまま動かせます。
- MicroVMs: 信頼できないコードや、利用者が作ったコードを安全に動かすための隔離された環境です。資料では、位置づけの説明にとどまっています。
ChatGPTなどとの違い
ChatGPTのように、文章を作ってくれるサービスそのものではありません。Webサイトやアプリ、AIチャットの「裏側のサーバー」を動かす場所の一種です。
実際、AWSは用途の例としてAIの返事を少しずつ流すエンドポイント(通信の受付口)を挙げています。Zennの記事でも、公式ドキュメントにLLM(大規模言語モデル)の応答を返す例があると紹介されています。
なぜ話題になっているのですか?
理由は、これまで少し面倒だった「Webアプリを手軽にLambdaで動かす」手順が、仕組みとして最初から用意されたからです。
従来も、アダプターを使えばLambdaでWebアプリを動かせました。Qiitaの記事は、ここ数年でそのやり方が一般的になってきたところにWeb Functionsが登場した、と経緯を整理しています。
どこで盛り上がっているのか
発表から数日のうちに、技術系の投稿サイトでは試した記録が相次ぎました。ZennにはNext.jsを載せた記事とHonoを使った記事が、QiitaにはHonoで試した記事が出ています。クラスメソッドも東京リージョンで試した記事を公開しました。
企業の動きもありました。ローカル開発ツールを提供するLocalStackは、プレスリリースで、公開の翌日にWeb Functions対応を発表しています。これは自社製品の告知なので、評価というより「対応した」という事実の資料として読むのが良さそうです。
Zennの筆者は、待ち時間が長いAPIサーバーの用途について「こっちがメインな気がしてきた」と書いています。東京リージョンで使えることも、日本の開発者の関心を集めた一因とみられます。
仕組み・主な特徴は?
1. 普通のWebサーバーのまま動かせる
できること: Express、Hono、Fastify、Next.jsなどで作ったアプリを、Lambda専用の書き換えなしで動かせます。これらは、Webアプリを作るための部品セット(フレームワーク)です。
仕組み: Lambdaが、環境変数「AWS_LAMBDA_HTTP_ENDPOINT」に待ち受けの住所(ホストとポート)を入れて渡します。アプリはその住所で待ち受けます。AWSの公式ブログは、手元のパソコンで動かすコードと違うのはこの点だけだと説明しています。
2. 1つの環境で最大128件を同時に処理できる
できること: アクセスが集中しても、動いている環境を共有できます。従来のLambdaは1つの環境が同時に1件しか扱えなかったと、Qiitaの記事にあります。
仕組み: 上限は環境ごとに128件です。Qiitaの筆者は、同時に複数のリクエストを送って試しました。表示された範囲では、同じ環境で複数の処理が重なっていた様子と、別の環境に回った様子が出力から読み取れます。
3. 実際にCPUを使った時間で課金される
できること: データベースやAIの返事を待つ時間が長いアプリでは、費用を抑えやすくなります。
仕組み: 数えるのは、CPUを使った時間と、実行環境が存在する間のメモリです。メモリは同時に処理している複数のアクセスで共有されます。クラスメソッドの記事によると、課金の対象は次の4つで、時間は1ミリ秒(1000分の1秒)単位で計算されます。
- リクエスト数
- アクティブなCPU時間
- 実行環境が動いている間のメモリ
- 標準のデータ転送量
同記事の単価は次のとおりです。比較に使われているのは、従来のLambda(Event Functions、Arm)の単価です。
| 項目 | Web Functions(バージニア北部) | 従来のLambda(Arm) |
|---|---|---|
| リクエスト(100万件あたり) | $0.30 | $0.20 |
| メモリ(GB秒あたり) | $0.0000036667 | $0.0000133334 |
| CPU(vCPU秒あたり) | $0.0000276944(使った時間だけ) | メモリ料金に含まれる |
東京リージョンのWeb Functionsは、リクエストが100万件あたり$0.30、CPUが1vCPU秒あたり$0.0000322421、メモリが1GB秒あたり$0.0000042688です。リクエスト単価は高め、メモリ単価は低めに設定されています。どちらが得かは使い方次第で、資料は総額の比較までは示していません。
※vCPU秒とは: 計算を担当する部分を1つ分、1秒間使った量です。
4. 複数の地域への展開と、段階的な切り替え
できること: 複数のリージョン(AWSの拠点がある地域)に、簡単に展開できます。新しいコードへ少しずつ切り替えることもできます。
仕組み: AWSの説明では、「リビジョン」はデプロイしたコードの変更できない記録です。「エンドポイント」はアクセスを受けるHTTPSのURLで、リビジョンへの振り分けや、複数リビジョンへの分割ができます。Qiitaの筆者は、マルチリージョンを選ぶと「global」のURLが作られ、自動で冗長化されると読み解いています。Zennの記事は、ゼロスケール(アクセスがなければ環境が0になる)も特徴に挙げています。
5. 認証の設定
できること: URLへのアクセスを、AWSの認証で守れます。Qiitaの筆者がコンソールで試したところ、IAM認証にした状態で直接URLを開くと403(アクセス禁止)が返りました。CloudFront(配信サービス)経由で、許可するための設定を加えると通りました。
仕組み: コンソールの認証タイプには「IAM認証」と「アプリケーションマネージド認証」があります。後者は、認証をアプリ側で行う選択肢だと、筆者は解釈しています。
自分に関係ありますか?向いている人・向いていない人
エンジニアでない方が、自分で直接使うものではありません。使うのはWebサービスを作る開発者で、利用者は、その結果として裏側の仕組みに触れる形になります。企画や営業の方にとっては、開発チームの会話や見積もりの場で出てくる言葉、という距離感です。
向いているケース
- データベースや外部APIの返事待ちが長いWebサービス
- AIの返事を少しずつ返すAPIサーバー(AWSの説明にある用途)
- Next.jsなどで作った、サーバー側で画面を作るタイプのWebアプリ
- アクセスの波が大きく、普段はほとんど使われないサービス
向いていない、または確認が必要なケース
- Node.js以外の言語で作っているアプリ。現時点ではNode.js 24のみ対応で、Go、Python、Javaは未対応とZennの記事にあります。
- キューの処理や他のAWSサービスからの呼び出しなど、イベント処理が中心の用途。AWSは、これらにはEvent Functionsが向くと説明しています。
- 利用者が書いたコードを安全に動かしたい用途。この場合は、MicroVMsが想定されています。
非エンジニアの方が確認するなら、「自社のサービスはNode.jsで作っているか」「東京リージョンで足りるか」を担当者に聞くのが手がかりになります。
使い方・始め方
ここからは実際に触ってみたい人向けです。読み飛ばしても全体像は分かります。
前提
- AWSの認証情報を設定済みであること
- AWS CLIが新しいこと。ZennのHono記事は2.37.13以上、Next.js記事は最新版でないと「lambda-web」が出てこないと注意しています。
- アプリがNode.js 24で動くこと
手順1: ポートで待ち受けるアプリを用意する
AWSのブログにあるExpressの例を、少し簡略化して示します。
import express from 'express';
const app = express();
const [host, port] = process.env.AWS_LAMBDA_HTTP_ENDPOINT.split(':');
app.get('/', (req, res) => {
res.json({ message: 'Hello from Lambda Web Functions!' });
});
app.listen(port, host, () => {
console.log('Server running on port ' + port);
});
手元で動かすときは、環境変数を自分で指定します。
AWS_LAMBDA_HTTP_ENDPOINT=127.0.0.1:3000 node index.js
手順2: 1つのコマンドでデプロイする
aws lambda-web deploy --name my-web-app --code ./my-app
クラスメソッドの記事によると、deployは依存パッケージを解決しません。先にnode_modulesを用意しておく必要があります。
ひな形ごと試すなら、次のコマンドでサンプル生成からデプロイまで進みます。同記事では約26秒でした。
aws lambda-web deploy --name ga-hello --hello-world --create --region ap-northeast-1
初回のデプロイでは、S3バケット(ファイルの保管場所)とIAM実行ロール(動かすための権限)が自動で作られます。最後にHTTPSのURLが返ります。Zennの記事によると、Web Functionと最初のリビジョン、エンドポイントも作られます。
手順3: 試し終わったら削除する
aws lambda-web delete-web-function --function-name my-next-app --region ap-northeast-1
途中で作られたS3バケットやIAMロールは、別に削除する必要があります(Zennの記事)。
Next.jsの場合は、設定でoutput: standaloneを指定し、ビルド後に必要なファイルをコピーして入口のスクリプトを置きます。公開までは約5分だったそうです。詳しい手順は同記事を参照してください。
注意点・現時点で分かっていないこと
制約
- 言語: Node.js 24(nodejs24.x)のみです。ZennのHono記事はArm64のみとも書いています。
- リージョン: バージニア北部、オハイオ、オレゴン、東京、アイルランドの5つです。
- SAM CLI: 未対応です(同記事)。SAM CLIはAWSの開発者向けの別の道具です。デプロイにはaws lambda-web deployを使います。
- メモリ: 環境あたり固定2GBと同記事にありますが、他の資料には記載がなく、公式での確認が必要です。
資料間で違って見える点
- 公開までの時間: AWSのブログは1分未満、クラスメソッドのサンプルは約26秒、ZennのNext.jsは約5分としています。アプリの内容や手順で変わるため、矛盾というより条件の違いと考えられます。
- 待ち受けポート: クラスメソッドのひな形は3000番ポートを使うコードです。一方、同じ記事のExpress例や他の資料の例は、環境変数から受け取っています。細かい仕様は公式ドキュメントで確認してください。
分かっていないこと
- 無料枠の有無: 資料には記載がありません。最新の条件は公式の料金ページで確認してください。
- 実際の速度や費用の削減幅: 「速くなる」「安くなる場合がある」はAWSや筆者の説明で、資料に独立した比較測定はありません。
- MicroVMsの詳細: 位置づけの説明だけで、料金や使い方は資料からは確認できません。
- 認証の選び方: アプリ側で認証を行う選択肢は、守りをアプリ側で用意しておく前提だと筆者は読み解いています。公開範囲は慎重に決めたほうがよさそうです。
LocalStackは、自社のローカル環境でWeb Functionsを試せるとプレスリリースで発表しています。対象は同社のLocalStack for AWSの顧客で、10月22日にはAWSと共同のウェビナーも予定されています。
まとめ
- AWS Lambda Web Functionsは、普通のWebアプリを書き換えずにAWSのLambdaで動かせる、新しい形態です。
- 1つの環境で最大128件を同時に処理でき、待ち時間の長いアプリで費用を抑えられる場合があるとAWSは説明しています。
- 非エンジニアが直接使うものではなく、使っているサービスの裏側の選択肢として関わってきます。
- 現時点ではNode.js 24のみ対応で、東京を含む5つの地域で使えます。
- 無料枠や実測の比較は資料からは分からないため、導入を考えるなら公式の情報を確認してください。
よくある質問
プログラミングができなくても使えますか?
資料にある使い方は、開発者がコマンドでアプリをAWSに載せる手順です。企画や営業の方が直接触る場面は資料に出てきません。担当エンジニアが採用すると、使っているサービスの裏側に関わる、という距離感です。
無料で試せますか?
資料には無料枠や無料トライアルの記載がなく、現時点では確認できません。課金の対象はリクエスト数、アクティブなCPU時間、実行環境が動いている間のメモリ、データ転送量とされています。最新の条件は公式の料金ページで確認してください。
Lambda Web Functionsを使えば、普段使うサービスは速くなりますか?
AWSは、アクセスが急に増えたときに動いている環境を共有でき、待たされにくくなると説明しています。ただし資料には、実際のサービスでどれだけ速くなるかを示す比較測定はありません。効果は作り方や使い方次第です。
東京リージョンで使えますか?どの言語に対応していますか?
提供リージョンには東京(ap-northeast-1)が含まれ、バージニア北部、オハイオ、オレゴン、アイルランドを加えた5つです。対応ランタイムはNode.js 24のみで、Go、Python、Javaは未対応と資料にあります。