I'm curious about how AWS Fargate is implemented as a serverless compute engine. Is it more like a microVM, similar to AWS Lambdas, or does it actually run on EC2 instances within containers? I have a feeling it's not microVM unless I'm using the firecracker-containerd container runtime. If that's true, then why can't daemonsets be run? It seems like it should only make sense if it operates on shared EC2 instances, but I'm not entirely sure. Can anyone explain how it works under the hood?
2 Answers
I believe Fargate utilizes both regular EC2 and Firecracker, especially on bare metal instances. There are articles that mention switching the runtime plugin to firecracker-containerd for micromachines, which hints they could be leveraging Firecracker for some workloads. The architecture seems to allow for flexibility in how they deploy containers. I shared a video link that might provide more insight on this topic, which should help clarify some of the confusion around it.
AWS Fargate is managed as EC2 instances that run OCI images through ContainerD. Each Fargate task has its own isolated EC2 instance. There’s some debate about whether Fargate uses Firecracker or not—one engineer claims it doesn’t, but other documents suggest Firecracker might be used on larger EC2 instances to increase packing density. So, it really depends on the configuration and specific cases being considered. If you're interested, I ran a project that tested Fargate performance and found a lot of older EC2 instances in use, mainly Intel Xeon processors.

Related Questions
How to Build a Custom GPT Journalist That Posts Directly to WordPress
Cloudflare Origin SSL Certificate Setup Guide
How To Effectively Monetize A Site With Ads