Recursos do Amazon ECS

O Amazon Elastic Container Services (Amazon ECS) é um serviço de orquestração de contêineres totalmente gerenciado que ajuda as organizações a implantar, gerenciar e escalar facilmente aplicações conteinerizadas. Sem versão e opinativo, o ambiente de gerenciamento do Amazon ECS se integra profundamente ao resto do ambiente da AWS para fornecer uma solução segura e fácil de usar para executar workloads de contêineres na nuvem. O Amazon ECS pode ser executado com o Amazon Elastic Compute Cloud (Amazon EC2), o AWS Fargate ou até mesmo com uma infraestrutura on-premises com o Amazon ECS Anywhere.

Principais recursos

O AWS Fargate é integrado ao Amazon ECS, então você não precisa mais se preocupar com o gerenciamento de servidores, o planejamento da capacidade ou a descoberta de como isolar as workloads do contêiner para segurança. Basta definir os requisitos da sua aplicação, selecionar o AWS Fargate como o tipo de execução no console ou na interface de linha de comando (CLI), e o AWS Fargate cuidará de todo o gerenciamento de escalabilidade e infraestrutura necessários para executar seus contêineres em opções de computação flexíveis, com integrações automáticas com outros serviços de suporte da AWS de que sua aplicação precisa.

Com o Amazon ECS Anywhere, você pode usar o mesmo console e as ferramentas de operação familiares do Amazon ECS para gerenciar suas workloads de contêiner on-premises para ter uma experiência consistente em suas aplicações baseadas em contêiner. Você também pode usar o Amazon ECS no AWS Outposts para executar aplicações conteinerizadas que exigem latências particularmente baixas em sistemas on-premises.

O Amazon ECS se integra nativamente com as ferramentas de segurança, identidade e gerenciamento e governança nas quais você já confia, o que ajuda você a entrar em produção com rapidez e sucesso. Você pode atribuir permissões detalhadas para cada um de seus contêineres, proporcionando um alto nível de isolamento ao criar suas aplicações. Execute seus contêineres com os níveis de segurança e compatibilidade que você espera da AWS. E, por meio de integrações com o Amazon GuardDuty, você pode detectar de forma rápida e fácil ameaças externas às suas workloads antes que elas piorem.

O Amazon ECS é um serviço de orquestração de contêiner totalmente gerenciado, com configuração e práticas recomendadas operacionais da AWS integradas e sem plano de controle, nós ou complementos para você gerenciar. Ele se integra nativamente com a AWS e ferramentas de terceiros para fazer com que seja mais fácil para as equipes se concentrar na criação de aplicações, e não no ambiente.

Desenvolvimento

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.

A CLI do AWS Copilot é uma ferramenta que permite aos desenvolvedores criar, lançar e operar aplicações conteinerizadas prontas para produção no Amazon ECS e no AWS Fargate. O 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. Baixe o AWS Copilot.

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. O Amazon ECS recuperará as imagens apropriadas para os aplicativos.

Management

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.

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.

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.

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.

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.

O Amazon Elastic Block Store (Amazon EBS) é um serviço de armazenamento em blocos fácil de usar, escalável e de alta performance que permite provisionar armazenamento econômico para suas implantações do Amazon ECS e do AWS Fargate. Você pode usar todas as configurações e recursos do EBS com suas workloads de contêiner implantadas no Amazon ECS.

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.

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.

Saiba mais sobre a programação de tarefas do Amazon ECS »

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.

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.

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 proporcionar recursos sofisticados de posicionamento sem escrever nenhum código.

Redes

O Amazon ECS Service Connect simplifica a descoberta de serviços, a conectividade e a observação de tráfego para o Amazon ECS. Ele ajuda você a criar aplicações com mais rapidez, permitindo que você se concentre no código da aplicação e não na sua infraestrutura de rede. Você pode usar o ECS Service Connect para definir nomes lógicos para seus endpoints de serviço e usá-los em suas aplicações cliente para se conectar às dependências. O ECS Service Connect ajuda a enviar seu tráfego para endpoints íntegros e fornece telemetria de tráfego avançada no console do ECS e no Amazon CloudWatch. As implantações nativas do ECS são mais robustas com o ECS Service Connect, pois ele oferece suporte à drenagem automática de conexão que ajuda suas aplicações cliente a mudar para uma nova versão do endpoint de serviço sem encontrar erros de tráfego.

Com o ECS Service Connect, você pode:

• Definir o caminho pelo qual as aplicações cliente se conectam às suas dependências em apenas uma etapa

• Escrever e operar aplicações distribuídas resilientes com nomenclatura lógica

• Monitorar e distribuir tráfego entre tarefas do ECS sem implantar e configurar balanceadores de carga

• Implantar serviços com mais rapidez e oferecer uma integração perfeita dos microserviços do ECS que compreendem uma aplicação

Saiba mais sobre a migração dos serviços existentes do Amazon ECS da descoberta de serviços para o ECS Service Connect »

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. Ele aumenta a disponibilidade da sua aplicação porque seu serviço da Web sempre descobrirá os locais mais atualizados desses recursos que mudam dinamicamente.

Saiba mais sobre a migração dos serviços existentes do Amazon ECS da descoberta de serviços para o ECS Service Connect »

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.

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

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.

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.

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

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 da AWS, os serviços da AWS, APIs e ferramentas 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.

Com o Amazon ECS Anywhere, você pode usar o mesmo console e as ferramentas de operação familiares do Amazon ECS para gerenciar suas workloads de contêiner on-premises para ter uma experiência consistente em suas aplicações baseadas em contêiner. A integração do AWS Systems Manager (SSM) estabelece de forma automática e segura a confiança entre o hardware on-premises e o ambiente de gerenciamento da AWS.

Saiba mais sobre o Amazon ECS Anywhere »