Upgrade to Pro — share decks privately, control downloads, hide ads and more …

【AWSの新サービス】AWS Lambda Web Functions とは何か

Sponsored · SiteGround - Reliable hosting with speed, security, and support you can count on. →

【AWSの新サービス】AWS Lambda Web Functions とは何か

Avatar for 赤神青空

赤神青空 PRO

October 26, 2026

Video

More Decks by 赤神青空

Other Decks in Programming

Transcript

  1. ▪2026年10月12日、AWS 何が発表されたか が Lambda Web Functions を発表 新しく加わる 名前が変わる Lambda

    Web Functions これまでの Lambda HTTP をポートで直接受ける 1つの環境で同時に複数を処理 待っている間の CPU は課⾦なし 今ココ 概要 Lambda Event Functions 名前だけの変更 コードの変更‧再デプロイは不要 2/18
  2. ▪関数 URLこれまで HTTP はどう受けていたか は、リクエストをイベントに変換してハンドラーに渡す 関数 URL(Event Functions) ブラウザ などの

    クライアント HTTP リクエスト イベント(JSON) ハンドラー handler(event) 関数 URL HTTP レスポンス 戻り値のオブジェクト 戻り値は statusCode‧headers‧body の形で返す 今ココ しくみ 3/18
  3. ▪自分の Web Functions は HTTP をどう受けるか HTTP サーバーが、そのままリクエストを受ける Web Functions

    実⾏環境 ブラウザ HTTPS(443) などの クライアント HTTPS エンドポイント TLS は Lambda が終端 ⾃分の HTTP サーバー (Express‧Hono など) HTTP のまま AWS_LAMBDA_HTTP_ENDPOINT の host:port で待ち受ける イベントへの変換も、変換のアダプターも挟まない 今ココ しくみ 4/18
  4. ▪渡されたコードはどう書くか host と port で待ち受けるだけ Lambda が環境変数 AWS_LAMBDA_HTTP_ENDPOINT に host:port

    を入れて渡す(ドキュメントの例) javascript const express = require('express'); const app = express(); app.get('/', (req, res) => res.send('hello')); const [host, port] = (process.env.AWS_LAMBDA_HTTP_ENDPOINT || 'localhost:3000').split(':'); app.listen(port, host); 今ココ しくみ 5/18
  5. ▪通常の 1つの環境が同時に受ける数 Event Functions は1つずつ、Web Functions は同時に複数 Event Functions Web

    Functions リクエスト 実⾏環境 1 リクエスト リクエスト 実⾏環境 2 リクエスト リクエスト 実⾏環境 3 リクエスト 処理中の環境は、ほかを受けない 今ココ 同時実行 実⾏環境 1 (同時に処理) 1つの環境の上限:1〜128(既定 64) 6/18
  6. ▪動いていた時間 これまでの Lambda は何に課金していたか × 設定したメモリ ms リクエスト ms 処理

    DB の応答を待つ CPU を使っている 課⾦ 待っている(CPU はほぼ使わない) 処理 課⾦される ms ぜんぶ × 設定したメモリ(GB 秒) 実⾏時間 = コードが動き始めてから戻るまで 設定したメモリに⽐例して、CPU も割り当てられる 例の数字は料⾦ページの例(1回 200 ms‧うち CPU ms) 今ココ 課金 8/18
  7. ▪CPU は動いている時間だけ、メモリは環境がある間 Web Functions は何に課金するか ms リクエスト CPU メモリ ms

    処理 DB の応答を待つ CPU を使っている 待っている(CPU はほぼ使わない) 課⾦ 待っている間の CPU は課⾦なし 処理 課⾦される 課⾦ 環境がある間ずっと(リクエストの間も) 同時に受けたリクエストは、 1つの環境の CPU とメモリの料⾦を分け合う 今ココ 課金 9/18
  8. ▪時間の課金が「CPU」と「メモリ」の2つに分かれた 料金の単位 Event Functions Web Functions リクエスト $0.20 / 100万回

    $0.30 / 100万回 時間の課⾦ 動いていた時間 × 設定したメモリ アクティブな CPU の時間 + 使っているメモリ 単価 $. (Arm) / GB 秒 CPU $ . / vCPU 秒 メモリ $0.0000036667 / GB 秒 (Arm) バージニア北部の値‧1 ms 単位(料⾦ページ) 今ココ 課金 10/18
  9. ▪1回 200料金ページの例で計算する ms でも、CPU として払うのは 50 ms 分 料⾦ページの例:I/O の多い

    API ⽉ 1,000万回‧1回 200 ms のうち CPU ms‧メモリ 0.29 GB‧環境 1つ CPU 1,000万回 × 0.05 秒 = 50万 vCPU 秒 $ . メモリ . GB × , , 秒(30⽇) $. リクエスト 1,000万回 × $0.30 / 100万回 $. 合計 $19.61 今ココ 課金 11/18
  10. ▪単価と、メモリのかかり方が変わる いつも安くなるわけではない リクエストの単価は上がる Event Functions:$ . / 万回 Web Functions:$

    . / 万回 メモリは、待ちの間もかかる 環境がある間は、リクエストが 来ていない間もメモリの料⾦がかかる 料⾦ページの例は、無料枠とデータ転送を除いて計算している 今ココ 課金 12/18
  11. ▪Web アプリを動かすための機能がそろっている ほかにできること ストリーミング マルチリージョン VPC リビジョン 追加の設定なしで、 レスポンスを少しずつ返せる コネクターを通して、

    VPC の中のリソースへ 今ココ 機能 1つのエンドポイントで、 近いリージョンへ振り分ける 2つのリビジョンに 重みを付けて振り分ける 13/18
  12. ▪始まった時点では いま使える範囲 Node.js だけ、リージョンは5つ ランタイム:Node.js だけ(nodejs .x) Java‧Python‧.NET などは、Event Functions

    か Lambda MicroVMs を使う リージョン:5つ バージニア北部 今ココ 機能 オハイオ オレゴン 東京 アイルランド 14/18
  13. ▪HTTP を受けるなら どちらを使うか Web、イベントで動くなら Event 今ココ 選び方 Web Functions Event

    Functions HTTP を直接受ける イベントを受けて動く Web アプリ‧SSR キューのメッセージ REST‧GraphQL の API ファイルのアップロード ストリーミングのレスポンス イベントで動く処理 15/18
  14. ▪自分のサーバーをそのまま載せて、待っている間の まとめ CPU は払わない ⾃分の HTTP サーバーを、そのまま載せられる しくみ 1つの環境で、同時に複数のリクエストを処理する 同時実⾏

    Express や Hono が、渡された host:port で待ち受けるだけ 上限は1〜128(既定 64)。コードは並⾏に呼ばれても安全に書く 待っている間の CPU は課⾦されない 時間の課⾦はアクティブな CPU と使っているメモリ。メモリは環境がある間かかる 今ココ まとめ 課⾦ 16/18
  15. ▪待っている間の クイズの答えは「B」 CPU は課金されず、メモリは環境がある間かかる 今回のクイズ Web Functions で、DB の応答を 待っている間に料⾦がかかるのはどれ?

    待っている間は CPU をほとんど使わず、 その間の CPU は課⾦されない。 メモリは、環境がある間ずっとかかる 答えは B 今ココ まとめ とメモリの両⽅ A CPU 待っている間の CPU は課⾦されない B メモリだけ CPU は課⾦されず、メモリはかかる だけ C CPU 逆。かかるのはメモリのほう D どちらもかからない メモリは環境がある間かかる 18/18