I'm curious about the inner workings of AWS Fargate as a serverless compute engine. I understand it's designed for ease of use, but I'm trying to figure out whether it utilizes microVMs, like AWS Lambda does, or if it operates on EC2 instances within a specific namespace. It seems like Fargate isn't microVM-based unless you choose a container runtime like firecracker-containerd. If that's the case, why can't some features like daemonsets be run? Can someone explain how Fargate truly functions under the hood?
2 Answers
AWS Fargate essentially runs as a managed service on top of standard Amazon EC2 instances using OCI images with ContainerD. Each Fargate task is isolated to its own EC2 instance. Interestingly, while there has been discussion about Fargate potentially utilizing Firecracker microVMs, it primarily uses standard EC2 instances unless configured otherwise. I did a little project showcasing performance with 120 containers and found a mix of older EC2 instances. If you want to dive deeper into the architecture, check out the AWS blog post on the topic.
Totally get what you mean. The way they package these services can be a bit confusing!
I've heard that AWS Fargate leverages both standard EC2 instances and can utilize Firecracker on bare metal for better performance. However, it's not always using Firecracker—it depends on the deployment setup. In some instances, people claim it cannot run Firecracker at all, but that's not the consensus. You might find it helpful to check out tutorials or videos that break down Fargate's architecture for a clearer picture.
Interesting! I've seen some videos on Fargate, and they suggest it can run efficiently with Firecracker. Game changer for serverless!
I've always thought it used Firecracker too. It's crucial for the scalability aspect of serverless computing.

That sounds spot on! It's interesting how managed services work; they often recycle older resources while providing a cutting-edge experience.