

# SUS02-BP06 Implementar armazenamento em buffer ou controle de utilização para nivelar a curva da demanda
<a name="sus_sus_user_a7"></a>

O armazenamento em buffer e o controle de utilização nivelam a curva da demanda e reduzem a capacidade provisionada necessária para sua workload. 

 **Práticas comuns que devem ser evitadas:** 
+ Você processa imediatamente as solicitações de cliente embora isso não seja necessário.
+ Você não analisa os requisitos das solicitações de cliente.

 **Benefícios de implementar esta prática recomendada:** nivelar a curva de demanda reduz a capacidade provisionada necessária para a workload. Reduzir a capacidade provisionada significa diminuir o consumo de energia e o impacto ambiental. 

 **Nível de risco exposto se esta prática recomendada não for estabelecida:** Baixo 

## Orientação para implementação
<a name="implementation-guidance"></a>

 Nivelar a curva da demanda pode ajudar você a reduzir a capacidade provisionada para uma workload e a diminuir o respectivo impacto ambiental. Considere a workload com a curva de demanda mostrada na figura a seguir. Essa workload tem dois picos e, para lidar com eles, é provisionada a capacidade de recurso mostrada pela linha laranja. Os recursos e energia usados para essa workload não são indicados pela área abaixo da curva da demanda, mas pela área abaixo da linha da capacidade provisionada, visto que é preciso ter capacidade provisionada para lidar com esses dois picos. 

![\[Forma de onda de capacidade provisionada com dois picos distintos que exigem alta capacidade provisionada.\]](http://docs.aws.amazon.com/pt_br/wellarchitected/2024-06-27/framework/images/provisioned-capacity-1.png)


 

 Você pode usar o armazenamento em buffer ou o controle de utilização para modificar a curva da demanda e atenuar os picos, o que significa menor capacidade provisionada e menor consumo de energia. Implemente o controle de utilização quando seus clientes puderem realizar novas tentativas. Implemente o armazenamento em buffer para armazenar a solicitação e adiar o processamento até um momento posterior. 

![\[Diagrama de forma de onda exibindo uma workload com picos suavizados criados usando buffer ou limitação.\]](http://docs.aws.amazon.com/pt_br/wellarchitected/2024-06-27/framework/images/provisioned-capacity-2.png)


 

 **Etapas de implementação** 
+  Analise as solicitações dos clientes para determinar como responder a elas. As perguntas a serem consideradas incluem: 
  +  Essa solicitação pode ser processada assincronamente? 
  +  O cliente tem capacidade de repetição? 
+  Se o cliente tiver capacidade de repetição, você poderá implementar o controle de utilização, que informa à origem que, se ela não puder atender à solicitação naquele momento, deverá tentar novamente mais tarde. 
  +  Você pode usar o [Amazon API Gateway](https://aws.amazon.com/api-gateway/) para implementar o controle de utilização. 
+  Para clientes que não podem realizar novas tentativas, é necessário implementar um buffer para nivelar a curva da demanda. O buffer adia o processamento de solicitações, permitindo que as aplicações executadas em diferentes taxas se comuniquem com eficácia. Uma abordagem baseada em buffer usa uma fila ou um fluxo para aceitar mensagens de produtores. As mensagens são lidas pelos consumidores e processadas, permitindo que as mensagens sejam executadas na taxa que atenda aos requisitos de negócios dos consumidores. 
  +  O [Amazon Simple Queue Service (Amazon SQS)](https://aws.amazon.com/sqs/) é um serviço gerenciado que fornece filas que permitem que um único consumidor leia mensagens individuais. 
  +  O [Amazon Kinesis](https://aws.amazon.com/kinesis/) oferece um fluxo que permite que muitos consumidores leiam as mesmas mensagens. 
+  Analise a demanda geral, a taxa de alteração e o tempo de resposta necessário para dimensionar adequadamente o controle ou buffer necessário. 

## Recursos
<a name="resources"></a>

 **Documentos relacionados:** 
+ [Conceitos básicos do Amazon SQS](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-getting-started.html)
+ [Integrar aplicações usando filas e mensagens](https://aws.amazon.com/blogs/architecture/application-integration-using-queues-and-messages/)
+ [Gerenciar e monitorar o controle de utilização de APIs em suas workloads](https://aws.amazon.com/blogs/mt/managing-monitoring-api-throttling-in-workloads/)
+ [Controlar a utilização de uma API REST em camadas e multilocatário em grande escala usando o API Gateway](https://aws.amazon.com/blogs/architecture/throttling-a-tiered-multi-tenant-rest-api-at-scale-using-api-gateway-part-1/)
+ [Integrar aplicações usando filas e mensagens](https://aws.amazon.com/blogs/architecture/application-integration-using-queues-and-messages/)

 **Vídeos relacionados:** 
+ [AWS re:Invent 2022: padrões de integração de aplicações para microsserviços](https://www.youtube.com/watch?v=GoBOivyE7PY)
+ [AWS re:Invent 2023: economias inteligentes: estratégias de otimização de custos no Amazon EC2](https://www.youtube.com/watch?v=_AHPbxzIGV0)
+ [AWS re:Invent 2023: padrões de integração avançados e compromissos para sistemas com acoplamento fraco](https://www.youtube.com/watch?v=FGKGdUiZKto)