{
  "id": 3902041,
  "title": "Running ECS Workloads on Bare Metal with Spinifex",
  "url": "https://urgent.news/2026/08/28/running-ecs-workloads-on-bare-metal-with-spinifex",
  "topic": "tech",
  "section": "Tech",
  "published": "2026-08-28T05:21:27.000Z",
  "source": {
    "name": "Dev.to",
    "slug": "dev-to",
    "url": "https://dev.to/toddyholiday/running-ecs-workloads-on-bare-metal-with-spinifex-4k9o"
  },
  "original_language": "en",
  "account": "ECS (Elastic Container Service) is a container orchestration tool within AWS that enables users to run containerized applications without the complexity of Kubernetes. However, ECS is tightly integrated with AWS and requires a live connection to amazonaws.com. Spinifex offers a solution to run ECS on bare metal, disconnected environments, and behind custom network boundaries.\n\nSpinifex works by following the EC2 launch type model directly, where users supply the compute resources needed. A cluster is a logical grouping of these compute resources, and the capacity behind it is provided by container instances, which are ordinary EC2 instances running the Spinifex ECS agent. The agent registers these instances with the cluster, reports their available CPU and memory, and runs the containers placed on them by the scheduler.\n\nUsing Spinifex, tasks are defined with one or more containers, including image, CPU and memory limits, port mappings, environment variables, and an optional task IAM role. A service keeps a desired count of tasks running, replaces any failed tasks, and registers each task's IP with an ALB target group if a load balancer is present.\n\nTo use Spinifex, users must first ensure that the Spinifex ECS node image is imported into their AWS account. They also need to attach the ecsInstanceRole instance profile to container instances, which provides the necessary permissions for the ECS agent. The Spinifex console can automatically create this role if necessary.\n\nCreating a cluster and registering a task definition involve exporting the AWS profile, creating the cluster, and then registering the task definition. The AWS CLI commands for these actions are provided in the source material. Container instances can be provisioned by launching EC2 instances from the ECS node image with the ecsInstanceRole profile attached. The agent on these instances is configured to point to the cluster name using cloud-init user data.\n\nTo run a task or create a service, specific AWS CLI commands are provided. If a task needs to call AWS APIs, a taskRoleArn must be specified in the task definition, allowing the ECS agent to inject temporary AWS credentials into the container. Logging within Spinifex is similar to ECS, with container stdout and stderr written to the container instance's journal, which can be inspected using tools like `ctr` and `journalctl`.",
  "summary": "ECS is the part of the AWS stack that teams reach for when they want container orchestration without the complexity surface of Kubernetes. A cluster, some task definitions, a service, and a load balancer, and the scheduler handles placement and restarts. The problem is that ECS is deeply tied to AWS. The scheduler is a managed service, the container instances are EC2 instances, and the whole…",
  "key_points": [],
  "editors_take": null,
  "illustration": null,
  "coverage": {
    "outlets": 1,
    "also_reported_by": []
  },
  "ai_generated": true,
  "disclaimer": "Summaries, key points and the editor’s take are written by software from other outlets’ reporting and may contain errors — always check the linked original."
}