Como posso alocar memória para tarefas no Amazon ECS?

10 minuto de leitura
0

Quero usar o Amazon Elastic Container Service (Amazon ECS) para alocar memória para tarefas.

Breve descrição

No Amazon ECS, a memória pode ser definida no nível da tarefa e no nível de cada contêiner. A memória definida no nível da tarefa é o limite rígido de memória para a tarefa. No nível do contêiner, há dois parâmetros para alocar memória para tarefas: memoryReservation (um limite flexível) e memory (um limite rígido). Para tarefas hospedadas em instâncias do Amazon EC2, o campo de memória no nível da tarefa é opcional e qualquer valor pode ser usado. Se um valor de memória no nível da tarefa for especificado, o valor da memória no nível do contêiner será opcional. O valor de cada parâmetro é subtraído das unidades de memória disponíveis de uma instância de contêiner do Amazon ECS quando uma tarefa está em execução. O cálculo é baseado no limite flexível, limite rígido ou memória em nível de tarefa de uma definição de tarefa. Para obter mais informações, consulte Cluster reservation.

**Observação:**os parâmetros memory e memoryReservation são definidos como parâmetros de definição de contêiner de uma definição de tarefa do Amazon ECS. Se você especificar um valor para memory e memoryReservation, memory deverá ser maior que memoryReservation. Se você especificar memoryReservation, esse valor será subtraído dos recursos de memória disponíveis da instância de contêiner em que o contêiner é colocado. Caso contrário, o valor de memory será usado. Para obter mais informações, consulte Memory.

Resolução

