Amazon ECS

Amazon Elastic Container Service

Postado por Rafael Brandão em Sep. 28, 2023

O que é?

é um serviço de orquestração de contêineres escalável que oferece suporte a contêineres do docker e permite executar aplicativos em um cluster gerenciado de instâncias do Amazon EC2. Eliminando a necessidade de instalar, operar e escalar a própria infraestrutura de gerenciamento de cluster.

Onde é usado?

é usado para implantar, gerenciar e orquestrar contêineres docker na AWS. Implantar aplicações WEB, serviços e microsserviços, gerenciar integrações e entregas contínuas (CI/CD) para construir, testar e implantar novas versões de recursos, dentre outros.

Componentes

é composto por vários componentes:

Cluster

O cluster é usado para agrupar instâncias EC2 ou tarefas do AWS Fargate para executar contêineres.

Tarefa

A tarefa (task) é uma unidade de implantação que representa um conjunto de contêineres que são implantados juntos em uma instância EC2 ou em uma tarefa do AWS Fargate. As tarefas são definidas usando um arquivo de definição de tarefa.

Para criar uma tarefa é necessário criar uma definição de tarefa que descreve como a tarefa deve ser configurada. Exemplo:

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

Serviço

O serviço(service) define e gerencia como um conjunto de tarefas devem ser implantadas e executadas em um cluster.

E garante que um número especificado de tarefas esteja em execução, gerencia a escalabilidade automática e mantem as aplicações em execução de forma resiliente.

Referências