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 de gerenciamento de contêineres altamente escalável e rápido que facilita a execução, a interrupção e o gerenciamento de contêineres em um cluster. Seus contêineres são definidos em uma definição de tarefa que você usa para executar tarefas individuais ou tarefas em um serviço. Neste contexto, um serviço é uma configuração que permite executar e manter simultaneamente um número específico de tarefas em um cluster. Você pode executar suas tarefas e serviços em uma infraestrutura sem servidor gerenciada pela AWS Fargate. Como alternativa, para obter mais controle sobre sua infraestrutura, você pode executar suas tarefas e serviços em um cluster de instâncias do Amazon EC2 que você gerencia.

O Amazon ECS permite que você inicie e interrompa seus aplicativos baseados em contêiner usando chamadas de API simples. Você também pode recuperar o estado do seu cluster a partir de um serviço centralizado e ter acesso a muitos recursos familiares da Amazon EC2.

Você pode programar a colocação de seus contêineres no cluster com base em suas necessidades de recursos, políticas de isolamento e requisitos de disponibilidade. Com o Amazon ECS, não é necessário operar seus próprios sistemas de gerenciamento de cluster e de configuração ou se preocupar com a escalabilidade da infraestrutura de gerenciamento.

O Amazon ECS pode ser usado para criar uma experiência consistente de compilação e implantação, para gerenciar e dimensionar cargas de trabalho em lote e Extract-Transform-Load (ETL) e para criar arquiteturas de aplicativo sofisticadas em um modelo de microsserviços. Para obter informações sobre casos de uso e cenários do Amazon ECS, consulte Casos de uso de contêiner.

A equipe de serviços de contêiner da AWS mantém um roteiro público no GitHub. O roteiro contém informações sobre em que as equipes estão trabalhando e permite que os clientes da AWS forneçam feedback direto. Para obter mais informações, consulte Roteiro de contêineres da AWS.

Recursos do Amazon ECS

O Amazon ECS é um serviço regional que simplifica a execução de contêineres de maneira altamente disponível em várias zonas de disponibilidade em uma região. Você pode criar clusters do Amazon ECS em uma VPC nova ou existente. Depois que um cluster estiver em execução, você poderá criar definições de tarefa que definem quais imagens de contêiner são executadas em seus clusters. Suas definições de tarefa são usadas para executar tarefas ou criar serviços. As imagens de contêiner são armazenadas e extraídas dos registros de contêiner, por exemplo, o Amazon Elastic Container Registry.

O diagrama a seguir mostra a arquitetura de um ambiente do Amazon ECS executado no AWS Fargate.


                Diagrama mostrando a arquitetura de um ambiente do Amazon ECS usando o tipo de inicialização Fargate.

As seções a seguir mergulham nesses elementos individuais da arquitetura do Amazon ECS mais detalhadamente.

Contêineres e imagens

Para implantar aplicativos no Amazon ECS, os componentes de aplicativos devem ser projetados para serem executados em contêineres. Um contêiner é uma unidade padronizada de desenvolvimento de software que contém tudo o que o aplicativo de software precisa para executar, incluindo código relevante, tempo de execução, ferramentas de sistema e bibliotecas de sistema. Os contêineres são criados a partir de um modelo somente leitura chamado imagem.

Geralmente, as imagens são criadas a partir de um Dockerfile, que é um arquivo de texto simples que especifica todos os componentes incluídos no contêiner. Depois de serem criadas, essas imagens são armazenadas em um registro em que elas poderão ser obtidas por download e executadas no cluster. Para obter mais informações sobre a tecnologia de contêiner, consulte Noções básicas do Docker para Amazon ECS.


                    Diagrama que mostra a criação e o registro de imagens do Docker em um ambiente do Amazon ECS.

Definições de tarefa

