Tipos de inicialização do Amazon ECS - Amazon Elastic Container Service

Tipos de inicialização do Amazon ECS

O tipo de execução da definição de tarefa define em qual capacidade ela pode ser executada, por exemplo, AWS Fargate.

Depois de escolher o tipo de execução, o Amazon ECS verifica se os parâmetros de definição de tarefas configurados funcionam com o tipo de execução.

Fargate

O Fargate é um mecanismo de computação com tecnologia sem servidor e pagamento conforme o uso que permite se concentrar na criação de aplicações sem gerenciar servidores. Ao escolher o Fargate, não é necessário gerenciar uma infraestrutura do EC2. Tudo o que você precisa fazer é criar a imagem de contêiner e definir em qual cluster deseja executar as aplicações. O Fargate tem integração nativa com serviços da AWS que incluem:

  • Amazon VPC

  • Auto Scaling

  • Elastic Load Balancing

  • IAM

  • Secrets Manager 

Você tem mais controle com o Fargate do que com o EC2 porque seleciona a CPU e a memória exatas de que a aplicação precisa. O Fargate processa o aumento horizontal de escala da capacidade para que você não precise se preocupar com picos de tráfego. Isso significa que há menos esforço operacional com o Fargate.

O Fargate atende aos padrões de programas de conformidade, incluindo PCI, FIPS 140-2, FedRAMP e HIPAA. Para obter mais informações, consulte Serviços da AWS no escopo por programa de conformidade.

O Fargate é adequado para as workloads a seguir:

  • Workloads grandes que precisam de baixa sobrecarga operacional

  • Pequenas workloads que têm explosão ocasional

  • Workloads pequenas

  • Workloads em batch

Para obter informações sobre as regiões que oferecem suporte ao Fargate, consulte Regiões com suporte para Amazon ECS no AWS Fargate.

O diagrama a seguir mostra a arquitetura geral.

Visão geral da arquitetura do Amazon ECS.

Para obter mais informações sobre o Amazon ECS no Fargate, consulte AWS Fargate para o Amazon ECS.

EC2

O tipo de inicialização do EC2 é adequado para workloads grandes que devem ter preço otimizado.

Ao considerar como modelar definições de tarefa e serviços usando o tipo de inicialização do EC2, recomendamos que você considere quais processos devem ser executados juntos e como você pode dimensionar cada componente.

Por exemplo, suponha que uma aplicação seja formada pelos seguintes componentes:

  • Um serviço frontend que exiba informações em uma página da web

  • Um serviço backend que forneça APIs para o serviço frontend

  • Um armazenamento físico de dados

Neste exemplo, crie definições de tarefa que agrupem contêineres utilizados para um propósito em comum. Faça a separação dos componentes distintos em várias definições de tarefa separadas. O cluster de exemplo abaixo tem três instâncias de contêiner que executam três contêineres de serviços frontend, dois contêineres de serviço backend e um contêiner de serviço de armazenamento físico de dados.

É possível agrupar contêineres relacionados em uma definição de tarefa, como contêineres vinculados que devem ser executados juntos. Por exemplo, adicione um contêiner de transmissão de log ao serviço de fron-end e inclua-o na mesma definição de tarefa.

Depois que tiver as definições de tarefa, será possível criar serviços com base nelas para manter a disponibilidade das tarefas desejadas. Para ter mais informações, consulte Criação de um serviço do Amazon ECS usando o console. Nos seus serviços, você pode associar contêineres a balanceadores de carga do Elastic Load Balancing. Para ter mais informações, consulte Uso do balanceamento de carga para distribuir o tráfego de serviço do Amazon ECS. Quando os requisitos da aplicação mudam, você pode atualizar os serviços para aumentar ou diminuir o número de tarefas desejadas. Outra opção é atualizar os serviços para implantar versões mais recentes dos contêineres nas suas tarefas. Para ter mais informações, consulte Atualização de um serviço do Amazon ECS usando o console.

Exemplo de arquitetura de aplicação com três instâncias. A instância 1 tem um contêiner de serviço de frontend e um contêiner de serviço de banco de dados. A instância 2 e a instância 3 têm um contêiner de serviço de frontend e um contêiner de serviço de backend.

Externa (Amazon ECS Anywhere)

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. As instâncias externas são otimizadas para executar aplicações que geram tráfego de saída ou dados de processo. Se sua aplicação exigir tráfego de entrada, a falta de suporte do Elastic Load Balancing torna a execução dessas workloads menos eficiente. O Amazon ECS adicionou um novo tipo de inicialização EXTERNAL que você pode usar para criar serviços ou executar tarefas nas instâncias externas.

A seguir, é mostrada uma visão geral da arquitetura de sistema de alto nível do Amazon ECS Anywhere. O servidor on-premises tem o agente do Amazon ECS e o agente do SSM instalados.

Diagrama mostrando a arquitetura do Amazon ECS Anywhere.

Para ter mais informações, consulte Clusters do Amazon ECS para o tipo de inicialização externa.