Desenvolvimento

Suporte do Docker

O Amazon ECS oferece suporte ao Docker e permite executar e gerenciar contêineres do Docker. Ele ainda se integra à CLI do Docker Compose, para que você possa definir e executar aplicações de vários contêineres. As aplicações empacotadas localmente como contêiner podem ser implantadas e executadas no Amazon ECS sem necessidade de alterar configurações.

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) do Windows otimizada para o Amazon ECS oferece performance aprimorada de execução de instância e contêiner, bem como visibilidade de métricas de CPU, utilização de memória e reservas.

AWS Copilot

A CLI do AWS Copilot é uma ferramenta que permite aos desenvolvedores criar, lançar e operar aplicações em contêineres prontas para produção no Amazon ECS e no AWS Fargate. O AWS Copilot incorpora as práticas recomendadas, da infraestrutura à entrega contínua, e as disponibiliza aos clientes no conforto de sua linha de comando. Você também pode monitorar a integridade do seu serviço visualizando o status ou os logs do serviço, aumentar ou diminuir os serviços de produção e ativar um novo ambiente para testes automatizados. Faça download do AWS Copilot.

Suporte a repositórios

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

Gerenciamento

Definições de tarefas

O Amazon ECS permite que você defina tarefas por meio de um template do JavaScript Object Notation (JSON) denominado Task Definition (Definição de tarefas). Em 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 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 proporcionam controle de versão da especificação da aplicação.

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 permitem criar e excluir clusters, registrar e cancelar o registro de tarefas, iniciar e terminar contêineres do Docker e fornecer informações detalhadas sobre o estado de seu cluster e suas instâncias. Também é possível 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.

Implantações azuis/verdes

Implantações azuis/verdes com o AWS CodeDeploy ajudam a minimizar o tempo de inatividade durante atualizações da aplicação. Você pode iniciar uma nova versão do seu serviço do Amazon ECS paralelamente à versão antiga e testar a nova versão antes de redirecionar o tráfego. Você também pode monitorar o processo de implantação e realizar uma reversão rapidamente caso tenha algum problema.

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 que oferecem suporte à sua aplicação.

Capacity Providers

Os Capacity Providers permitem definir regras flexíveis sobre como as workloads conteinerizadas são executadas em diferentes tipos de capacidade computacional e gerenciar a escalabilidade da capacidade. Os Capacity Providers operam com o Amazon Elastic Compute Cloud (Amazon EC2) e o AWS Fargate. Ao executar tarefas e serviços, você pode dividi-los entre vários Capacity Providers, que permitem novos recursos, como a execução de um serviço em uma porcentagem de divisão predefinida entre Fargate e Fargate Spot.

Armazenamento

O Amazon Elastic File System (Amazon EFS) é um sistema de arquivos elástico, simples, escalável e totalmente gerenciado, que permite desenvolver aplicações modernas, além de persistir e compartilhar dados e estado de suas implantações do Amazon ECS e do AWS Fargate. Todos os aspectos de uso do Amazon EFS com contêineres, incluindo conectividade, são atendidos, sem necessidade de gerenciamento. Você pode se concentrar apenas nas suas aplicações, não na infraestrutura. Saiba mais sobre o armazenamento persistente de arquivo.

Programação e posicionamento de tarefas

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 depois param, como trabalhos de processamento de lotes. A programação de tarefas pode iniciar tarefas de forma 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 serviço do Amazon ECS permite executar serviços e aplicações sem estado. Essa estratégia de programação garante que um número especificado de tarefas seja executado constantemente e reinicie as tarefas se elas falharem. Os clientes podem garantir que as tarefas sejam registradas em um balanceador de carga 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 que os usuários personalizem a forma como as tarefas são posicionadas em um cluster de instâncias do Amazon EC2 de acordo com atributos incorporados, como tipo de instância e zona de disponibilidade, ou atributos personalizados definidos pelo usuário. 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 o posicionamento das tarefas. As políticas podem ser encadeadas para a obtenção de recursos sofisticados de posicionamento sem escrever nenhum código.

Redes

Descoberta de serviço

O Amazon ECS é integrado ao AWS Cloud Map para facilitar a descoberta e a conexão entre seus serviços conteinerizados. O AWS Cloud Map é um serviço de descoberta de recursos de nuvem que permite definir nomes personalizados para os recursos da sua aplicação. Isso aumenta a disponibilidade da sua aplicação porque seu serviço da Web sempre descobrirá os locais mais atualizados desses recursos que mudam dinamicamente.

Malha de serviço

Com a malha de serviços, é fácil criar e executar aplicações de microsserviços complexas adotando um só padrão de comunicação para cada microsserviço na aplicação. O AWS App Mesh é um serviço que facilita a configuração de parte de sua aplicação para visibilidade de ponta a ponta e alta disponibilidade. Para usar o App Mesh, adicione a imagem proxy Envoy à definição de tarefa do ECS. O App Mesh gerencia a configuração do Envoy para fornecer recursos de malha de serviço. O App Mesh exporta métricas, registros em log e rastreamentos aos endpoints especificados no bootstrap de configuração do Envoy fornecido. O App Mesh fornece uma API para configurar rotas de tráfego, interrupção de circuito, novas tentativas e outros controles entre os microsserviços habilitados para a malha.

Redes de tarefas

O Amazon ECS 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:

Rede 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.

Ponte
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.

Balanceamento de carga

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 balanceador de carga a serem usados. O Amazon ECS adiciona e remove automaticamente os contêineres do balanceador de carga. É possível especificar uma porta dinâmica na definição de tarefa, que disponibiliza ao seu contêiner uma porta não utilizada quando estiver programada em uma instância do EC2. Você também pode usar o roteamento baseado em caminho para compartilhar um balanceador de carga com vários serviços.

Monitoramento e registro em log

Monitoramento

O Amazon ECS fornece 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 é necessário aumentar ou reduzir a escala na vertical de seus contêineres ou clusters.

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.

AWS Config

O AWS Config se integra ao Amazon ECS para fornecer visibilidade da sua configuração dos recursos da AWS em sua conta da AWS. O AWS Config permite monitorar e rastrear como os recursos foram configurados, como eles se relacionam entre si e como as configurações e os relacionamentos mudam com o tempo. O AWS Config permite que você simplifique a compatibilidade e a segurança, a solução de problemas operacionais e a administração de recursos.

Implantações híbridas

AWS Outposts

Você pode usar o Amazon ECS no AWS Outposts para executar aplicações conteinerizadas que exigem latências particularmente baixas em sistemas on-premises. O Outposts é um serviço totalmente gerenciado que estende a infraestrutura, os produtos, as APIs e as ferramentas da AWS em praticamente qualquer site conectado. Com o Amazon ECS no Outposts, você pode gerenciar contêineres on-premises com a mesma facilidade que gerencia seus contêineres na nuvem.

Saiba mais sobre o preço do Amazon ECS

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