Para preparar seu aplicativo para execução no Amazon ECS, você deve criar uma definição de tarefa. A definição de tarefa é um arquivo de texto (no formato JSON) que descreve um ou mais contêineres (até um máximo de dez) que formam o aplicativo. A definição de tarefa pode ser considerada como um esquema para o seu aplicativo. Ela especifica vários parâmetros para o aplicativo. Por exemplo, esses parâmetros podem ser usados para indicar quais contêineres devem ser usados, quais portas devem ser abertas para o aplicativo e quais volumes de dados devem ser usados com os contêineres na tarefa. Os parâmetros específicos disponíveis para sua definição de tarefa dependem das necessidades do seu aplicativo específico. Para obter mais informações sobre como criar definições de tarefa, consulte Definições de tarefa do Amazon ECS.

Veja a seguir um exemplo de uma definição de tarefa que especifica o uso do Fargate para iniciar um único contêiner que executa um servidor web NGINX. Para um exemplo mais estendido que demonstra uso de vários contêineres em uma definição de tarefa, consulte Exemplos de definições de tarefa.

{ "family": "webserver", "containerDefinitions": [ { "name": "web", "image": "nginx", "memory": "100", "cpu": "99" }, ], "requiresCompatibilities": [ "FARGATE" ], "networkMode": "awsvpc", "memory": "512", "cpu": "256", }

Tarefas e programação

Uma tarefa é a instanciação de uma definição de tarefa dentro de um cluster. Depois de criar uma definição de tarefa para o aplicativo no Amazon ECS, você pode especificar o número de tarefas a serem executadas no cluster.

O programador de tarefas do Amazon ECS é responsável por posicionar tarefas dentro do seu cluster. Há várias opções diferentes de programação disponíveis. Por exemplo, você pode definir um serviço que executa e mantém um número de tarefas especificado simultaneamente. Para obter mais informações sobre as diferentes opções de programação disponíveis, consulte Programar tarefas doAmazon ECS.


                    Diagrama mostrando a programação e o posicionamento de tarefas em um ambiente do Amazon ECS usando o tipo de inicialização Fargate.

Clusters

Um Amazon ECScluster do é um agrupamento lógico de tarefas ou serviços. É possível registrar uma ou mais instâncias do Amazon EC2 (também conhecidas como instâncias de contêiner) no cluster para executar tarefas nelas. Ou você pode usar a infraestrutura sem servidor que o Fargate fornece para executar tarefas. Quando suas tarefas são executadas no Fargate, seus recursos de cluster também são gerenciados pelo Fargate.

Quando você usa o Amazon ECS pela primeira vez, um cluster padrão é criado para você. Você pode criar clusters adicionais em uma conta da para manter seus recursos separados.

Para mais informações sobre como criar clusters, consulte Clusters do Amazon ECS. Para obter mais informações sobre como executar instâncias de contêiner e registrá-las com seus clusters, consulte Instâncias de contêiner do Amazon ECS.

Agente do contêiner

O agente do contêiner é executado em cada instância de contêiner dentro de um cluster do Amazon ECS. O agente envia informações sobre as tarefas em execução atuais do recurso e utilização de recursos ao Amazon ECS. Ela inicia e interrompe tarefas sempre que recebe uma solicitação do Amazon ECS. Para obter mais informações, consulte Agente de contêiner do Amazon ECS.


                    Diagrama mostrando tarefas do agente de contêiner em um ambiente do Amazon ECS.

Conceitos básicos do Amazon ECS

Para saber mais sobre as ferramentas de desenvolvedor disponíveis para uso do Amazon ECS, consulte .

Se você está usando o Amazon ECS pela primeira vez, o Console de gerenciamento da AWS para o Amazon ECS fornece um assistente de primeira execução que conduz você na criação de uma definição de tarefa para um servidor web, na configuração de um serviço e na execução de sua primeira tarefa Fargate. É altamente recomendável usar o assistente de primeira execução se você tiver pouca ou nenhuma experiência prévia com o uso do Amazon ECS. Para mais informações, consulte o tutorial Conceitos básicos do Amazon ECS com o Fargate.

Como alternativa, você pode instalar o AWS Command Line Interface (AWS CLI) para usar o Amazon ECS. Para obter mais informações, consulte Configuração com o Amazon ECS.

