Amazon ECS developer tools overview - Amazon Elastic Container Service
Services or capabilities described in Amazon Web Services documentation might vary by Region. To see the differences applicable to the China Regions, see Getting Started with Amazon Web Services in China (PDF).

Amazon ECS developer tools overview

Whether you are part of a large enterprise or a startup, Amazon ECS offers a variety of tools that can help you to get your containers up and running quickly, regardless of your level of expertise. You can work with Amazon ECS in the following ways.

  • Learn about, develop, manage and visualize your container applications and services using the Amazon Web Services Management Console.

  • Perform specific actions to Amazon ECS resources with automated deployments through programming or scripts using the Amazon Command Line Interface, Amazon SDKs or the ECS API.

  • Define and manage all Amazon resources in your environment with automated deployment using Amazon CloudFormation.

  • Use the complete Amazon Copilot CLI end-to-end developer workflow to create, release, and operate container applications that comply with Amazon best practices for infrastructure.

  • Using your preferred programming language, define infrastructure or architecture as code with the Amazon CDK.

  • Containerize applications that are hosted on premises or on Amazon EC2 instances or both by using the Amazon App2Container integrated portability and tooling ecosystem for containers.

  • Deploy an application to Amazon ECS or test local containers with containers running in Amazon ECS using the Docker Compose file format with the Amazon ECS CLI.

  • Launch containers from Docker Desktop integration with Amazon ECS using Amazon ECS in Docker Desktop.

Amazon Web Services Management Console

The Amazon Web Services Management Console is a browser-based interface for managing Amazon ECS resources. The console provides a visual overview of the service, making it easy to explore Amazon ECS features and functions without needing to use additional tools. Many related tutorials and walkthroughs are available that can guide you through use of the console.

For a tutorial that guides you through the console, see Getting started with Amazon ECS.

When starting out, many customers prefer using the console because it provides instant visual feedback on whether the actions they take succeed. Amazon customers that are familiar with the Amazon Web Services Management Console, can easily manage related resources such as load balancers and Amazon EC2 instances.

Start with the Amazon Web Services Management Console.

Amazon Command Line Interface

The Amazon Command Line Interface (Amazon CLI) is a unified tool that you can use to manage your Amazon services. With this one tool alone, you can both control multiple Amazon services and automate these services through scripts. The Amazon ECS commands in the Amazon CLI are a reflection of the Amazon ECS API.

Amazon provides two sets of command line tools: the Amazon Command Line Interface (Amazon CLI) and the Amazon Tools for Windows PowerShell. For more information, see the Amazon Command Line Interface User Guide and the Amazon Tools for Windows PowerShell User Guide.

The Amazon CLI is suitable for customers who prefer and are used to scripting and interfacing with a command line tool and know exactly which actions they want to perform on their Amazon ECS resources. The Amazon CLI is also helpful to customers who want to familiarize themselves with the Amazon ECS APIs. Customers can use the Amazon CLI to perform a number of operations on Amazon ECS resources, including Create, Read, Update, and Delete operations, directly from the command line interface.

Use the Amazon CLI if you are or want to become familiar with the Amazon ECS APIs and corresponding CLI commands and want to write automated scripts and perform specific actions on Amazon ECS resources.

Amazon CloudFormation

Amazon CloudFormation and Terraform for Amazon ECS both provide powerful ways for you to define your infrastructure as code. You can easily track which version of your template or Amazon CloudFormation stack is running at any time and rollback to a previous version if needed. You can perform infrastructure and application deployments in the same automated fashion. This flexibility and automation is what makes Amazon CloudFormation and Terraform two popular formats for deploying workloads to Amazon ECS from continuous delivery pipelines.

For more information about Amazon CloudFormation, see Creating Amazon ECS resources with Amazon CloudFormation.

Use Amazon CloudFormation or Terraform if you want to automate infrastructure deployments and applications on Amazon ECS and explicitly define and manage all of the Amazon resources in your environment.

Amazon Copilot CLI

The Amazon Copilot CLI (command line interface) is a comprehensive tool that allows customers to deploy and operate applications packaged in containers and environments on Amazon ECS directly from their source code. When using Amazon Copilot you can perform these operations without understanding Amazon and Amazon ECS elements such as Application Load Balancers, public subnets, tasks, services, and clusters. Amazon Copilot creates Amazon resources on your behalf from opinionated service patterns, such as a load balanced web service or backend service, providing an immediate production environment for containerized applications. You can deploy through an Amazon CodePipeline pipeline across multiple environments, accounts, or Regions, all of which can be managed within the CLI. By using Amazon Copilot you can also perform operator tasks, such as viewing logs and the health of your service. Amazon Copilot is an all-in-one tool that helps you more easily manage your cloud resources so that you can focus on developing and managing your applications.

For more information, see Using the Amazon Copilot command line interface.

Use the Amazon Copilot complete end-to-end developer workflow to create, release, and operate container applications that comply with Amazon best practices for infrastructure.

Amazon CDK

