Arquitetar a solução para o Amazon ECS - Amazon Elastic Container Service

Arquitetar a solução para o Amazon ECS

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 sua aplicações para que possam ser executadas 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 contém as instruções para criar um 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

Capacidade

A capacidade é a infraestrutura onde os contêineres são executados. Estas são as opções:

  • Instâncias do Amazon EC2

  • Tecnologia sem servidor (AWS Fargate)

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

Você especifica a infraestrutura ao criar um cluster. Você também especifica o tipo de infraestrutura ao registrar uma definição de tarefa. A definição da tarefa refere-se à infraestrutura como o “tipo de execução”. Você também usa o tipo de execução ao executar uma tarefa autônoma ou implantar um serviço. Para obter informações sobre as opções de tipo de execução, consulte Tipos de inicialização do Amazon ECS.

Service endpoints

O endpoint do serviço é o URL do ponto de entrada para o Amazon ECS que você usa para se conectar ao serviço programaticamente usando o Internet Protocol versão 4 (IPv4) ou o Internet Protocol versão 6 (IPv6). Por padrão, as solicitações que você faz para se conectar ao Amazon ECS programaticamente usam endpoints de serviço que oferecem suporte somente a solicitações IPv4. Para se conectar programaticamente ao Amazon ECS usando solicitações IPv4 ou IPv6, é possível usar um endpoint de pilha dupla. Para obter informações sobre o uso de endpoints de pilha dupla, consulte Usar endpoints de pilha dupla do Amazon ECS.

Redes

Os recursos da AWS são criados em sub-redes. Ao usar instâncias do EC2, o Amazon ECS executa as instâncias na sub-rede que você especifica ao criar um cluster. Suas tarefas são executadas na sub-rede da instância. No Fargate ou em máquinas virtuais on-premises, você especifica a sub-rede ao executar uma tarefa ou criar um serviço.

Dependendo da aplicação, a sub-rede pode ser privada ou pública e estar em qualquer um dos seguintes recursos da AWS:

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

  • Local Zones

  • Zonas do Wavelength

  • Regiões da AWS

  • AWS Outposts

Para ter mais informações, consulte Aplicações do Amazon ECS em sub-redes compartilhadas, zonas locais e zonas do Wavelength ou Amazon Elastic Container Service no AWS Outposts.

Você pode fazer com que a aplicação se conecte à Internet usando um dos seguintes métodos:

  • Uma sub-rede pública com um gateway da Internet

    Use sub-redes públicas quando tiver aplicações públicas que exijam grandes quantidades de largura de banda ou latência mínima. Os cenários aplicáveis incluem serviços de streaming de vídeo e jogos.

  • Uma sub-rede privada com um gateway NAT

    Use sub-redes privadas quando quiser proteger seus contêineres do acesso externo direto. Os cenários aplicáveis incluem sistemas de processamento de pagamentos ou contêineres que armazenam dados e senhas do usuário.

  • AWS PrivateLink

    Use o AWS PrivateLink para usufruir de conectividade privada entre VPCs, serviços da AWS e suas redes on-premises sem expor seu tráfego à Internet pública.

Acesso a recursos

Você pode usar as configurações da sua conta do Amazon ECS para acessar os seguintes recursos:

  • Container Insights

    O CloudWatch Container Insights coleta, agrega e resume métricas e logs das suas aplicações e microsserviços conteinerizados. As métricas incluem a utilização de recursos, como CPU, memória, disco e rede.

  • Truncamento de awsvpc

    Em determinados tipos de instâncias do EC2, você pode ter interfaces de rede (ENIs) adicionais disponíveis em instâncias de contêiner recém-executadas.

  • Autorização para atribuição de tags

    Os usuários devem ter permissões para ações que criam um recurso, como ecsCreateCluster. Se as tags forem especificadas na ação resource-creating, a AWS executará autorização adicional na ação ecs:TagResource para verificar se os usuários têm permissões para criar tags.

  • Conformidade com o Fargate FIPS-140

    O Fargate oferece suporte ao Padrão Federal de Processamento de Informações (FIPS-140), que especifica os requisitos de segurança para módulos criptográficos que protejam informações confidenciais. É o padrão atual dos governos dos Estados Unidos e do Canadá e é aplicável a sistemas que precisam estar em conformidade com a Lei Federal de Gerenciamento de Segurança da Informação (FISMA) ou com o Programa Federal de Gerenciamento de Riscos e Autorizações (FedRAMP).

  • Alterações no tempo de retirada de tarefas do Fargate

    É possível configurar o período de espera antes que as tarefas do Fargate sejam retiradas para aplicação de patches.

  • VPC de pilha dupla

    Permita que as tarefas se comuniquem por IPv4, IPv6 ou ambos.

  • Formato do nome do recurso da Amazon (ARN)

    Alguns recursos, como autorização de marcação, exigem um novo formato de nome do recurso da Amazon (ARN).

Para obter mais informações, consulte Acesso aos recursos do Amazon ECS com as configurações de conta.

Perfis do IAM

Um perfil do IAM é uma identidade do IAM que você pode criar em sua conta que tem permissões específicas. No Amazon ECS, você pode criar perfis para conceder permissões aos recursos do Amazon ECS, como contêineres ou serviços.

Alguns recursos do Amazon ECS exigem perfis. Para obter mais informações, consulte Perfis do IAM para o Amazon ECS.

Registro em log

O registro em log e o monitoramento são aspectos importantes para manter a confiabilidade, a disponibilidade e o desempenho das workloads do Amazon ECS. As seguintes opções estão disponíveis:

  • Logs do Amazon CloudWatch: encaminha os logs para o Amazon CloudWatch

  • FireLens para Amazon ECS: encaminha os logs para um serviço da AWS ou destino da AWS Partner Network para armazenamento e análise de log. O AWS Partner Network é uma comunidade global de parceiros que utiliza programas, experiência e recursos para criar, comercializar e vender ofertas aos clientes.