O Amazon Elastic Container Service (Amazon ECS) permite executar, escalar e proteger facilmente aplicativos de contêiner de Docker na AWS. Aplicativos empacotados localmente como contêineres serão implantados e executados da mesma forma que contêineres gerenciados pelo Amazon ECS. O Amazon ECS elimina a necessidade de instalar, operar e escalar sua própria infraestrutura de orquestração de contêineres e gerenciamento de clusters. Dessa forma, você pode se concentra nas necessidades de recursos e nos requisitos de disponibilidade dos aplicativos conteinerizados.

O Amazon ECS permite a expansão a partir de um único contêiner até milhares deles em centenas de instâncias, sem criar qualquer complexidade adicional na forma como você executa o aplicativo. Você pode executar qualquer coisa: aplicações, trabalhos em lote ou microsserviços. O Amazon ECS abstrai toda a complexidade da infraestrutura, para que você possa se concentrar em projetar, construir e executar aplicações em contêineres.

Com o Amazon ECS, você pode usar o AWS Fargate para gerenciar completamente a infraestrutura e se concentra na implantação de contêineres. Ou então você pode optar por ter visibilidade e controle completos do cluster de servidores subjacente, da criação e encerramento de contêineres do Docker até a visualização de informações detalhadas sobre o estado dos clusters. Você pode integrar e usar o seu próprio programador de contêineres ou conectar o Amazon ECS ao seu processo de entrega de software atual, como os sistemas de integração e entrega contínuas.

Suporte ao AWS Fargate

A tecnologia do AWS Fargate está disponível com o Amazon ECS. Com o AWS Fargate, não é mais necessário selecionar tipos de instância do Amazon EC2, provisionar e escalar clusters, e aplicar patches e atualizações em cada servidor. Não se preocupe com estratégias de posicionamento, como binpacking ou distribuição de hosts. As tarefas são balanceadas automaticamente entre as zonas de disponibilidade. O Fargate gerencia a disponibilidade dos contêineres para você. Basta definir os requisitos do aplicativo, selecionar o Fargate como tipo de execução no console ou na ILC e o Fargate se encarregará de toda a escalabilidade e gerenciamento de infraestrutura necessários para executar contêineres.

Para desenvolvedores que precisam de um controle da infraestrutura mais detalhado e por servidor, o tipo de execução do EC2 do Amazon ECS permite gerenciar um cluster de servidores e programar o posicionamento de contêineres nos servidores.

Desenvolvimento

Suporte do Docker

O Amazon ECS oferece suporte ao Docker e permite executar e gerenciar contêineres do Docker. Os aplicativos empacotados localmente como contêiner podem ser implantados e executados no Amazon ECS sem necessidade de qualquer alteração de configuração.

Compatibilidade com contêineres do Windows

O Amazon ECS oferece suporte ao gerenciamento de contêineres do Windows. Uma imagem de máquina da Amazon (AMI) de Windows otimizada para o Amazon ECS oferece performance aprimorada de inicialização de instância e contêiner, bem como visibilidade de métricas de CPU, utilização de memória e reservas.

Desenvolvimento local

A ILC do Amazon ECS permite simplificar a experiência de desenvolvimento local, bem como configurar e executar facilmente contêineres no Amazon ECS. O Amazon ECS CLI sustenta o Docker Compose, uma ferramenta de código aberto para definir e executar aplicações com vários contêineres. Você pode aplicar a mesma definição do Compose usada para definir uma aplicação com vários contêineres na sua máquina de desenvolvimento, como também na produção. A ILC do Amazon ECS é de código aberto. Faça download da ILC do Amazon ECS.

Suporte a repositórios

O Amazon ECS pode ser usado com qualquer repositório de imagens de Docker ou registro privado do Docker acessível hospedado por terceiros, como o Docker Hub e o Amazon Elastic Container Registry (Amazon ECR). Basta especificar o repositório em uma definição de tarefas. O Amazon ECS recuperará as imagens apropriadas para os aplicativos.

