( #AWS #Reinvent) AWS announced 3 updates to Lambda today:
- Up to 10GB memory / 6 CPUs
- Docker packaging
- Per millisecond billing, down to 1 ms
This combination is a big deal, and here’s why. /
- Up to 10GB memory / 6 CPUs
- Docker packaging
- Per millisecond billing, down to 1 ms
This combination is a big deal, and here’s why. /
2 years ago I worked with a client who had a decade-old JVM app, deployed in a several GB docker image. It ran as ~ 50 instances, each using ~ 10GB RAM. I don't remember exactly, but I think it varied between 200 and 1000 requests / second. /
They'd already migrated from on-premise to ECS, but it was far from optimal. While I was working on a different project they re-platformed to Fargate,
which was much better, but I suspect that Lambda would have been more ideal for what this app did, especially re: load. /
which was much better, but I suspect that Lambda would have been more ideal for what this app did, especially re: load. /
At the time there was no way we could have moved this app to Lambda though without a whole ton of work. Packaging, artifact size, required RAM were all far away from what Lambda provided. Invocation costs would also be a concern at > 1B requests / month /
Today's Lambda updates would make that conversation entirely different. The app's deployment packaging could remain as docker, the JVM app could use 10GB RAM, and many fast requests (~10ms) would be 90% cheaper than yesterday /
I wouldn't recommend Docker images as a default way to start most Lambda apps, but there's a lot to be said about "lifting and shifting" to Lambda, and then teasing apart individual request paths to new implementations, using API Gateway (E.g.) as a strangler-pattern interface /
Today's Lambda updates, combined with last year's Lambda updates like Provisioned Concurrency and cold-start-free VPC support, make Lambda far more palatable as a default compute choice for larger enterprises. I look forward to helping clients navigate these new capabilities!