Overview
ECS-Optimized Ubuntu (ARM) - Production-Ready Container Host
A self-managed Amazon ECS container instance image built on Ubuntu. Docker and the Amazon ECS agent are pre-installed and configured as a systemd unit that waits for cloud-init, loads the bundled agent image, and starts it with host networking, task IAM role support, and awslogs/json-file logging drivers enabled. The image also includes pre-configured Amazon CloudWatch and SSM agents, so as soon as an instance profile is attached you get ECS agent logs and host metrics in CloudWatch plus shell access through Session Manager - without opening port 22.
What You Get Out of the Box
- Pre-configured ECS Agent: /etc/ecs/ecs.config with task IAM roles enabled (including network-host mode), awslogs and json-file logging drivers, agent data in /var/lib/ecs/data, and agent log at /var/log/ecs/ecs-agent.log. iptables NAT rules for the 169.254.170.2 task metadata endpoint are persisted across reboots. The agent introspection port (51678) is blocked from outside the instance.
- Amazon CloudWatch Integration: CloudWatch agent ships /var/log/ecs/ecs-agent.log, system log, and auth log to CloudWatch Logs (log groups under /solvedevops/ecs/, 30-day retention, stream per instance ID). CPU, memory, disk, TCP connection, and process metrics are published under the SolveDevOps/ECS namespace with InstanceId, InstanceType, and AutoScalingGroupName dimensions.
- AWS Systems Manager Integration: SSM Agent is installed and enabled for Session Manager, Run Command, Patch Manager, and Inventory as soon as the instance profile allows it.
- Full Root SSH Access: Key-based SSH access with full root privileges for complete control over your container host.
- Operational Quick-Start Banner: A login banner (motd) explains where the ECS config and logs live, how to restart the agent, and how to activate CloudWatch and SSM.
Security Hardening
- Key-based SSH only - password authentication disabled
- No root login over SSH
- No secrets, SSH keys, or AWS credentials baked into the image
- ECS agent introspection port (51678) blocked on the primary interface
- net.ipv4.conf.all.route_localnet configured for secure task metadata routing
Quick Start
Step 1: Attach an IAM instance profile that includes these managed policies:
- AmazonEC2ContainerServiceforEC2Role (for the ECS agent)
- CloudWatchAgentServerPolicy (for CloudWatch metrics and logs)
- AmazonSSMManagedInstanceCore (for Session Manager access)
No AWS credentials are stored on the image.
Step 2: Edit /etc/ecs/ecs.config to set your cluster name and restart the service:
#!/bin/bash echo ECS_CLUSTER=yourClusterName >> /etc/ecs/ecs.config systemctl restart ecs.service
The ECS agent runs as the ecs-agent container on the host network. Its log is at /var/log/ecs/ecs-agent.log.
Step 3: The CloudWatch agent configuration is at /opt/aws/amazon-cloudwatch-agent/etc/amazon-cloudwatch-agent.d/ecs.json and can be edited or replaced. The agent reads it on startup and detects the Region automatically.
Use Case: Standardized ECS Container Fleet
Deploy a fleet of ECS container instances with consistent security hardening, built-in observability, and remote management from day one. Rather than manually installing and configuring Docker, the ECS agent, CloudWatch, and SSM on each instance, launch this AMI with the appropriate instance profile and cluster configuration to get production-ready container hosts running in minutes. Ideal for teams running microservices, batch processing workloads, or CI/CD pipelines on Amazon ECS with EC2 launch type.
Disclaimer
All product and company names are trademarks or registered trademarks of their respective holders. Use of them does not imply any affiliation with or endorsement by them. This product contains the latest patched software from respective vendors. We do not, however, claim that all vulnerabilities have been addressed.
Highlights
- Ready-to-join ECS container host with Docker, the Amazon ECS agent running as a systemd service, task IAM role support, and iptables NAT rules for the task metadata endpoint already configured. Set ECS_CLUSTER in /etc/ecs/ecs.config, restart the service, and your instance joins the cluster. Eliminates manual Docker installation, ECS agent configuration, and networking setup so you can go from AMI launch to a running ECS node faster than building your own image.
- Hardened Ubuntu 24.04 base with key-only SSH, no root login, no baked-in credentials or SSH keys, and cloud-init state scrubbed so every instance boots clean. The ECS agent introspection port (51678) is blocked from outside the host. These security measures go beyond standard Ubuntu patching to reduce your attack surface from the first boot without additional configuration work.
- Built-in observability and remote management out of the box. The Amazon CloudWatch agent ships ECS agent logs, system logs, auth logs, and CPU/memory/disk/TCP metrics under the SolveDevOps/ECS namespace. Amazon SSM Agent is enabled for Session Manager, Run Command, and Patch Manager access without opening port 22. Backed by vendor support from SolveDevOps.
Details
Introducing multi-product solutions
You can now purchase comprehensive solutions tailored to use cases and industries.
Features and programs
Financing for AWS Marketplace purchases
Pricing
Dimension | Cost/hour |
|---|---|
t4g.small Recommended | $0.016 |
g5g.2xlarge | $0.016 |
c7g.large | $0.016 |
c7gd.xlarge | $0.016 |
r6g.medium | $0.016 |
c6gd.xlarge | $0.016 |
r7gd.medium | $0.016 |
r7g.medium | $0.016 |
a1.xlarge | $0.016 |
c6gn.2xlarge | $0.016 |
Vendor refund policy
Cancel Anytime
How can we make this page better?
Legal
Vendor terms and conditions
Content disclaimer
Delivery details
64-bit (Arm) Amazon Machine Image (AMI)
Amazon Machine Image (AMI)
An AMI is a virtual image that provides the information required to launch an instance. Amazon EC2 (Elastic Compute Cloud) instances are virtual servers on which you can run your applications and workloads, offering varying combinations of CPU, memory, storage, and networking resources. You can launch as many instances from as many different AMIs as you need.
Version release notes
Updates to the latest Security Patches for ECS-Agent, Docker and Ubuntu 24.04
Additional details
Usage instructions
Quick Start:
SSH Access: Once your instance is running, connect via SSH using your key and the default Ubuntu user: ssh -i /path/to/your-key.pem ubuntu@<public-ip-address>
ECS Cluster Join: To connect this AMI to your ECS cluster, add the snippet below to user data when configuring your EC2 instance. Be sure to change the clusterName to match your cluster. #!/bin/bash echo ECS_CLUSTER=clusterName >> /etc/ecs/ecs.config
More advanced use-cases can be found here https://solvedevops.com/docs/ecs-ubuntu-getting-started/
Have fun!
Support and Suggestions: support@solvedevops.com
Resources
Vendor resources
Support
Vendor support
Vendor Support
SolveDevOps provides vendor support for this product. All marketplace offerings include an initial free support session to help you get started with cluster configuration and deployment.
email: support@solvedevops.com
AWS infrastructure support
AWS Support is a one-on-one, fast-response support channel that is staffed 24x7x365 with experienced and technical support engineers. The service helps customers of all sizes and technical abilities to successfully utilize the products and features provided by Amazon Web Services.