

# COST 9. Como gerenciar a demanda e fornecer recursos?
<a name="cost-09"></a>

Para uma workload com gasto e performance equilibrados, verifique se tudo o que você paga está sendo usado e evite instâncias significativamente subutilizadas. Uma métrica de utilização distorcida em ambas as direções tem um impacto adverso sobre a organização, tanto nos custos operacionais (redução na performance em decorrência de utilização excessiva) quanto em despesas desnecessárias na AWS (devido ao excesso de provisionamento).

**Topics**
+ [COST09-BP01 Realizar uma análise sobre a demanda da workload](cost_manage_demand_resources_cost_analysis.md)
+ [COST09-BP02 Implementar um buffer ou controle de utilização para gerenciar a demanda](cost_manage_demand_resources_buffer_throttle.md)
+ [COST09-BP03 Fornecer recursos dinamicamente](cost_manage_demand_resources_dynamic.md)

# COST09-BP01 Realizar uma análise sobre a demanda da workload
<a name="cost_manage_demand_resources_cost_analysis"></a>

 Analise a demanda da workload ao longo do tempo. Garanta que a análise cubra tendências sazonais e represente com precisão as condições operacionais durante toda a vida útil da workload. O trabalho de análise deve refletir o benefício potencial (por exemplo, se o tempo gasto é proporcional ao custo da workload). 

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

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

 Analisar a demanda de workload para computação em nuvem envolve entender os padrões e as características das tarefas de computação que são iniciadas no ambiente de nuvem. Essa análise ajuda os usuários a otimizar a alocação de recursos, gerenciar custos e verificar se a performance atende aos níveis exigidos. 

 Conhecer os requisitos da workload. Os requisitos da organização devem indicar os tempos de resposta da workload para solicitações. O tempo de resposta pode ser usado para determinar se a demanda é gerenciada ou se a oferta de recursos deve ser alterada para atender à demanda. 

 A análise deve incluir a previsibilidade e a repetibilidade da demanda, a taxa de alteração na demanda e a quantidade de alteração na demanda. Realize a análise durante um período longo o suficiente para incorporar qualquer variação sazonal, como processamento de fim de mês ou picos de fim de ano. 

 O trabalho de análise deve refletir os possíveis benefícios da implementação do ajuste de escala. Observe o custo total esperado do componente e os aumentos ou diminuições no uso e no custo durante a vida útil da workload. 

 Veja abaixo alguns aspectos importantes a serem considerados ao realizar a análise da demanda de workload para computação em nuvem: 

1.  **Métricas de utilização de recursos e performance**: analise como os recursos da AWS estão sendo usados ao longo do tempo. Determine padrões de uso de pico e fora do pico para otimizar as estratégias de alocação e ajuste de escala de recursos. Monitore métricas de performance, como tempos de resposta, latência, throughput e taxas de erro. Essas métricas ajudam a avaliar a integridade geral e a eficiência da infraestrutura de nuvem. 

1.  **Comportamento de ajuste de escala de usuários e aplicações**: entenda o comportamento do usuário e como ele afeta a demanda da workload. Examinar os padrões de tráfego de usuários ajuda a aprimorar a entrega de conteúdo e a capacidade de resposta das aplicações. Analise como as workloads escalam com o aumento da demanda. Determine se os parâmetros de ajuste de escala automático estão configurados de forma correta e eficaz para lidar com flutuações de carga. 

1.  **Tipos de workload**: identifique os diferentes tipos de workload em execução na nuvem, como processamento em lote, processamento de dados em tempo real, aplicação web, bancos de dados ou machine learning. Cada tipo de workload pode ter requisitos de recursos e perfis de performance diferentes. 

