AWS는 AWS Lambda Web Functions를 발표했다. 이는 Lambda 내에서 웹 애플리케이션과 표준 HTTP 서버를 직접 실행할 수 있게 하는 새로운 형식으로, 기존 이벤트 핸들러 모델에 맞추기 위해 코드를 다시 작성할 필요가 없다. Express, Hono, Fastify, Next.js 또는 모든 Node.js 프레임워크로 구축한 애플리케이션을 특수 어댑터나 추가 인프라 관리 없이 단일 명령으로 배포할 수 있다.
이 서비스는 웹 애플리케이션, API, 서버 측 렌더링, 동시 요청과 I/O 집약적 처리를 다루는 대화형 HTTP 워크로드를 대상으로 한다.
Lambda 내부의 새로운 실행 모델
AWS는 이제 모두 Firecracker 격리 기술을 기반으로 하는 세 가지 구분된 실행 모델을 Lambda에서 제공한다. Event Functions는 이벤트 처리, 메시지 소비, AWS 서비스에서 발생하는 호출에 계속 적합하다. 이 모델에서는 핸들러가 하나의 이벤트를 받아 전통적인 방식에 따라 응답을 반환한다.
Web Functions는 기본 HTTP 모델을 사용하며, 애플리케이션이 포트를 수신하고 표준 요청을 처리한다. 하나의 실행 환경은 최대 128개의 동시 요청을 처리할 수 있다. 세 번째 모델인 Lambda MicroVMs는 신뢰할 수 없거나 사용자가 생성한 코드를 실행하기 위해 격리된 환경, 지속 상태, 고객이 관리하는 수명 주기를 제공한다.
개발자에게 실질적으로 달라지는 점
AWS는 Web Functions가 웹 애플리케이션을 전 세계에 배포하기 위해 여러 구성 요소를 조합해야 할 필요성을 줄인다고 설명한다. 서비스가 확장, 리전 간 복제, 지연 시간 기반 라우팅을 담당하는 반면, 코드는 개발자가 로컬에서 실행하는 HTTP 서버에 더 가까운 형태로 유지된다.
Web Functions의 요금은 프로세서 사용 시간을 기준으로 산정되는 반면, 메모리는 실행 환경이 존재하는 전체 기간을 기준으로 산정된다. 따라서 애플리케이션이 데이터베이스 쿼리나 API 호출을 기다리는 시간에는 적은 프로세서 시간이 소비된다. 이는 서버 측 렌더링, API, 토큰을 스트리밍하는 AI 추론 엔드포인트처럼 I/O 의존도가 높은 워크로드에 적합할 수 있는 모델이다.
그렇다고 해서 모든 애플리케이션의 비용이 자동으로 낮아지는 것은 아니다. 결과는 사용 패턴, 환경 유지 시간, 메모리 사용량, 요청 규모에 따라 달라진다.
배포, 분산 및 버전
AWS CLI는 aws lambda-web deploy와 같은 명령을 사용해 코드를 패키징하고 Web Function을 생성하며, 첫 번째 리비전을 배포하고 HTTPS 엔드포인트를 연결한다. 애플리케이션은 us-east-1, eu-west-1, ap-northeast-1과 같은 여러 리전에 배포할 수 있으며, Lambda는 단일 글로벌 주소를 통해 최선의 노력 방식으로 응답 시간이 가장 짧은 리전으로 요청을 라우팅한다.
서비스는 각 버전을 변경할 수 없는 코드 스냅샷으로 취급한다. 또한 엔드포인트에서 버전 간 트래픽을 분산할 수 있으며, 예를 들어 요청의 90%를 현재 버전에, 10%를 새 버전에 전달하는 canary 방식의 점진적 배포도 지원한다.
CloudFront 통합 및 초기 제공 범위
Web Function 엔드포인트를 Amazon CloudFront의 오리진으로 사용할 수 있다. 이를 통해 정적 자산은 네트워크에 캐시하고 동적 요청은 웹 함수로 전송할 수 있다. AWS는 CloudFront 오리진 액세스 제어를 엔드포인트에 연결하는 기능도 지원한다. 이를 통해 지정된 도메인만 엔드포인트를 호출하도록 허용하고, 엔드포인트가 노출되거나 애플리케이션 내부에 별도의 인증 메커니즘을 추가하는 일을 방지할 수 있다.
이 서비스는 출시 시 US East (N. Virginia), US East (Ohio), US West (Oregon), Asia Pacific (Tokyo), Europe (Ireland)에서 제공된다. 초기에는 Arm64에서 Node.js 24 (nodejs24.x)를 사용하며, 프라이빗 가상 네트워크 내부에 있는 리소스에 접근하기 위해 Amazon VPC에 연결하는 기능을 지원한다.