What is UFO?

UFO is AWS ECS Deploy Tool. It automates the steps of deployment to ECS.

  1. Build and Push the Docker Image
  2. Build the ECS Task Definition and CloudFormation Template
  3. Deploy to ECS

It also provides some convenient tooling to make it easier and more fun to work with ECS. It tries to provide a heroku-like experience while giving you control over how you want your containers to be run.

UFO Features

  • Automation: Builds the Docker image and deployments the ECS Service in one step.
  • CLI Customizations: You can customize a plethora of settings for the tool.
  • Exec: Use ufo exec to hop into a running container to debug.
  • Logs: Use ufo logs to tail and follow the logs.
  • DRY: Use the same Task Definition code with ERB templating to keep things DRY. You can write the Task Definition in either YAML or JSON format.
  • Layering: Use the same ECS Task Definition code to build multiple environments like dev and prod with Layering.
  • Helpers: Use Built-In Helpers like dockerfile_port, docker_image, family to build the Task Definitions dynamically. You can also add your own Custom Helpers if needed.
  • IAM: You can define and fully control the IAM permissions used for the EC2 instance and Docker container.
  • Generators: UFO ships with a generators to help you get started with ECS quickly.
  • Hooks: You can also run boot hooks early into the process and set things like AWS_PROFILE.