How to develop, run and optimize Spring Boot 3 application on AWS Lambda
summary
Compares four deployment paths: AWS Serverless Java Container, AWS Lambda Web Adapter, Spring Cloud Function and custom Docker, measuring cold starts, warm latencies and tradeoffs. Baseline cold P90 sits around 4–7s; warm P90 ≈10ms. Enabling SnapStart with priming (CRaC pre‑snapshot hooks that hit DynamoDB / warm class paths) drops many cold P90s to ~1s; extra caching improves further. Building a GraalVM native image yields P90 ≈900ms; ARM64 cuts cost ~25% but shows ≈10% slower cold starts.
AI-written summary · about
chapters (11)
- 0:00Spring Boot on AWS Lambda
- 5:41AWS Serverless Java Container
- 9:12Lambda Web Adapter tool
- 11:42Spring Cloud Function on AWS
- 13:04How Java Lambda works
- 18:21Optimizing cold starts with SnapStart
- 21:33Priming techniques for SnapStart
- 28:57Measuring SnapStart gains
- 33:37GraalVM Native Image for Spring Boot
- 41:48SnapStart vs GraalVM
- 43:12Q&A
related talks
53mHigh performance Serverless Java on AWS
46mReduce Cold Starts for Java Serverless Applications in AWS
51mHow To Reduce Cold Starts for Java Serverless Applications in AWS
34mThawing Java on AWS Lambda
49mServerless Java Web Applications on AWS Lambda with Micronaut Quarkus & Spring Boot
19mTen things that improve the performance of your Java based AWS Lambda
46mThawing Java on AWS Lambda Reducing Cold Start Times from 11 Seconds to 1
01h 00mAdapting Java for the Serverless world