Gerenciamento

Definições de tarefas

O Amazon ECS permite que você defina tarefas por meio de um modelo declarativo do JSON chamado uma definição de tarefas. Dentro de uma definição de tarefas, você pode especificar um ou mais contêineres necessários para sua tarefa, incluindo o repositório e a imagem do Docker, os requisitos de memória e de CPU, os volumes de dados compartilhados e como os contêineres são vinculados entre si. Você pode iniciar quantas tarefas quiser a partir de um único arquivo de definição de tarefas, que pode ser registrado com o serviço. Os arquivos de definição de tarefas também permitem controle as versões da especificação do aplicativo.

Controle programático

O Amazon ECS fornece um conjunto de ações de APIs simples para permitir que você integre e amplie o serviço. As ações de APIs possibilitam que você crie e exclua clusters, registre e cancele o registro de tarefas, inicie e encerre contêineres Docker e forneça informações detalhadas sobre o estado do seu cluster e suas instâncias. Você também pode usar o AWS CloudFormation para provisionar clusters do Amazon ECS, registrar definições de tarefas e programar contêineres.

Implantação de contêineres

O Amazon ECS permite atualizar facilmente seus contêineres para novas versões. Você pode fazer o upload de uma nova versão da definição de tarefas de um aplicativo. O programador do Amazon ECS iniciará automaticamente novos contêineres usando a imagem atualizada e interromperá os contêineres que estiverem executando a versão anterior. O Amazon ECS automaticamente registra e cancela o registro de contêineres no Application Load Balancer associado.

Recuperação automática de contêineres

O Amazon ECS Service recuperará automaticamente os contêineres com problemas, assegurando que você tenha o número desejado de contêineres sustentando o seu aplicativo.

Programação

O Amazon ECS inclui várias estratégias de programação que posicionam contêineres em clusters com base nas necessidades de recursos (por exemplo, CPU ou RAM) e nos requisitos de disponibilidade. Usando as estratégias de programação disponíveis, você pode programar trabalhos de lotes, aplicativos e serviços de longa execução e processos de daemon.

Programação de tarefas
A programação de tarefas do Amazon ECS permite executar processos que realizam um trabalho e param, como trabalhos de processamento de lotes. A programação de tarefas pode iniciar tarefas de forma manual, automática, de uma fila de trabalhos ou com base em um intervalo de tempo definido.

Programação de serviços
A programação do Amazon ECS Service permite executar serviços e aplicativos stateless. Essa estratégia de programação garante que um número especificado de tarefas seja executado constantemente e reinicia as tarefas que apresentarem falha. Você pode garantir que as tarefas sejam registradas em um load balancer do Elastic Load Balancing, bem como executar verificações de integridade definidas para as tarefas em execução.

Programação de daemons
A programação de daemons do Amazon ECS executa automaticamente a mesma tarefa em cada instância selecionada de um cluster do ECS. Isso facilita a execução de tarefas que oferecem funcionalidades comuns de gerenciamento de um serviço, como registro em log, monitoramento ou backups.

Posicionamento de tarefas

O Amazon ECS permite personalizar a forma como as tarefas são posicionadas em um cluster de instâncias do EC2 de acordo com atributos incorporados como tipo de instância e zona de disponibilidade, ou atributos personalizados definidos. Você pode usar atributos como ambiente=produção para rotular recursos, usar as ações de APIs de listagem para encontrar esses recursos e usar as ações de API RunTask e CreateService para programar tarefas nesses recursos.

Com o Amazon ECS, você também pode usar estratégias de posicionamento como pacote de bins e distribuição para definir mais detalhadamente a distribuição das tarefas. As políticas podem ser encadeadas para proporcionar recursos sofisticados de posicionamento sem escrever nenhum código.

As políticas de posicionamento não são usadas com o tipo de execução AWS Fargate.

