Settings

Theme

Rust for AWS Lambda, the Docker Way

beeb.li

33 points by beeb a year ago · 8 comments

Reader

newfocogi a year ago

One of the massive benefits for Rust on Lambda is (as the author mentions) "extremely low start-up time, CPU usage and memory footprint". It's not clear to me if deploying Rust to Lambda via a docker image actually negates some of those benefits.

  • foo4u a year ago

    Using Lambda functions stored in ECR has no impact on performance from my experience. AWS Lambda uses Firecracker under the hood, which builds a VM from a container image. It's likely that non-ECR image based Lambdas are actually packaged as a container image before being launched into a Firecracker VM.

    https://aws.amazon.com/blogs/aws/firecracker-lightweight-vir...

    • beebOP a year ago

      This has been my experience as well, there was little to no impact on execution time at least.

  • beebOP a year ago

    Good question! I ran some benchmarks before because I was also curious and besides some slightly larger standard deviation for cold starts execution time, there was so significant difference in performance when using docker.

tiew9Vii a year ago

An alternative to this is to statically compile and use scratch docker image.

Another tip is if writing a http app etc Axum/Actix have Lambda shims.

I add a cli flag “—lambda” which enables the shim. That means I can run the app locally, in Kubernetes, ECS, Lambda with minimum effort. It also makes dev easier pretending lambda doesn’t exist.

  • wrboyce a year ago

    I’ve done similar with Python based apps a few times, there is something quite satisfying about a Docker image that can run in multiple contexts! (I’ve also distributed a Go based app using a FROM scratch image, but that’s not quite as cool imo).

  • beebOP a year ago

    Those are great tips! I'll have a look at the axum shim, which certainly would help if using axum in the first place. Minimal functions like we have at my work rarely need a fully featured framework however.

Keyboard Shortcuts

j
Next item
k
Previous item
o / Enter
Open selected item
?
Show this help
Esc
Close modal / clear selection