T1
AWS Lambda — One Function, Billed by the Tenth of a Second
Metadata
- Date
- Decade
- 2010s
- Tier
- T1
- Timelines
- A History of Cloud Computing
- Sources
- 07
- Connections
- 02
AWS Lambda was announced on 13 November 2014, at Amazon's re:Invent 2014 conference, and released the same day as a preview. It ran a piece of code — a function — in response to an event, and charged only for the requests and the time the code actually ran, in units of 100 milliseconds. There was no server to choose, size or patch. Lambda left preview and was declared ready for production on 9 April 2015; support for a second language, Java, followed on 15 June 2015.
The idea now goes by the name serverless. In November 2014 it was a narrow service: one language, a 60-second limit and three regions.
What was announced
Jeff Barr's post on the AWS blog that day opened with the goal: to let developers focus on their code in a cloud environment where scalability and reliability could be "simply taken for granted". Accounts from the conference put the announcement in Werner Vogels's keynote on the second day, which also introduced the EC2 Container Service for running Docker containers.
The preview had clear limits:
| Item | Preview (November 2014) |
|---|---|
| Language | Node.js only |
| Memory | 128 MB to 1 GB per function |
| Maximum run time | 60 seconds |
| Regions | US East (N. Virginia), US West (Oregon), Europe (Ireland) |
| Event sources | Amazon S3, DynamoDB, Kinesis streams |
| Billing | Per request, plus compute time in 100 ms units |
| Free tier | 1 million requests and up to 3.2 million seconds of compute a month |
The memory setting did more than set memory. According to Barr, it also determined the share of CPU, network and I/O bandwidth a function received. The free tier's compute allowance depended on the memory chosen for the same reason.
How it worked
A Lambda function was a stateless piece of code. It could not keep durable data on the machine it ran on; Barr's post said functions should use S3 or DynamoDB instead. AWS started copies when events arrived and stopped them when they were done.
The examples were about reacting to things that had already happened inside AWS: an image uploaded to an S3 bucket that needed a thumbnail, a change in a DynamoDB table, a record arriving on a Kinesis stream. Barr stressed that there were no EC2 instances to launch or manage and no capacity to reserve. The bill covered the work alone.
That billing was the real change. Since S3 in 2006, AWS had sold capacity by the gigabyte-month and the instance-hour. Lambda sold it by the request and the tenth of a second.
From preview to production
On 9 April 2015 Barr announced that Lambda was in full production. The same update added:
- Synchronous invocation, so a caller could wait for a function's result instead of only firing an event
- Amazon SNS notifications as a trigger
- Calling functions from the AWS Mobile SDK for Android and iOS
- A simpler permission model built on a single IAM role
- A default limit of 100 concurrent executions per account, up from 50 during the preview
Java was not yet in that release; the post listed it as coming soon. It arrived on 15 June 2015, when Barr wrote that developers could now write Lambda functions in Java 8.
| Date | Milestone |
|---|---|
| 13 November 2014 | Announced at re:Invent; preview with Node.js |
| 9 April 2015 | Production status; SNS triggers, synchronous calls, mobile SDK |
| 15 June 2015 | Java 8 support |
The first decade
When AWS marked Lambda's tenth anniversary, Barr recalled that it started from an informal conversation with Tim Wagner about letting developers focus on code rather than infrastructure, after which Wagner wrote the PRFAQ — Amazon's internal press-release-and-FAQ proposal — for the service. The anniversary post listed what came after the preview, year by year:
| Year | Added, according to AWS |
|---|---|
| 2016 | Python; longer time limits; access to resources in a VPC; environment variables; the SAM framework |
| 2018 | Functions written in any programming language |
| 2020 | Up to 10 GB of memory and 6 vCPUs; container images; billing in 1 ms units |
| 2021 | Graviton (Arm) processors |
| 2022 | SnapStart; HTTPS endpoints for functions |
| 2023 | Faster scaling; response streaming |
The billing unit is the clearest thread: from 100 ms in 2014 to 1 ms in 2020. AWS also gave a usage figure for 2024 — 1.5 million users and tens of trillions of invocations a month. That is AWS's own count.
Where Lambda sits
Lambda did not invent the idea of handing code to a platform and not managing servers. Google App Engine had done that for whole web applications in 2008. What Lambda changed was the unit — a single function, triggered by an event and billed per call — and that unit is what the word serverless came to mean.
It arrived in the same week as AWS's container service, and in the same year Google open-sourced Kubernetes. Functions and containers offered two different answers to the same question — how to run code without managing a whole machine — and the container answer had been made practical by Docker the year before.
The company is covered on Amazon, and the wider sequence on the cloud computing timeline.
Questions this page answers
- When did AWS Lambda launch?
- It was announced at re:Invent 2014 on 13 November 2014 and released the same day as a preview. It became production-ready on 9 April 2015.
- What were Lambda's limits at launch?
- Node.js was the only language, memory ran from 128 MB to 1 GB per function, the maximum run time was 60 seconds, and it was offered in three regions: US East, US West and Europe (Ireland). Events could come from S3, DynamoDB and Kinesis.
- When did Lambda add Java?
- On 15 June 2015. At the production release on 9 April 2015 Java was still listed as coming soon; that release added SNS triggers and synchronous invocation instead.
- How has Lambda's billing unit changed?
- At launch in 2014 it charged per request plus compute time in 100-millisecond units. According to AWS, billing moved to 1-millisecond units in 2020.
Sources
PrimaryAWS Lambda – Run Code in the Cloud — Jeff Barr, AWS News Blog, Nov 13, 2014
Announcement date; preview language, memory, run time, regions and event sources; billing and free tier
Production date; synchronous calls, SNS and the mobile SDK; concurrency 50 to 100; Java still coming soon
PrimaryAWS Lambda Update – Run Java Code in Response to Events — Jeff Barr, AWS News Blog, June 15, 2015
The date of Java 8 support
PrimaryAWS Lambda turns ten – looking back and looking ahead — AWS News Blog, 2024
Tim Wagner's PRFAQ, features added 2016–2023, 1 ms billing, and usage figures (AWS's own)
SecondaryAWS re:Invent Keynote Day 2 Takeaways — The Agile Admin, Nov 13, 2014
Lambda and the EC2 Container Service announced in Werner Vogels's day-two keynote
TertiaryAWS Lambda — Wikipedia
Last updated: