O que é o Amazon Elastic Container Service? - Amazon Elastic Container Service

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

O que é o Amazon Elastic Container Service?

O Amazon Elastic Container Service (Amazon ECS) é um serviço totalmente gerenciado de orquestração de contêineres ajuda a implantar, gerenciar e dimensionar facilmente aplicações conteinerizadas. Como um serviço totalmente gerenciado, o Amazon ECS vem com práticas recomendadas operacionais e de configuração da AWS incorporadas. Ele é integrado à AWS e a ferramentas de terceiros, como o Amazon Elastic Container Registry e o Docker. Essa integração torna mais fácil para as equipes se concentrarem na criação das aplicações, não no ambiente. É possível executar e escalar suas workloads de contêiner nas Regiões da AWS na nuvem e on-premises, sem a complexidade de gerenciar um ambiente de gerenciamento.

Terminologia e componentes do Amazon ECS

Há três camadas no Amazon ECS:

  • Capacidade: a infraestrutura em que seus contêineres são executados

  • Controlador: implanta e gerencia suas aplicações que são executadas nos contêineres

  • Provisionamento: as ferramentas que podem ser usadas para interagir com o programador para implantar e gerenciar suas aplicações e contêineres

O diagrama a seguir mostra as camadas do Amazon ECS.


                Diagrama mostrando as camadas de capacidade, controlador e provisionamento.

Capacidade do Amazon ECS

A capacidade do Amazon ECS é a infraestrutura em que seus contêineres são executados. Veja a seguir uma visão geral das opções de capacidade:

  • Instâncias do Amazon EC2 na nuvem da AWS

    Você escolhe o tipo de instância, o número de instâncias e gerencia a capacidade.

  • Tecnologia sem servidor (AWS Fargate (Fargate)) na nuvem da AWS

    O Fargate é um mecanismo de computação sem servidor. pay-as-you-go Com o Fargate, você não precisa gerenciar servidores, lidar com o planejamento de capacidade ou isolar workloads de contêineres para segurança.

  • Máquinas virtuais (VM) ou servidores on-premises

    O Amazon ECS Anywhere fornece suporte para registrar uma Instância externa, como um servidor on-premises ou uma máquina virtual (VM), no cluster do Amazon ECS.

A capacidade pode estar localizada em qualquer um dos recursos da AWS a seguir:

  • Uma VPC com zonas de disponibilidade e uma zona Wavelength.

  • Local Zones

  • Zonas do Wavelength

  • Regiões da AWS

  • AWS Outposts

Controlador do Amazon ECS

O programador do Amazon ECS é o software que gerencia suas aplicações.

Provisionamento do Amazon ECS

Há várias opções para provisionar o Amazon ECS:

  • AWS Management Console: fornece uma interface da Web que você pode usar para acessar seus recursos do Amazon ECS.

  • AWS Command Line Interface (AWS CLI): fornece comandos para um amplo conjunto de serviços da AWS, incluindo o Amazon ECS. Há suporte para o Windows, Mac e Linux. Para ter mais informações, consulte AWS Command Line Interface.

  • SDKs da AWS: fornece APIs específicas de idioma e cuida de muitos dos detalhes da conexão. Elas incluem o cálculo de assinaturas, o tratamento de novas tentativas de solicitação e o tratamento de erros. Para obter mais informações, consulte AWS SDKs.

  • Copilot: fornece uma ferramenta de código aberto para os desenvolvedores criarem, lançarem e operarem aplicações em contêineres prontos para produção no Amazon ECS. Para obter mais informações, consulte Copilot no GitHub site.

  • AWS CDK: fornece um framework de desenvolvimento de software de código aberto que você pode usar para modelar e provisionar recursos de aplicações em nuvem usando linguagens de programação conhecidas. O AWS CDK provisiona seus recursos de forma segura e repetível por meio do AWS CloudFormation.

Ciclo de vida do aplicação

O diagrama a seguir mostra o ciclo de vida da aplicação e como ela funciona com os componentes do Amazon ECS.


                Diagrama mostrando as camadas de capacidade, controlador e provisionamento.

Você deve arquitetar seus aplicativos para que eles possam ser executados em contêineres. Um contêiner é uma unidade padronizada de desenvolvimento de software que contém tudo o que sua aplicação de software precisa para ser executada. Isso inclui código relevante, runtime, ferramentas do sistema e bibliotecas do sistema. Os contêineres são criados a partir de um modelo somente leitura chamado imagem. Normalmente, as imagens são criadas a partir de um Dockerfile. O Dockerfile é um arquivo de texto simples que especifica todos os componentes incluídos no contêiner. Depois de serem compiladas, essas imagens são armazenadas em um registro, como o Amazon ECR, de onde elas podem ser baixadas.

Depois de criar e armazenar sua imagem, é possível criar uma definição de tarefa do Amazon ECS. Uma definição de tarefa é como um esquema para sua aplicação. É um arquivo de texto em formato JSON que descreve os parâmetros e um ou mais contêineres que formam sua aplicação. Por exemplo, é possível usar isso para especificar parâmetros para o sistema operacional, os contêineres a serem usados, as portas a serem abertas para sua aplicação e os volumes de dados a serem usados com os contêineres na tarefa. Os parâmetros específicos disponíveis para sua definição de tarefa dependem das necessidades da aplicação específica.

Depois de configurar sua definição de tarefa, você a implanta como um serviço ou uma tarefa em seu cluster. Um cluster é um agrupamento lógico de tarefas ou serviços executados na infraestrutura de capacidade registrada em um cluster.

Uma tarefa é a instanciação de uma definição de tarefa dentro de um cluster. É possível executar uma tarefa autônoma ou executar uma tarefa como parte de um serviço. É possível usar um serviço do Amazon ECS para executar e manter simultaneamente o número desejado de tarefas em um cluster do Amazon ECS. Ele funciona de forma que, se qualquer uma de suas tarefas falharem ou pararem por algum motivo, o programador de serviço do Amazon ECS iniciará outra instância com base na sua definição de tarefa. Ele faz isso para substituí-la e, assim, manter o número desejado de tarefas no serviço.

O agente de contêiner é executado em cada instância de contêiner em um cluster do Amazon ECS. O agente envia para o Amazon ECS informações sobre as atuais tarefas em execução e a utilização dos recursos dos seus contêineres. Ele inicia e interrompe tarefas sempre que recebe uma solicitação do Amazon ECS.

Depois de implantar a tarefa ou o serviço, é possível usar qualquer uma das ferramentas a seguir para monitorar a implantação e a aplicação:

  • CloudWatch

  • Monitoramento de runtime