1.  **Acordos de serviço (SLA)**: compare a performance real com os SLAs para garantir a conformidade e identificar áreas que precisam ser aprimoradas. 

 Você pode usar o [Amazon CloudWatch](https://aws.amazon.com/cloudwatch/) para coletar e rastrear métricas, coletar e monitorar arquivos de log, definir alarmes e reagir automaticamente a alterações nos seus recursos da AWS. O Amazon CloudWatch pode ser usado para fornecer visibilidade sobre a utilização de recursos, a performance de aplicações e o status operacional em todo o sistema. 

 Com o [AWS Trusted Advisor](https://aws.amazon.com/premiumsupport/technology/trusted-advisor/), é possível provisionar os recursos seguindo as práticas recomendadas para melhorar a performance e a confiabilidade do sistema, aumentar a segurança e procurar oportunidades de economia. Também é possível desativar o uso e as instâncias de não produção e usar o Amazon CloudWatch e o Auto Scaling para equiparar aumentos ou reduções na demanda. 

 Por fim, é possível usar o [AWS Cost Explorer](https://aws.amazon.com/aws-cost-management/aws-cost-explorer/) ou o [Quick](https://aws.amazon.com/quicksight/) com o arquivo do AWS Cost and Usage Report (CUR) ou os logs da aplicação para realizar análises avançadas da demanda de workload. 

 No geral, uma análise abrangente da demanda da workload permite que as organizações tomem decisões embasadas sobre provisionamento, ajuste de escala e otimização de recursos, o que melhora a performance, o custo-benefício e a satisfação do usuário. 

### Etapas de implementação
<a name="implementation-steps"></a>
+  **Analise dados da workload existente:** analise dados da workload existente, das versões anteriores da workload ou dos padrões de uso previstos. Use o Amazon CloudWatch, arquivos de log e dados de monitoramento para obter informações sobre como a workload foi usada. Analise um ciclo completo da workload e colete dados para alterações sazonais, como eventos de fim de mês ou de ano. O esforço refletido na análise deve refletir as características da workload. Deve-se concentrar o maior esforço em workloads de alto valor com as maiores alterações na demanda. Por outro lado, deve-se concentrar o menor esforço em workloads de baixo valor que tenham alterações mínimas na demanda. 
+  **Preveja a influência externa:** encontre membros da equipe de toda a organização que possam influenciar ou alterar a demanda na workload. Equipes comuns seriam de vendas, marketing ou desenvolvimento de negócios. Trabalhe com elas para saber os ciclos com os quais operam e se há eventos que possam alterar a demanda da workload. Preveja a demanda da workload com esses dados. 

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

 **Documentos relacionados:** 
+  [Amazon CloudWatch](https://aws.amazon.com/cloudwatch/) 
+  [AWS Trusted Advisor](https://aws.amazon.com/premiumsupport/technology/trusted-advisor/) 
+  [AWS X-Ray](https://aws.amazon.com/xray/) 
+  [AWS Auto Scaling](https://aws.amazon.com/autoscaling/) 
+  [Agendador de instâncias da AWS](https://aws.amazon.com/answers/infrastructure-management/instance-scheduler/) 
+  [Conceitos básicos do Amazon SQS](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-getting-started.html) 
+  [AWS Cost Explorer](https://aws.amazon.com/aws-cost-management/aws-cost-explorer/) 
+  [Quick](https://aws.amazon.com/quicksight/) 

 **Exemplos relacionados:** 
+  [Monitorar, rastrear e analisar para fins de otimização de custos](https://aws.amazon.com/aws-cost-management/aws-cost-optimization/monitor-track-and-analyze/) 
+  [Pesquisar e analisar logs no CloudWatch](https://docs.aws.amazon.com/prescriptive-guidance/latest/implementing-logging-monitoring-cloudwatch/cloudwatch-search-analysis.html) 

# COST09-BP02 Implementar um buffer ou controle de utilização para gerenciar a demanda
<a name="cost_manage_demand_resources_buffer_throttle"></a>

 O armazenamento em buffer e o controle de utilização modificam a demanda na workload, suavizando todos os picos. Implemente o controle de utilização quando seus clientes realizarem novas tentativas. Implemente o armazenamento em buffer para armazenar a solicitação e adiar o processamento até um momento posterior. Verifique se os controles de utilização e buffers estão projetados para que os clientes recebam uma resposta no tempo necessário. 

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

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

 A implementação de um buffer ou controle de utilização é crucial na computação em nuvem para gerenciar a demanda e reduzir a capacidade provisionada necessária para a workload. Para obter a performance ideal, é essencial avaliar a demanda total, incluindo os picos, o ritmo das mudanças nas solicitações e o tempo de resposta necessário. Quando os clientes têm a capacidade de reenviar solicitações, é prático aplicar o controle de utilização. Entretanto, para clientes que não têm funcionalidades de repetição, a abordagem ideal é implementar uma solução de buffer. Esses buffers agilizam o influxo de solicitações e otimizam a interação de aplicações com velocidades operacionais variadas. 

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


 Considere uma workload com a curva de demanda mostrada na figura anterior. Essa workload tem dois picos e, para lidar com eles, é provisionada a capacidade de recurso mostrada pela linha laranja. Os recursos e a 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. Nivelar a curva da demanda pode ajudar você a reduzir a capacidade provisionada para uma workload e a diminuir o respectivo impacto ambiental. Para suavizar o pico, considere implementar uma solução de controle de utilização ou de buffer. 

 Para entender melhor, vamos examinar o controle de utilização e o buffer. 

 **Controle de utilização:** se a origem da demanda tiver capacidade de repetição, você poderá implementar o controle de utilização. O controle de utilização informa à origem que, se não for possível atender à solicitação no momento, ela deverá tentar novamente mais tarde. A origem espera por um período e repete a solicitação. A implementação do controle de utilização tem a vantagem de limitar a quantidade máxima de recursos e custos da workload. Na AWS, o [Amazon API Gateway](https://aws.amazon.com/api-gateway/) pode ser usado para implementar o controle de utilização. 

 **Buffer:** uma abordagem baseada em buffer usa *produtores* (componentes que enviam mensagens para a fila), *consumidores* (componentes que recebem mensagens da fila) e uma *fila* (que contém mensagens) para armazenar as mensagens. 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. Usando uma metodologia centrada em buffer, as mensagens dos produtores são armazenadas em filas ou fluxos, prontas para serem acessadas pelos consumidores em um ritmo alinhado às demandas operacionais. 

Na AWS, você pode escolher entre vários serviços para implementar uma abordagem de buffering. 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.

 O buffer e o controle de utilização podem suavizar qualquer pico modificando a demanda da workload. Use o controle de utilização quando os clientes repetirem ações e use o buffer para reter a solicitação e processá-la posteriormente. Ao trabalhar com uma arquitetura com uma abordagem baseada em buffer, arquitete a workload para atender à solicitação no tempo necessário e verifique se é possível lidar com solicitações duplicadas de trabalho. 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. 

### Etapas de implementação
<a name="implementation-steps"></a>
+ **Analise os requisitos do cliente:** analise as solicitações do cliente para determinar se são capazes de executar novas tentativas. Para clientes que não podem realizar novas tentativas, será necessário implementar buffers. Analise a demanda geral, a taxa de alteração e o tempo de resposta necessário para determinar o tamanho do controle de utilização ou do buffer necessário.
+ **Implemente um buffer ou controle de utilização:** implemente um buffer ou controle de utilização na workload. Uma fila como o Amazon Simple Queue Service (Amazon SQS) pode fornecer um buffer para os componentes da workload. O Amazon API Gateway pode oferecer controle de utilização para componentes da workload. 

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

 **Práticas recomendadas relacionadas:** 
+ [SUS02-BP06 Implementar armazenamento em buffer ou controle de utilização para nivelar a curva da demanda](https://docs.aws.amazon.com/wellarchitected/latest/sustainability-pillar/sus_sus_user_a7.html)
+ [REL05-BP02 Controlar a utilização de solicitações](https://docs.aws.amazon.com/wellarchitected/latest/framework/rel_mitigate_interaction_failure_throttle_requests.html)

 **Documentos relacionados:** 
+  [AWS Auto Scaling](https://aws.amazon.com/autoscaling/) 
+  [Agendador de instâncias da AWS](https://aws.amazon.com/answers/infrastructure-management/instance-scheduler/) 
+  [Amazon API Gateway](https://aws.amazon.com/api-gateway/) 
+  [Amazon Simple Queue Service](https://aws.amazon.com/sqs/) 
+  [Conceitos básicos do Amazon SQS](https://aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-getting-started.html) 
+  [Amazon Kinesis](https://aws.amazon.com/kinesis/) 

 **Vídeos relacionados:** 
+ [Escolher o serviço de mensagens certo para a aplicação distribuída](https://www.youtube.com/watch?v=4-JmX6MIDDI)

 **Exemplos relacionados:** 
+ [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/)
+ [Habilitar a hierarquização e o controle de utilização em uma solução SaaS multilocatária do Amazon EKS usando o Amazon API Gateway](https://aws.amazon.com/blogs/apn/enabling-tiering-and-throttling-in-a-multi-tenant-amazon-eks-saas-solution-using-amazon-api-gateway/)
+ [Integrar aplicações usando filas e mensagens](https://aws.amazon.com/blogs/architecture/application-integration-using-queues-and-messages/)

# COST09-BP03 Fornecer recursos dinamicamente
<a name="cost_manage_demand_resources_dynamic"></a>

Os recursos são provisionados de maneira planejada. Isso pode ser feito com base na demanda, como por meio do ajuste de escala automático, ou com base no tempo, em que a demanda é previsível e os recursos são fornecidos em função do tempo. Esses métodos ocasionam a menor quantidade de superprovisionamento ou subprovisionamento.

 **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>

 Há várias maneiras como os clientes da AWS podem aumentar os recursos disponíveis para suas aplicações e fornecer recursos para atender à demanda. Uma dessas opções é usar o AWS Instance Scheduler, que automatiza o início e a interrupção de instâncias do Amazon Elastic Compute Cloud (Amazon EC2) e do Amazon Relational Database Service (Amazon RDS). A outra opção é usar o AWS Auto Scaling, que possibilita escalar automaticamente seus recursos de computação com base na demanda da aplicação ou do serviço. O fornecimento de recursos com base na demanda permitirá que você pague somente pelos recursos utilizados, reduza os custos lançando recursos quando eles forem necessários e os encerre quando não forem. 

 O [Agendador de instâncias da AWS](https://aws.amazon.com/solutions/implementations/instance-scheduler-on-aws/) permite configurar a interrupção e o início de suas instâncias do Amazon EC2 e do Amazon RDS em horários definidos para que você possa atender à demanda pelos mesmos recursos em um padrão de tempo consistente, por exemplo, acesso diário dos usuários às instâncias do Amazon EC2 às 8h, que não são necessárias após as 18h. Essa solução ajuda a reduzir o custo operacional interrompendo recursos que não estão sendo usados e iniciá-los quando eles são necessários. 

![\[Diagrama mostrando a otimização de custos com o uso do Agendador de instâncias da AWS.\]](http://docs.aws.amazon.com/pt_br/wellarchitected/latest/framework/images/instance-scheduler-diagram.png)


 

Você também pode configurar facilmente programações para suas instâncias do Amazon EC2 em suas contas e regiões com uma interface de usuário (IU) simples usando a Configuração rápida do AWS Systems Manager. É possível programar instâncias do Amazon EC2 e do Amazon RDS com o Agendador de instâncias da AWS e interromper e iniciar instâncias existentes. No entanto, não é possível parar e iniciar instâncias que fazem parte do seu grupo do Auto Scaling (ASG) ou que gerenciam serviços como o Amazon Redshift ou o Amazon OpenSearch Service. Os grupos do Auto Scaling têm seu próprio agendamento para as instâncias do grupo e essas instâncias são criadas. 

O [AWS Auto Scaling](https://aws.amazon.com/autoscaling/) ajuda você a ajustar sua capacidade para manter uma performance estável e previsível pelo menor custo possível para atender às variações de demanda. Trata-se de um serviço totalmente gerenciado e gratuito para escalar a capacidade da aplicação e que se integra às instâncias do Amazon EC2 e às frotas spot, ao Amazon ECS, ao Amazon DynamoDB e ao Amazon Aurora. O Auto Scaling oferece descoberta automática de recursos para ajudar a encontrar recursos na sua workload que possam ser configurados, tem estratégias de ajuste de escala incorporadas para otimizar performance, custos ou um equilíbrio entre os dois, além de oferecer ajuste de escala preditivo para ajudar com picos que ocorrem regularmente. 

 Há várias opções de ajuste de escala disponíveis para escalar seu grupo do Auto Scaling: 
+  Manter níveis de instâncias atuais em todos os momentos 
+  Dimensionar manualmente 
+  Escala baseada em uma programação 
+  Escala com base em demanda 
+  Usar o ajuste de escala preditivo 

 As políticas do Auto Scaling diferem e podem ser categorizadas como políticas de ajuste de escala dinâmicas e agendadas. As políticas dinâmicas são ajuste de escala manual ou dinâmico, ajuste de escala agendado ou preditivo. Você pode usar políticas para ajuste de escala dinâmico, agendado e preditivo. Você também pode usar métricas e alarmes do [Amazon CloudWatch](https://aws.amazon.com/cloudwatch/) para acionar eventos de ajuste de escala para sua workload. Recomendamos usar [modelos de execução](https://docs.aws.amazon.com/autoscaling/ec2/userguide/launch-templates.html) para garantir que esteja acessando os recursos e melhorias mais recentes. Nem todos os recursos do Auto Scaling estão disponíveis quando você usa configurações de execução. Por exemplo, não é possível criar um grupo do Auto Scaling que execute instâncias spot e sob demanda ou que especifique vários tipos de instância. É necessário usar um modelo de execução para configurar esses recursos. Ao usar modelos de execução, recomendamos versionar cada um. Com o versionamento dos modelos de execução, você pode criar um subconjunto do conjunto completo de parâmetros. Em seguida, você pode reutilizá-lo para criar outras versões do mesmo modelo de execução. 

 É possível usar o AWS Auto Scaling ou incorporar ajuste de escala em seu código com as [AWS APIs ou SDKs](https://aws.amazon.com/developer/tools/). Isso reduz os custos gerais da workload removendo o custo operacional de fazer alterações manualmente em seu ambiente, e quaisquer alterações podem ser realizadas muito mais rapidamente. Isso também atende à mobilização de recursos da workload de acordo com sua demanda a qualquer momento. Para seguir essa prática recomendada e fornecer recursos de forma dinâmica para sua organização, você precisa entender os ajustes de escala horizontal e vertical na Nuvem AWS, bem como a natureza das aplicações executadas em instâncias do Amazon EC2. É melhor para sua equipe de gerenciamento financeiro na nuvem trabalhar com equipes técnicas a fim de seguir essa prática recomendada. 

 O [Elastic Load Balancing (ELB)](https://aws.amazon.com/elasticloadbalancing/) ajuda você a escalar distribuindo a demanda entre vários recursos. Com o uso de um grupo do Auto Scaling (ASG) e do Elastic Load Balancing, você pode gerenciar as solicitações recebidas roteando o tráfego de forma ideal para que nenhuma instância fique sobrecarregada em um ASG. As solicitações seriam distribuídas entre todos os destinos de um grupo-alvo de forma contínua, sem considerar a capacidade nem a utilização. 

 As métricas típicas podem ser métricas padrão do Amazon EC2, como utilização de CPU, throughput de rede e latência de solicitação/resposta observada pelo Elastic Load Balancing. Quando possível, use uma métrica que seja indicativa da experiência do cliente. Normalmente é uma métrica personalizada que pode se originar do código da aplicação em sua workload. Para elaborar como atender à demanda dinamicamente neste documento, vamos agrupar o Auto Scaling em duas categorias, como modelos de fornecimento baseados na demanda e baseados no tempo, e nos aprofundarmos em cada uma delas. 

**Fornecimento baseado em demanda:** utilize a elasticidade da nuvem para fornecer recursos para atender às mudanças na demanda e depender do estado de demanda quase em tempo real. Para fornecimento baseado em demanda, use as APIs ou os recursos de serviço para variar programaticamente a quantidade de recursos de nuvem em sua arquitetura. Isso permite que você ajuste a escala de componentes em sua arquitetura e aumente o número de recursos durante picos de demanda a fim de manter a performance e reduzir a capacidade quando a demanda diminui para reduzir os custos. 

![\[Diagrama descrevendo as políticas de ajuste de escala com base na demanda, como ajuste de escala simples/em etapas e rastreamento de metas.\]](http://docs.aws.amazon.com/pt_br/wellarchitected/latest/framework/images/demand-based-supply.png)


 
+  **Ajuste de escala simples/em etapas:** monitora métricas e adiciona/remove instâncias de acordo com as etapas definidas manualmente pelos clientes. 
+  **Monitoramento do objetivo:** mecanismo de controle semelhante a um termostato que adiciona ou remove instâncias automaticamente para manter as métricas em um objetivo definido pelo cliente. 

Ao arquitetar com uma abordagem baseada em demanda, tenha em mente dois pontos essenciais. Primeiro, entenda a rapidez com que você deve provisionar novos recursos. Segundo, entenda que o tamanho da margem entre fornecimento e demanda mudará. Você deve estar pronto para lidar com a taxa de alteração na demanda e também estar pronto para falhas de recursos.

**Fornecimento com base em tempo:** uma abordagem baseada em tempo alinha a capacidade de recursos à demanda previsível ou bem definida em relação ao tempo. Essa abordagem costuma não depender dos níveis de utilização dos recursos. Uma abordagem baseada em tempo garante que os recursos estejam disponíveis no momento específico em que são necessários e podem ser fornecidos sem nenhum atraso devido a procedimentos de inicialização e verificações do sistema ou de consistência. Usando uma abordagem baseada em tempo, você pode fornecer recursos adicionais ou aumentar a capacidade durante períodos ocupados.

![\[Diagrama descrevendo as políticas de ajuste de escala baseado em tempo, como ajuste de escala agendado e preditivo.\]](http://docs.aws.amazon.com/pt_br/wellarchitected/latest/framework/images/time-based-supply.png)


 

Você pode usar o ajuste de escala automático agendado ou preditivo para implementar uma abordagem baseada em tempo. As workloads podem ser agendadas para aumentar ou reduzir a escala horizontalmente em horários definidos (por exemplo, o início do horário comercial), tornando os recursos disponíveis quando os usuários chegarem ou a demanda aumentar. O ajuste de escala preditivo usa padrões para aumentar a escala horizontalmente enquanto o ajuste de escala agendado usa horários predefinidos para isso. Você também pode usar uma [estratégia de seleção de tipo de instância baseada em atributo (ABS)](https://docs.aws.amazon.com/autoscaling/ec2/userguide/create-asg-instance-type-requirements.html) em grupos do Auto Scaling, o que permite expressar seus requisitos de instância como um conjunto de atributos, como vCPU, memória e armazenamento. Isso também permite usar automaticamente os tipos de instância de geração mais recente quando eles são lançados e acessar uma variedade mais ampla de capacidade com instâncias spot do Amazon EC2. O Amazon EC2 Fleet e o Amazon EC2 Auto Scaling selecionam e executam instâncias que se ajustam aos atributos especificados, eliminando a necessidade de escolher manualmente os tipos de instância. 

Você também pode aproveitar as [APIs e os SDKs da AWS](https://aws.amazon.com/developer/tools/) e o [AWS CloudFormation](https://aws.amazon.com/cloudformation/) para provisionar e desativar automaticamente ambientes inteiros conforme necessário. Essa abordagem é adequada para ambientes de desenvolvimento ou teste que são executados apenas em períodos ou horários comerciais definidos. Você pode usar APIs para ajustar a escala dos recursos dentro de um ambiente (ajuste de escala vertical). Por exemplo, você pode escalar uma workload de produção alterando o tamanho ou a classe da instância. Isso pode ser feito interrompendo e iniciando a instância e selecionando a classe ou o tamanho da instância diferente. Essa técnica também pode ser aplicada a outros recursos, como Volumes Elásticos do Amazon EBS, que podem ser modificados para aumentar o tamanho, ajustar a performance (IOPS) ou alterar o tipo de volume durante o uso.

Ao arquitetar com uma abordagem baseada em tempo, tenha em mente dois pontos essenciais. Primeiro, qual é a consistência do padrão de uso? Segundo, qual será o impacto se o padrão mudar? Você pode aumentar a precisão das previsões monitorando suas workloads e usando inteligência de negócios. Se você vir alterações significativas no padrão de uso, poderá ajustar os tempos para garantir que a cobertura seja fornecida.

## Etapas de implementação
<a name="implementation-steps"></a>
+ **Configure o ajuste de escala agendado:** para alterações previsíveis na demanda, o ajuste de escala com base em tempo pode fornecer a quantidade correta de recursos em tempo hábil. Ele também será útil se a criação e a configuração de recursos não forem rápidas o suficiente para responder a alterações na demanda. Usando a análise de workload, configure o ajuste de escala agendado usando o AWS Auto Scaling. Para configurar o cronograma baseado em tempo, você pode usar o ajuste de escala preditivo ou agendado para aumentar o número de instâncias do Amazon EC2 em seus grupos do Auto Scaling com antecedência de acordo com as alterações de carga esperadas ou previsíveis.
+  **Configure o ajuste de escala preditivo:** o ajuste de escala preditivo permite aumentar o número de instâncias do Amazon EC2 em seu grupo do Auto Scaling em antecipação aos padrões diários e semanais nos fluxos de tráfego. Se você tem picos de tráfego regulares e aplicações que demoram muito para ser iniciadas, considere usar o ajuste de escala preditivo. O ajuste de escala preditivo pode ajudar você a escalar com maior rapidez inicializando a capacidade antes da carga projetada em comparação com o ajuste de escala dinâmico isolado, que é reativo por natureza. Por exemplo, se os usuários começarem a usar sua workload no início do horário comercial e não usá-la após o expediente, o ajuste de escala preditivo poderá adicionar capacidade antes do horário comercial, o que elimina o atraso do ajuste de escala dinâmico para reagir a mudanças no tráfego. 
+ **Configure o ajuste de escala automático dinâmico:** para configurar o ajuste de escala com base em métricas de workload ativas, use o Auto Scaling. Use a análise e configure o Auto Scaling para iniciar nos níveis de recursos corretos e garanta que a workload escale no tempo necessário. Você pode iniciar e escalar automaticamente uma frota de instâncias sob demanda e instâncias spot em um único grupo do Auto Scaling. Além de receber descontos pelo uso de instâncias spot, você pode usar instâncias reservadas ou um Savings Plan para receber taxas de desconto da definição de preço normal de instância sob demanda. Todos esses fatores combinados ajudam você a otimizar sua redução de custos para instâncias do Amazon EC2 e a obter a escala e a performance desejadas para a aplicação.

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

 **Documentos relacionados:** 
+  [AWS Auto Scaling](https://aws.amazon.com/autoscaling/) 
+  [Agendador de instâncias da AWS](https://aws.amazon.com/answers/infrastructure-management/instance-scheduler/) 
+  Escalar o tamanho do grupo do Auto Scaling 
+  [Conceitos básicos do Amazon EC2 Auto Scaling](https://docs.aws.amazon.com/autoscaling/ec2/userguide/GettingStartedTutorial.html) 
+  [Conceitos básicos do Amazon SQS](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-getting-started.html) 
+  [Ajuste de escala agendado para o Amazon EC2 Auto Scaling](https://docs.aws.amazon.com/autoscaling/ec2/userguide/schedule_time.html) 
+ [Escala preditiva para o Amazon EC2 Auto Scaling](https://docs.aws.amazon.com/autoscaling/ec2/userguide/ec2-auto-scaling-predictive-scaling.html)

 **Vídeos relacionados:** 
+ [Políticas de ajuste de escala com monitoramento do objetivo para Auto Scaling](https://www.youtube.com/watch?v=-RumeaoPB2M)
+ [Agendador de instâncias da AWS](https://www.youtube.com/watch?v=nTLEyo2NzUs)

 **Exemplos relacionados:** 
+ [Seleção de tipo de instância baseada em atributos para Auto Scaling para Amazon EC2 Fleet](https://aws.amazon.com/blogs/aws/new-attribute-based-instance-type-selection-for-ec2-auto-scaling-and-ec2-fleet/)
+ [Otimizar o Amazon Elastic Container Service para custos usando ajuste de escala agendado](https://aws.amazon.com/blogs/containers/optimizing-amazon-elastic-container-service-for-cost-using-scheduled-scaling/)
+ [Ajuste de escala preditivo com o Amazon EC2 Auto Scaling](https://aws.amazon.com/blogs/compute/introducing-native-support-for-predictive-scaling-with-amazon-ec2-auto-scaling/)
+ [Como faço para usar o Agendador de instâncias com o CloudFormation para agendar as instâncias do Amazon EC2?)](https://aws.amazon.com/premiumsupport/knowledge-center/stop-start-instance-scheduler/)