For a single 200ms request followed by 345 seconds of inactivity, AWS Lambda Web Functions can result in roughly 1,700 times the request duration in metered memory time. This finding led Easel.sh, a platform for running web applications, to abandon the service in favor of building its own compute infrastructure to gain control over resource allocation and costs.

The Five-Minute Idle Problem

While AWS Lambda Web Functions are designed to scale to zero, the platform bills for memory consumed over the entire life of an execution environment. Easel.sh discovered that these environments do not terminate immediately after a request finishes, instead remaining active for 5–7 minutes.

In experiments across six representative environments, the idle periods measured between 313 and 411 seconds. Because there is no configurable idle timeout to shorten these windows, the cost of memory remains active even when the application is doing no work.

A chart showing idle periods for six different environments after their last completed request.
Easel.sh measured idle periods between 313 and 411 seconds across six representative environments.www.easel.sh

This figure illustrates the specific idle periods discovered by Easel.sh during their testing of AWS Lambda Web Functions.

Idle Periods Measured After Last Request (Seconds): Environment 1 313s; Environment 2 355s; Environment 3 358s; Environment 4 391s; Environment 5 410s; Environment 6 411s
Idle Periods Measured After Last Request (Seconds)easel.sh

Chart drawn by HN Digest from figures reported by easel.sh; values are shown as written in the source.

Economic Impact on Low-Traffic Workloads

The billing structure poses a specific challenge for applications with unpredictable traffic. For a steady stream of requests, the idle-memory cost is spread across many interactions; however, for apps receiving only a few requests per day, the cost of a single request can be dominated by the subsequent idle period.

Easel.sh noted that memory accounted for approximately 88% of the calculated compute and request costs in their tests. For a platform supporting thousands of independent deployments, these cumulative idle charges create a different economic profile than high-volume, sustained traffic.

Performance and Infrastructure Trade-offs

To solve the billing issue, Easel.sh moved application execution onto servers they operate themselves, using traditional Lambda only for overflow. This move allows them to share capacity across multiple applications on a single machine, eliminating the per-environment idle fee.

A diagram showing requests entering the Easel.sh edge and being routed to shared compute infrastructure.
The Easel.sh infrastructure routes requests to shared compute, using AWS Lambda only for overflow.www.easel.sh

This diagram explains the architectural shift to shared capacity to mitigate idle-time costs.

Initial benchmarks showed that this custom infrastructure delivered 1.5–3× faster median warm-request times across various workloads, including JSON APIs and server-side rendering. Furthermore, the custom host achieved 3.5× faster cold starts after a 12-minute idle period compared to AWS Lambda Web Functions.

A bar chart comparing median time to first byte for warm requests across different platforms.
Benchmarks showing 1.5–3× faster median warm-request times for Easel.sh's custom infrastructure.www.easel.sh

This chart provides the data for the performance improvements observed in warm-request scenarios.

A chart comparing cold start times for the first request after a 12-minute idle period.
Easel.sh's custom host achieved 3.5× faster cold starts compared to AWS Lambda Web Functions.www.easel.sh

This visual supports the claim regarding significantly faster cold starts on the self-operated infrastructure.

Limitations of the Findings

The performance data provided by Easel.sh is based on a single region (us-east-1) and a specific Next.js 16 application. The company noted that these are early results and do not constitute a comprehensive, multi-region performance study or a benchmark of sustained throughput.

While the move to self-operated compute provides better cost control and performance in these tests, it introduces the responsibility of managing capacity, handling failures, and ensuring efficient resource distribution across a diverse set of user applications.

What Hacker News readers are saying

  • Experience: One commenter who measured the behavior reported that while the idle time can be shortened by manually exiting the process, AWS records this as a runtime error, making it unreliable for production use. comment ↗
  • Skeptical: Several commenters suggested that the cost might be amortized over sustained loads because containers are reused, meaning the idle billing might not significantly impact high-traffic applications. comment ↗
  • Skeptical: Another commenter pointed out that the article notes this behavior is already documented by AWS, suggesting the issue might be less of a surprise than the headline implies. comment ↗

Summarized opinions from the Hacker News thread, not verified facts. Read the full discussion ↗