A proof-of-concept scheduler driver enabling Apache Mesos frameworks to schedule workloads on Amazon ECS.
Amazon ECS Scheduler Driver is a proof-of-concept Java library that enables Apache Mesos schedulers (like Marathon and Chronos) to schedule and manage containerized workloads on Amazon ECS. It translates Mesos scheduler commands and resource constraints into ECS-compatible task definitions, allowing Mesos frameworks to leverage ECS as a backend compute platform.
DevOps engineers and platform teams already using Apache Mesos who want to explore running workloads on Amazon ECS without rewriting their existing Mesos schedulers.
It provides a bridge between the Mesos and ECS ecosystems, demonstrating how organizations could potentially migrate or hybridize their container orchestration while reusing existing Mesos tooling and workflows.
Amazon ECS Scheduler Driver
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Automatically converts Mesos scheduler commands into ECS task definitions using family:revision format, as shown in the example where 'sleep360:1' triggers ECS to run that task definition.
Handles CPU conversion (e.g., Mesos-style 0.5 CPU to ECS units like 512) and maps memory/ports directly, simplifying resource declaration without manual adjustments.
Leverages the standard AWS SDK for ECS communication, supporting familiar credential and configuration methods like environment variables, making setup straightforward with existing AWS infrastructure.
Works with Mesos schedulers like Marathon and Chronos, allowing them to manage ECS tasks without modifying scheduler logic, as demonstrated in the Marathon example.
Explicitly stated as not recommended for production use, indicating it lacks maturity, robust error handling, and long-term support.
Users must manually create and register ECS task definitions before scheduling, adding extra steps and potential for mismatches, as noted in the README.
Only supports basic resource mapping and a few environment variables (e.g., AWS_ECS_CLUSTER), missing advanced ECS features like Fargate integration or comprehensive Mesos framework capabilities.
Requires modifying scheduler dependencies and instantiating ECSSchedulerDriver instead of MesosSchedulerDriver, which can be error-prone and time-consuming for teams unfamiliar with Mesos internals.