Como configuro o CloudWatch Container Insights para monitorar minhas tarefas do ECS e a implantação de contêineres?

Data da última atualização: 8/4/2022

Desejo configurar o Amazon CloudWatch Container Insights para monitorar minhas tarefas do Amazon Elastic Container Service (Amazon ECS) e a implantação de contêineres. Como posso fazer isso?

Descrição breve

O Container Insights coleta métricas nos níveis de cluster, tarefa e serviço. Essas métricas incluem o uso de recursos como CPU, memória, disco e rede e estão disponíveis nos painéis automáticos do CloudWatch.

Você pode configurar o Amazon ECS para habilitar todos os novos clusters para o Container Insights por padrão. Ou você pode habilitar o Container Insights em clusters individuais usando as configurações de cluster durante a criação do cluster. Você também pode habilitar o Container Insights em clusters existentes usando a AWS Command Line Interface (AWS CLI).

Resolução

Observação: se você receber erros ao executar comandos da AWS CLI, certifique-se de estar utilizando a versão mais recente da AWS CLI.

Modificar configurações da conta

Habilite o Container Insights para todos os novos clusters criados ao optar pela configuração da conta do Container Insights.

Modificar as configurações da conta usando o console do CloudWatch

  1. Abra o console do Amazon ECS.
  2. No painel de navegação, escolha a região para a qual deseja modificar as configurações da conta.
  3. Escolha Account Settings (Configurações da conta).
  4. Na seção CloudWatch Container Insights, você pode marcar ou desmarcar a caixa de seleção para cada configuração de conta para o usuário e a função autenticados do AWS Identity and Access Management (IAM). Escolha Save (Salvar) após terminar.
  5. Na tela de confirmação, escolha Confirm (Confirmar) para salvar a seleção.

Ao fazer login como usuário root da conta da AWS, você pode alterar a configuração padrão da conta. Ou você pode alterar a configuração de qualquer usuário ou função do IAM específico na conta.

Modificar as configurações de conta padrão para todos os usuários ou funções do IAM na sua conta (AWS CLI)

Use este comando para modificar a configuração de conta padrão para todos os usuários ou funções do IAM na sua conta. As alterações resultantes são aplicáveis a toda a conta da AWS, a menos que um usuário ou função do IAM substitua explicitamente essas configurações.

aws ecs put-account-setting-default --name containerInsights --value enabled --region <REGION_NAME>

Para obter mais informações, consulte Modificar configurações da conta.

Crie um cluster com o Container Insights habilitado

Você pode usar o console do Amazon ECS ou a AWS CLI para habilitar o Container Insights durante a criação do cluster.

Crie um cluster com o Container Insights habilitado usando o console

Observação: certifique-se de usar o novo console do Amazon ECS (v2) para concluir essas etapas. Se desejar usar o console clássico, consulte Criar um cluster usando o console clássico.

  1. Abra o novo console do Amazon ECS.
  2. No painel de navegação, escolha a região na qual deseja criar o cluster.
  3. Escolha Clusters e, em seguida, escolha Create cluster (Criar cluster).
  4. Na seção de configuração do cluster, escolha as configurações necessárias para criar seu cluster.
  5. Expanda Monitoring (Monitoramento) e ative a opção Use Container Insights (Usar Container Insights).
  6. Escolha Create (Criar).

Criar um cluster com o Container Insights habilitado usando a AWS CLI

Para criar um novo cluster com o Container Insights habilitado, execute este comando:

aws ecs create-cluster --cluster-name <CLUSTER_NAME> --settings "name=containerInsights,value=enabled" --region <REGION_NAME>

Habilitar o Container Insights em um cluster existente do Amazon ECS

Para habilitar o Container Insights em um cluster existente, execute este comando:

aws ecs update-cluster-settings --cluster <CLUSTER_NAME> --settings name=containerInsights,value=enabled --region <REGION_NAME>

Considerações sobre o Container Insights

Ao usar o CloudWatch Container Insights, tenha em mente o seguinte:

  • Quando você usa um tipo de execução do Amazon Elastic Compute Cloud (Amazon EC2), sua tarefa não precisa ter configurações de recursos de CPU de contêiner. Para mostrar as métricas de utilização da CPU no nível da tarefa do ECS, defina o parâmetro da CPU em nível de tarefa ou de contêiner na definição da tarefa.
  • Métricas de rede estão disponíveis para todas as tarefas executadas no AWS Fargate. Métricas de rede também estão disponíveis para tarefas executadas em instâncias do Amazon EC2 usando os modos de rede bridge ou awsvpc.
  • Para coletar métricas no nível da instância de clusters do ECS hospedados em uma instância do EC2, implante o agente do CloudWatch.

Usar o CloudWatch Logs Insights para visualizar dados do Container Insights

As métricas coletadas pelo Containers Insights for Amazon ECS não são granulares o suficiente para permitir o rastreamento de tarefas únicas. Isso ocorre porque as métricas disponíveis são todas agregadas e calculadas em média no nível da família de definição de tarefas. Para fazer uma análise mais profunda dos dados de performance coletados, use as consultas do CloudWatch Logs Insights.

As métricas de desempenho do Container Insights são coletadas automaticamente na forma de registros usando eventos de log de performance. Abra o console do CloudWatch Logs Insights e selecione um grupo de logs neste formato:

/aws/ecs/containerinsights/<CLUSTER_NAME>/performance

Por exemplo, essa consulta exibe o uso no nível da tarefa para CPU e memória:

stats avg(CpuUtilized) as CPU, avg(MemoryUtilized) as Mem by TaskId
| filter Type="Task"
| sort Mem, CPU desc