O Amazon ECS pode ser usado junto com os seguintes serviços da AWS:

AWS Identity and Access Management

O IAM (Identity and Access Management) é um serviço de gerenciamento de acesso que ajuda você a controlar o acesso aos recursos da AWS com segurança. É possível usar o IAM para controlar quem é autenticado (fez login) e autorizado (tem permissões) a visualizar ou executar ações específicas em recursos. No Amazon ECS, você pode usar o IAM para controlar o acesso em nível de instância de contêiner usando funções do IAM e em nível de tarefa usando funções de tarefa do IAM. Para obter mais informações, consulte Gestão de identidade e acesso para Amazon Elastic Container Service.

Amazon EC2 Auto Scaling

O Auto Scaling é um serviço que permite que você expanda ou reduza suas tarefas automaticamente com base em políticas definidas pelo usuário, verificações de status de integridade e programações. Você pode usar o Auto Scaling com uma tarefa Fargate em um serviço para escalar em resposta a uma série de métricas ou com uma tarefa EC2 para escalar as instâncias de contêiner dentro do seu cluster. Para obter mais informações, consulte Serviço Auto Scaling.

Elastic Load Balancing

O serviço Elastic Load Balancing distribui automaticamente o tráfego de entrada dos aplicativos entre as tarefas no serviço Amazon ECS. Ela permite que você atinja níveis mais altos de tolerância a falhas em seus aplicativos, fornecendo continuamente a quantidade necessária de capacidade de balanceamento de carga para distribuir o tráfego de aplicativos. Você pode usar o Elastic Load Balancing para criar um endpoint que balanceie o tráfego entre os serviços em um cluster. Para obter mais informações, consulte Balanceamento de carga do serviço.

Amazon Elastic Container Registry

O Amazon ECR é um serviço gerenciado de registro seguro, dimensionável e confiável do Docker da AWS. O Amazon ECR oferece suporte a repositórios do Docker privados com permissões baseadas em recursos usando o IAM, de maneira que usuários específicos ou tarefas possam acessar repositórios e imagens. Os desenvolvedores podem usar a CLI do Docker para enviar, extrair e gerenciar imagens. Para obter mais informações, consulte o Guia do usuário do Amazon Elastic Container Registry.

AWS CloudFormation

O AWS CloudFormation oferece aos desenvolvedores e administradores de sistemas uma maneira fácil de criar e gerenciar um conjunto de recursos relacionados da AWS. Mais especificamente, ele torna o provisionamento e a atualização de recursos mais ordenado e previsível. Você pode definir clusters, definições de tarefa e serviços como entidades em um script do AWS CloudFormation. Para obter mais informações, consulte Referência de modelos do CloudFormation da AWS.

Pricing

A definição de preço do Amazon ECS depende do fato de você estar usando a infraestrutura do AWS Fargate ou do Amazon EC2 para hospedar suas cargas de trabalho em contêineres. Ao usar o Amazon ECS no AWS Outposts, a definição de preço segue o mesmo modelo de quando você está usando o Amazon EC2. Para obter mais informações, consulte Definição de preço do Amazon ECS.

O Amazon ECS Fargate e o Savings Plans também oferecem AWS que fornecem economias significativas com base no uso da . Para obter mais informações, consulte o Guia do usuário do Savings Plans.

Para visualizar sua fatura, acesse Billing and Cost Management Dashboard no console do AWS Billing and Cost Management. Sua fatura contém links para relatórios de uso que fornecem detalhes adicionais sobre sua fatura. Para saber mais sobre o faturamento de contas da AWS, consulte Faturamento de contas da AWS.

Se tiver dúvidas sobre faturamento, contas e eventos da AWS, entre em contato com o Suporte da AWS.

Para obter uma visão geral do Trusted Advisor, um serviço que ajuda você a aperfeiçoar os custos, a segurança e o desempenho do ambiente da AWS, consulte AWS Trusted Advisor.