Containers changed application deployment when Docker arrived in 2013. The environment mismatch that is the root cause of "it works on my machine but not on the server" was solved by making the container image an immutable unit of execution. But a new problem emerged: how do you manage dozens or hundreds of containers? That is the domain of container orchestration. AWS offers its own orchestrator, ECS; EKS, which follows the Kubernetes standard; and Fargate, a serverless execution engine that works with both.
💡 Related theory — how Linux container isolation works: Container isolation is built on top of two Linux kernel features