Using the ECS CLI

In this chapter, we have focused solely on using the AWS console to get started with ECS. Another tool that is written and maintained by AWS is called the ECS CLI, which allows you to create ECS clusters and deploy ECS tasks and services from the command line.

The ECS CLI is different from the AWS CLI in a variety of ways, but the main differences include:

  • The ECS CLI is focused on interacting with ECS and only supports interacting with other AWS services that provide supporting resources for ECS, such as the AWS CloudFormation and EC2 service.
  • ECS CLI operations are more coarse-grained than AWS CLI operations. For example, the ECS CLI will orchestrate creating an ECS cluster and all of its supporting resources, much like the behavior of the ECS cluster wizard you used earlier in this chapter, whereas the AWS CLI is focused on more fine-grained operations that perform a single specific task.
  • The ECS CLI is written in Golang, whereas the AWS CLI is written in Python. This does introduce some behavioral differences—for example, the ECS CLI does not support the use of AWS profiles with MFA (multi-factor authentication) enabled, meaning you need to use AWS credentials and roles that do not mandate MFA.

A particularly useful feature of the ECS CLI is that it supports version 1 and version 2 of Docker Compose files, meaning you can use Docker Compose to provide a generic description of your multi-container environments. The ECS CLI also allows you to define your infrastructure using a YAML-based configuration file, and as such can be considered a simple and functional infrastructure-as-code tool.

In general, the ECS CLI is useful for quickly standing up sandbox/development environments for rapid prototyping or testing. For deploying your formal non-production and production environments, you should use tools and services such as Ansible, AWS CloudFormation, or Terraform, which provide much broader support for all of the AWS resources you will need to run production-grade environments.

The ECS CLI includes complete documentation, which you can find at https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ECS_CLI.html . You can also view the ECS CLI source code and raise issues at https://github.com/aws/amazon-ecs-cli .