Antes de começar, verifique se você tem um cluster do Amazon ECS que inclua uma instância do Amazon Elastic Compute Cloud (Amazon EC2). Para mais informações sobre como criar um cluster, consulte Como criar um cluster usando o console clássico. Para mais informações sobre como configurar o cluster e a instância do contêiner, consulte ](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/memory-management.html)Gerenciamento de memória de instâncias de contêiner[.

Exibir as alocações de memória de uma instância de contêiner

  1. Abra o console do Amazon ECS.
  2. No painel de navegação, escolha Clusters.
  3. Escolha o cluster que você criou.
  4. Escolha ECS Instances e, em seguida, escolha a instância de contêiner incluída no cluster que você criou na coluna Container Instance.
    Observação: o painel Details mostra que a memória na coluna Available é igual à memória na coluna Registered.
  5. Para obter estatísticas sobre o uso de recursos da instância, conecte-se à instância usando SSH e execute o comando docker stats.

Criar uma definição de tarefa com um limite flexível

  1. No console do Amazon ECS, no painel de navegação, escolha Definições de tarefa.
  2. Selecione Criar nova definição de tarefa.
  3. Para o tipo de inicialização, escolha EC2 e, em seguida, escolha Próxima etapa.
  4. Em Nome da definição da tarefa, insira um nome.
  5. Na seção Definições de contêiner, escolha Adicionar contêiner.
  6. Em Nome do contêiner, insira um nome.
  7. Em Imagem, insira nginx ou a imagem do Docker apropriada para seu ambiente.
  8. Em Limites de memória (MiB), escolha Limite flexível e digite 700.
  9. Escolha Adicionar e, em seguida, escolha Criar.

Executar a definição da tarefa com um limite flexível

  1. No console do Amazon ECS, no painel de navegação, escolha Clusters e, em seguida, escolha o cluster que você criou.
  2. Escolha a visualização Tarefas e, em seguida, escolha Executar nova tarefa.
  3. Em Tipo de inicialização, escolha EC2, escolha a definição de tarefa que você criou com limite flexível e, em seguida, escolha Executar tarefa. Observação: Definição da tarefa e Cluster podem ser pré-preenchidos com o nome da definição da tarefa e do cluster que você criou anteriormente se estiver usando o ECS pela primeira vez.
  4. Quando a coluna Último status da tarefa com um limite flexível for exibida como EM EXECUÇÃO, vá para a próxima etapa.
    **Observação:**para atualizar o status da tarefa para EM EXECUÇÃO, atualize a página.
  5. Escolha a visualização Instâncias do ECS e, em seguida, escolha a instância na coluna Instância de contêiner.
    Observação: o painel Detalhes mostra que a memória na coluna Disponível é menor que a memória na coluna Registrado.
  6. Para obter estatísticas sobre o uso de recursos da instância, conecte-se à instância usando SSH e execute o comando docker stats.
  7. Escolha Clusters no painel de navegação e, em seguida, escolha o cluster.
  8. Escolha a visualização Tarefas, selecione a tarefa com um limite flexível e escolha Interromper.
  9. Escolha a visualização Instâncias do ECS e, em seguida, escolha a instância na coluna Instância de contêiner.
    Observação: o painel Details mostra que a memória na coluna Available é igual à memória na coluna Registered.

Criar uma revisão de uma definição de tarefa com um limite rígido

  1. No console do Amazon ECS, no painel de navegação, escolha Definições de tarefa.
  2. Selecione a definição de tarefa que você criou com um limite flexível e escolha Criar nova revisão.
  3. Na seção Definições de contêiner, na coluna Nome do contêiner, escolha o contêiner que você adicionou à definição da tarefa com um limite flexível.
  4. Em Limites de memória (MiB), escolha Limite rígido e digite 1000.
  5. Escolha Atualizar e, em seguida, escolha Criar.

Executar a definição de tarefa revisada com um limite rígido

  1. No console do Amazon ECS, no painel de navegação, escolha Clusters e, em seguida, escolha o cluster que você criou.
  2. Escolha a visualização Tarefas e, em seguida, escolha Executar nova tarefa.
  3. Escolha o Tipo de inicialização como **EC2 **
  4. Em Definição da tarefa, escolha a definição de tarefa com um limite rígido que você criou e, em seguida, escolha Executar tarefa.
  5. Quando a coluna Último status da tarefa revisada com um limite rígido for exibida como EM EXECUÇÃO, vá para a próxima etapa.
    **Observação:**para atualizar o status da tarefa para EM EXECUÇÃO, atualize a página.
  6. Escolha a visualização Instâncias do ECS e, em seguida, escolha a instância na coluna Instância de contêiner.
    Observação: o painel Detalhes mostra que a memória na coluna Disponível é menor que a memória da coluna Registrado.
  7. Para obter estatísticas sobre o uso de recursos da instância, conecte-se à instância usando SSH e execute o comando docker stats.
  8. Escolha Clusters no painel de navegação e, em seguida, escolha o cluster.
  9. Escolha a visualização Tarefas, selecione a tarefa com um limite rígido e escolha Interromper.
  10. Escolha a visualização Instâncias do ECS e, em seguida, escolha a instância na coluna Instância de contêiner.
    Observação: o painel Details mostra que a memória na coluna Available é igual à memória na coluna Registered.

Criar uma revisão da definição de uma tarefa com um limite flexível e um limite rígido

  1. No console do Amazon ECS, no painel de navegação, escolha Definições de tarefa.
  2. Selecione a definição de tarefa que você criou com um limite rígido e escolha Criar nova revisão.
  3. Na seção Definições de contêiner, na coluna Nome do contêiner, escolha o contêiner que você adicionou à definição da tarefa com um limite rígido.
  4. Em Limites de memória (MiB), escolha Limite flexível e digite 700.
  5. Escolha Adicionar limite rígido e digite 1200.
  6. Escolha Atualizar e, em seguida, escolha Criar.

Executar a definição de tarefa revisada com um limite flexível e um limite rígido

  1. No console do Amazon ECS, no painel de navegação, escolha Clusters e, em seguida, escolha o cluster que você criou.
  2. Escolha a visualização Tarefas e, em seguida, escolha Executar nova tarefa.
  3. Escolha o Tipo de inicialização como **EC2 **
  4. Em Definição da tarefa, escolha a definição de tarefa que você criou com um limite flexível e um limite rígido e, em seguida, escolha Executar tarefa.
  5. Quando a coluna Último status da tarefa for exibida como EM EXECUÇÃO, vá para a próxima etapa.
    **Observação:**para atualizar o status da tarefa para EM EXECUÇÃO, atualize a página.
  6. Escolha a visualização Instâncias do ECS e, em seguida, escolha a instância na coluna Instância de contêiner.
    Observação: o painel Detalhes mostra que a memória na coluna Disponível é menor que a memória na coluna Registrado.
  7. Para obter estatísticas sobre o uso de recursos da instância, conecte-se à instância usando SSH e execute o comando docker stats.
  8. Escolha Clusters no painel de navegação e, em seguida, escolha o cluster.
  9. Escolha a visualização Tarefas, selecione a tarefa com um limite flexível e um limite rígido e escolha Interromper.
  10. Escolha a visualização Instâncias do ECS e, em seguida, escolha a instância na coluna Instância de contêiner.
    Observação: o painel Details mostra que a memória na coluna Available é igual à memória na coluna Registered.

Criar uma revisão de uma definição de tarefa com limite de memória no nível da tarefa

  1. No console do Amazon ECS, no painel de navegação, escolha Definições de tarefa.
  2. Selecione a definição de tarefa que você criou com um limite rígido e um limite flexível e, em seguida, escolha Criar nova revisão.
  3. Na seção Tamanho da tarefa, em Memória da tarefa (MiB), digite 1000
  4. Na seção Definições de contêiner, na coluna Nome do contêiner, escolha o contêiner que você adicionou à definição da tarefa com um limite rígido e um limite flexível.
  5. Para Limites de memória (MiB), remova o Limite flexível, escolhendo o ícone x no lado direito
  6. Em seguida, em Limite rígido, remova o valor 1200 selecionando-o e excluindo-o.
  7. Escolha Atualizar e, em seguida, escolha Criar.

Executar a definição de tarefa revisada com o limite de memória em nível de tarefa

  1. No console do Amazon ECS, no painel de navegação, escolha Clusters e, em seguida, escolha o cluster que você criou.
  2. Escolha a visualização Tarefas e, em seguida, escolha Executar nova tarefa.
  3. Escolha o Tipo de inicialização como EC2
  4. Em Definição da tarefa, escolha a definição de tarefa que você criou com memória em nível de tarefa e, em seguida, escolha Executar tarefa.
  5. Quando a coluna Último status da tarefa for exibida como EM EXECUÇÃO, vá para a próxima etapa.
    **Observação:**para atualizar o status da tarefa para EM EXECUÇÃO, atualize a página.
  6. Escolha a visualização Instâncias do ECS e, em seguida, escolha a instância na coluna Instância de contêiner.
    Observação: o painel Detalhes mostra que a memória na coluna Disponível é menor que a memória na coluna Registrado.
  7. Para obter estatísticas sobre o uso de recursos da instância, conecte-se à instância usando SSH e execute o comando docker stats.
    **Observação:**você pode observar que o limite de memória mostrado pelo comando docker stats pode não ser de 1000 MiB para o contêiner. Isso ocorre porque a Memória em nível de tarefa é gerenciada pelo Agente do ECS e não pelo daemon do Docker.
  8. Escolha Clusters no painel de navegação e, em seguida, escolha o cluster.
  9. Escolha a visualização Tarefas, selecione a tarefa com memória em nível de tarefa e escolha Interromper.
  10. Escolha a visualização Instâncias do ECS e, em seguida, escolha a instância na coluna Instância de contêiner.
    Observação: o painel Details mostra que a memória na coluna Available é igual à memória na coluna Registered.

Informações relacionadas

Amazon ECS CloudWatch metrics

Tipos de instância do Amazon EC2

Limit a container's access to memory

Task size

AWS OFICIAL
AWS OFICIALAtualizada há 2 anos