The Amazon Cloud Development Kit (Amazon CDK) is an open source software development framework that you can use to model and provision your cloud application resources using familiar programming languages. Amazon CDK provisions your resources in a safe, repeatable manner through Amazon CloudFormation. Using the CDK, customers can generate their environment with fewer lines of code using the same language they used to build their application. Amazon ECS provides a module in the CDK that is named ecs-patterns, which creates common architectures. An available pattern is ApplicationLoadBalancedFargateService(). This pattern creates a cluster, task definition, and additional resources to run a load balanced Amazon ECS service on Amazon Fargate.

For more information, see Getting started with Amazon ECS using the Amazon CDK.

Use the Amazon CDK if you want to define infrastructure or architecture as code in your preferred programming language. For example, you can use the same language that you use to write your applications.

Amazon App2Container

Sometimes enterprise customers might already have applications that are hosted on premises or on EC2 instances or both. They are interested in the portability and tooling ecosystem of containers specifically on Amazon ECS, and need to containerize first. Amazon App2Container allows you to do just that. App2Container (A2C) is a command line tool for modernizing .NET and Java applications into containerized applications. A2C analyzes and builds an inventory of all applications running in virtual machines, on premises or in the cloud. After you select the application you want to containerize, A2C packages the application artifact and identified dependencies into container images. It then configures the network ports and generates the Amazon ECS task. Last, it creates a CloudFormation template that you can deploy or modify if needed.

For more information, see Getting started with Amazon App2Container.

Use App2Container if you have applications that are hosted on premises or on Amazon EC2 instances or both.

Amazon ECS CLI

The Amazon ECS CLI allows you to run your applications on Amazon ECS and Amazon Fargate using the Docker Compose file format. You can quickly provision resources, push and pull images using Amazon ECR, and monitor running applications on Amazon ECS or Amazon Fargate. You can also test containers running locally along with containers in the cloud within the CLI.

For more information, see Using the Amazon ECS command line interface.

Use the ECS CLI if you have a Compose application and want to deploy it to Amazon ECS, or test local containers with containers running in Amazon ECS in the cloud.

Docker Desktop integration with Amazon ECS

Amazon and Docker have collaborated to make a simplified developer experience that you can use to deploy and manage containers on Amazon ECS directly using Docker tools. You can now build and test your containers locally using Docker Desktop and Docker Compose, and then deploy them to Amazon ECS on Fargate. To get started with the Amazon ECS and Docker integration, download Docker Desktop and optionally sign up for a Docker ID. For more information, see Docker Desktop and Docker ID signup.

Beginners to containers often start learning about containers by using Docker tools such as the Docker CLI and Docker Compose. This makes using the Docker Compose CLI plugin for Amazon ECS a natural next step in running containers on Amazon after testing locally. Docker provides a walkthrough on deploying containers on Amazon ECS. For more information, see Docker Compose CLI - Amazon ECS.

You can take advantage of additional Amazon ECS features, such as service discovery, load balancing and other Amazon resources for use with their applications with Docker Desktop.

You can also download the Docker Compose CLI plugin for Amazon ECS directly from GitHub. For more information, see Docker Compose CLI plugin for Amazon ECS on GitHub.

Amazon SDKs

You can also use Amazon SDKs to manage Amazon ECS resources and operations from a variety of programming languages. The SDKs provide modules to help take care of tasks, including tasks in the following list.

  • Cryptographically signing your service requests

  • Retrying requests

  • Handling error responses

For more information about the available SDKs, see Tools for Amazon Web Services.

Summary

With the many options to choose from, you can choose the options that are best suited to you. Consider the following options.

  • If you are visually oriented, you can visually create and operate containers using the Amazon Web Services Management Console.

  • If you prefer CLIs, consider using Amazon Copilot or the Amazon CLI. Alternatively, if you prefer the Docker ecosystem, you can take advantage of the functionality of ECS from within the Docker CLI to deploy to Amazon. After these resources are deployed, you can continue managing them through the CLI or visually through the Console.

  • If you are a developer, you can use the Amazon CDK to define your infrastructure in the same language as your application. You can use the CDK and Amazon Copilot to export to CloudFormation templates where you can change granular settings, add other Amazon resources, and automate deployments through scripting or a CI/CD pipeline such as Amazon CodePipeline.

The Amazon CLI, SDKs, or ECS API are useful tools for automating actions on ECS resources, making them ideal for deployment. To deploy applications using Amazon CloudFormation you can use a variety of programming languages or a simple text file to model and provision all the resources needed for your applications. You can then deploy your application across multiple Regions and accounts in an automated and secure manner. For example, you can define your ECS cluster, services, task definitions, or capacity providers, as code in a file and deploy through the Amazon CLI CloudFormation commands.

To perform operations tasks, you can view and manage resources programmatically using the Amazon CLI, SDK, or ECS API. Commands like describe-tasks or list-services display the latest metadata or a list of all resources. Similar to deployments, customers can write an automation that includes commands such as update-service to provide corrective action upon the detection of a resource that has stopped unexpectedly. You can also operate your services using Amazon Copilot. Commands like copilot svc logs or copilot app show provide details about each of your microservices, or about your application as a whole.

Customers can use any of the available tooling mentioned in this document and use them in variety of combinations. ECS tooling offers various paths to graduate from certain tools to use others that fit your changing needs. For example, you can opt for more granular control over resources or more automation as needed. ECS also offers a large range of tools for a wide range of needs and levels of expertise.