Limpeza automática de tarefas e de imagens do Amazon ECS - Amazon Elastic Container Service

Limpeza automática de tarefas e de imagens do Amazon ECS

Sempre que uma tarefa é colocada em uma instância de contêiner, o agente de contêiner do Amazon ECS verifica se as imagens referenciadas na tarefa são as mais recentes da etiqueta especificada no repositório. Caso contrário, o comportamento padrão permite que o agente execute pull das imagens de seus respectivos repositórios. Se você atualizar frequentemente as imagens em suas tarefas e serviços, o armazenamento de instâncias do contêiner poderá encher rapidamente com imagens do Docker que você não está mais usando e que provavelmente nunca mais usará. Por exemplo, você pode usar um pipeline de integração contínua e implantação contínua (CI/CD).

nota

O comportamento da extração de imagens do agente do Amazon ECS pode ser personalizado por meio do parâmetro ECS_IMAGE_PULL_BEHAVIOR. Para ter mais informações, consulte Configuração do agente de contêiner do Amazon ECS.

Da mesma forma, os contêineres que pertencem a tarefas interrompidas também podem consumir armazenamento de instâncias de contêiner com informações de log, volumes de dados e outros artefatos. Esses artefatos são úteis para os contêineres de depuração que pararam inesperadamente, mas grande parte desse armazenamento pode ser liberado com segurança após um período.

Por padrão, o agente de contêiner do Amazon ECS limpa automaticamente tarefas e imagens do Docker interrompidas que não estão sendo usadas por qualquer tarefa nas instâncias de contêiner.

nota

O recurso de limpeza de imagem automatizado requer pelo menos a versão 1.13.0 do agente de contêiner do Amazon ECS. Para atualizar o agente para a versão mais recente, consulte Atualizar o agente de contêiner do Amazon ECS.

As seguintes variáveis de configuração de agente estão disponíveis para ajustar sua experiência de limpeza automatizada de tarefas e imagens. Para mais informações sobre como definir essas variáveis nas instâncias de contêiner, consulte Configuração do agente de contêiner do Amazon ECS.

ECS_ENGINE_TASK_CLEANUP_WAIT_DURATION

Esta variável especifica o tempo de espera antes de remover qualquer contêiner que pertença a tarefas interrompidas. O processo de limpeza de imagem não pode excluir uma imagem, contanto que haja um contêiner que faça referência a ele. Quando as imagens não são referenciadas por nenhum contêiner (interrompidas ou em execução), elas se tornam candidatas a limpeza. Por padrão, este parâmetro é definido para 3 horas, mas é possível reduzir esse período para até 1 minuto, se isso for necessário para sua aplicação. O parâmetro será ignorado se você definir o valor para menos de 1 segundo.

ECS_DISABLE_IMAGE_CLEANUP

Se você definir esta variável como true, a limpeza automatizada de imagem será desativada na instância de contêiner e nenhuma imagem será removida automaticamente.

ECS_IMAGE_CLEANUP_INTERVAL

Esta variável especifica a frequência em que o processo de limpeza automatizada de imagem deve procurar as imagens a serem excluídas. O padrão é a cada 30 minutos, mas você pode reduzir esse período para até 10 minutos, a fim de remover as imagens com mais frequência.

ECS_IMAGE_MINIMUM_CLEANUP_AGE

Essa variável especifica o intervalo de tempo mínimo entre o momento em que uma imagem foi obtida e o momento em que ela pode se tornar candidata à remoção. Ela é usada para evitar a limpeza de imagens que acabaram de ser obtidas. O valor padrão é 1 hora.

ECS_NUM_IMAGES_DELETE_PER_CYCLE

Esta variável especifica quantas imagens podem ser removidas em um único ciclo de limpeza. O valor padrão é 5 e o valor mínimo é 1.

Quando o agente de contêiner do Amazon ECS estiver em execução e a limpeza automatizada de imagem não estiver desativada, o agente verificará imagens do Docker que não são referenciadas por contêineres interrompidos ou em execução com uma frequência determinada pela variável ECS_IMAGE_CLEANUP_INTERVAL. Se as imagens não utilizadas forem localizadas e forem mais antigas do que o tempo mínimo de limpeza especificado pela variável ECS_IMAGE_MINIMUM_CLEANUP_AGE, o agente removerá até o número máximo de imagens especificadas com a variável ECS_NUM_IMAGES_DELETE_PER_CYCLE. As imagens referenciadas menos recentes são excluídas primeiro. Depois que as imagens forem removidas, o agente esperará até o intervalo seguinte e repetirá o processo novamente.