Redes e segurança

Redes de tarefas

O Amazon Elastic Container Service oferece suporte às redes do Docker e é integrado à Amazon VPC para oferecer isolamento para contêineres. Dessa forma, você pode controlar a forma como os contêineres se conectam a outros serviços e ao tráfego externo. O Amazon ECS permite optar entre quatro modos de redes para contêineres que atendem a diferentes casos de uso:

Redes de tarefas/awsvpc
Este modo atribui a cada tarefa do ECS em execução uma interface de rede elástica dedicada, o que disponibiliza recursos completos de rede aos contêineres em uma VPC, da mesma forma que em instâncias EC2.

Bridge
Este modo cria um bridge Linux que conecta todos os contêineres executados no host em uma rede local virtual, que pode ser acessada por meio da conexão de rede padrão do host.

Host
Este modo adiciona contêineres diretamente à pilha de redes do host, o que os expõe na rede do host, sem isolamento.

Nenhum
Este modo desabilita redes externas para contêineres.

Load balancing

O Amazon ECS é integrado ao Elastic Load Balancing, o que permite distribuir tráfego entre contêineres usando Application Load Balancers ou Network Load Balancers. Você especifica a definição de tarefa e o load balancer a serem usados. O Amazon ECS adiciona e remove automaticamente os contêineres do load balancer. É possível especificar uma porta dinâmica na definição de tarefas, o que disponibiliza ao contêiner uma porta não utilizada quando é programado em uma instância do Amazon EC2. Você também pode usar o roteamento baseado em caminho para compartilhar um load balancer com vários serviços.

Descoberta de serviços

O Amazon ECS inclui uma descoberta de serviços que facilita a descoberta e a conexão entre serviços conteineirizados.

O Amazon ECS cria e gerencia um registro dos nomes de serviços usando a API de nomenclatura automática do Route 53. Assim, você pode fazer referência a um serviço por nome no código e criar consultas DNS em que o nome do serviço é resolvido para o endpoint do serviço em tempo de execução.

É possível especificar condições de verificação de integridade na definição de tarefas de um serviço. O Amazon ECS garante que uma busca de serviços retorne apenas endpoints de serviço íntegros.

Segurança

O Amazon ECS permite que você especifique uma função do IAM para cada tarefa do ECS. Isso permite que as instâncias do contêiner do Amazon ECS tenham uma função mínima, que respeite a política de acesso de “menor privilégio” e permita que você gerencie a função da instância e a função da tarefa separadamente. Você também pode usar o Amazon CloudWatch Logs para ter visibilidade sobre a função do IAM à qual uma tarefa é atribuída.

Monitoramento e registro em log

Monitoramento

O Amazon ECS disponibiliza recursos de monitoramento para seus contêineres e clusters por meio do Amazon CloudWatch. Você pode monitorar a utilização média e agregada de CPU e memória por tarefas em execução, agrupadas por definição de tarefas, serviço ou cluster. Você também pode definir alarmes do CloudWatch para avisá-lo quando seus contêineres ou clusters precisam ser aumentados ou diminuídos.

Registro em log

O Amazon ECS permite registrar todas as suas chamadas de API do Amazon ECS e ter os arquivos de log entregues por meio do AWS CloudTrail. As informações registradas incluem a identidade do chamador da API, a hora da chamada da API, o endereço IP de origem do chamador da API, os parâmetros da solicitação e os elementos de resposta retornados pelo Amazon ECS. O CloudTrail oferece um histórico das chamadas de APIs efetuadas do Console de Gerenciamento da AWS, dos SDKs da AWS e da ILC da AWS. O serviço proporciona análises de segurança, rastreamento de alterações de recursos e auditoria de conformidade.

Saiba mais sobre a definição de preço do Amazon ECS

Acesse a página de definição de preço
Pronto para começar?
Cadastrar-se
Mais dúvidas?
Entre em contato conosco