ホーム

Lambda Web Adapterとは?メリット・デメリットを解説

作成日: 2025-8-20

更新日: 2025-9-9

Lambda Web Adapterとは?メリット・デメリットを解説

この記事を読んだ後に理解できること

  • Lambda Web Adapterの概要について
  • Lambda Web Adapterのメリット・デメリット

Lambda Web Adapterとは?

Lambda Web Adapterとは、Lambdaが提供する拡張機能の1つです。

Lambda Web Adapterのできることや使い方について解説します。

できること:Webアプリケーションを動かせる

Lambda Web Adapterを使うとLambda上でNext.jsやExpress.jsなどのフレームワークを使ったWebアプリケーションを動かすことが可能です。

一部抜粋ですが、そのほかにも以下のフレームワークを使ったWebアプリケーションの実行が可能です。

  • FastAPI
  • Flask
  • SpringBoot
  • Gin
  • Remix
  • ...etc

Lambda関数は文字どおり関数の実行がメインであり、フレームワークを使ったWebアプリケーションをそのまま使うことはできません。

Lambda Web Adapterを使うとLambda上でWebアプリケーションの実行が可能になります。

できること:AWSリソースとの連携

Lambda Web Adapterでは、API Gateway Endpoint、Lambda Function URL、Application Load Balancerをサポートしています。

これらと組み合わせることでLambdaをAPIサーバー、アプリケーションサーバーとして運用することが可能です。

使い方①:Docker Imageを使う

普段使っているDockerfileに以下の一文を追加するだけでLambda Web Adapterを使ったデプロイが可能です。

COPY --from=public.ecr.aws/awsguru/aws-lambda-adapter:0.9.0 /lambda-adapter /opt/extensions/lambda-adapter

あとはbuildしたDocker ImageをECRにpushし、Lambda関数でそのImageを指定してあげるだけです。

使い方②:Zip packageを使う

Zip Packageを使う場合、3つのステップを使う必要があります。

① Lambda Web Adapterのレイヤーを作成する

以下はServerless Application Modelを使う例です。

AWSTemplateFormatVersion: '2010-09-09'
Transform: AWS::Serverless-2016-10-31
Description: >
  serverless-nextjs-demo

  Sample SAM Template for serverless-nextjs-demo
  
Globals:
  Function:
    Timeout: 10

Resources:
  NextjsFunction:
    Type: AWS::Serverless::Function
    Properties:
      CodeUri: app/
      MemorySize: 256
      Handler: run.sh
      Runtime: nodejs20.x
      Architectures:
        - x86_64
      Environment:
        Variables:
          AWS_LAMBDA_EXEC_WRAPPER: /opt/bootstrap
          AWS_LWA_ENABLE_COMPRESSION: true
          RUST_LOG: info
          PORT: 8000
      Layers:
        - !Sub arn:aws:lambda:${AWS::Region}:753240598075:layer:LambdaAdapterLayerX86:25

② 環境変数AWS_LAMBDA_EXEC_WRAPPER = /opt/bootstrapを設定する

③アプリケーションを実行するためのシェルスクリプトを作成する。例:run.sh.

#!/bin/bash

[ ! -d '/tmp/cache' ] && mkdir -p /tmp/cache

HOSTNAME=0.0.0.0 exec node server.js

Lambda Web Adapterのメリット

コストを抑えられる

Lambda上でWebアプリケーションを実行できるので、ECS等のコンテナサービスを使うよりコストを抑えることができます。

Lambda Web AdapterはLambdaの拡張機能になりますが、課金対象ではないようです。

ローカル上でも簡単に実行できる

Dockerfileを使うことができるので、当然ローカルでも実行が可能です。

ただし、Zip Packageで使う場合はDockerfileほど簡単ではないです。

Lambda Web Adapterのデメリット

コールドスタートの影響を受ける

Webアプリケーションランタイムの起動、アダプターの初期化、アプリケーションの初期化が行われるためコールドスタートによる遅延が発生します。

ただし、コールドスタートは通常のLambda関数でも発生します。

Lambda Web Adapterを使ったアプリケーションの実行では通常のLambda関数よりわずかに処理が長くなってしまうだけのようです。

参考

https://aws.amazon.com/jp/builders-flash/202301/lambda-web-adapter/

https://github.com/awslabs/aws-lambda-web-adapter