

# Práticas recomendadas para tamanhos de tarefas do Amazon ECS
<a name="capacity-tasksize"></a>

 Os tamanhos de contêineres e tarefas são essenciais para o planejamento de ajuste de escala e de capacidade. No Amazon ECS, CPU e memória são as duas métricas de recursos usadas para capacidade. A CPU é medida em unidades de 1/1024 de uma vCPU completa (1.024 unidades são iguais a 1 vCPU inteira). A memória é medida em mebibytes. Na definição da tarefa, é possível configurar reservas e limites de recursos.

Ao configurar uma reserva, você está definindo a quantidade mínima de recursos que uma tarefa exige. Sua tarefa recebe, pelo menos, a quantidade de recursos solicitada. A aplicação pode conseguir usar mais CPU ou memória do que a reserva declarada. No entanto, isso está sujeito a quaisquer limites que também foram declarados. Usar mais do que a quantidade da reserva é conhecido como intermitência. No Amazon ECS, as reservas são garantidas. Por exemplo, se você usar instâncias do Amazon EC2 para fornecer capacidade, o Amazon ECS não coloca uma tarefa em uma instância em que a reserva não possa ser atendida.

Um limite é a quantidade máxima de unidades de CPU ou memória que o contêiner ou a tarefa pode usar. Qualquer tentativa de usar mais CPU além desse limite resulta em controle de utilização. Qualquer tentativa de usar mais memória faz com que o contêiner seja interrompido.

Escolher esses valores pode ser um desafio. Isso ocorre porque os valores mais adequados para a aplicação dependem muito dos requisitos de recursos da aplicação. Testar a carga da aplicação é a chave para um planejamento bem-sucedido dos requisitos de recursos e para uma melhor compreensão dos requisitos da aplicação.

## Aplicações sem estado
<a name="capacity-tasksize-stateless"></a>

Em aplicações sem estado que escalam horizontalmente, como uma aplicação por trás de um balanceador de carga, recomendamos primeiro determinar a quantidade de memória que a aplicação consome ao atender às solicitações. Para isso, você pode usar ferramentas tradicionais, como `ps` ou `top`, ou soluções de monitoramento, como o CloudWatch Container Insights.

Ao determinar uma reserva de CPU, considere como você deseja escalar a aplicação para atender às suas necessidades de negócios. Você pode usar reservas de CPU menores, como 256 unidades de CPU (ou 1/4 de vCPU), para aumentar a escala horizontalmente de uma forma refinada que minimize os custos. Porém, elas podem não ser escaladas com rapidez suficiente para atender a picos significativos na demanda. Você pode usar reservas maiores de CPU para aumentar e reduzir a escala horizontalmente com mais rapidez e, portanto, atender aos picos de demanda com mais rapidez. No entanto, reservas maiores de CPU são mais caras.

## Outros aplicativos
<a name="capacity-tasksize-other"></a>

Em aplicações que não são escaláveis horizontalmente, como operadores únicos ou servidores de banco de dados, a capacidade disponível e o custo representam suas considerações mais importantes. Você deve escolher a quantidade de memória e CPU com base na necessidade indicada pelo teste de carga para fornecer um tráfego que atinja seu objetivo no nível de serviço. O Amazon ECS garante que a aplicação seja colocada em um host com capacidade adequada.