

# Seleção
<a name="a-selection"></a>

**Topics**
+ [PERF 1  Como você seleciona a arquitetura de melhor performance?](perf-01.md)
+ [PERF 2  Como você seleciona sua solução de computação?](perf-02.md)
+ [PERF 3  Como você seleciona sua solução de armazenamento?](perf-03.md)
+ [PERF 4  Como você seleciona sua solução de banco de dados?](perf-04.md)
+ [PERF 5  Como você configura sua solução de rede?](perf-05.md)

# PERF 1  Como você seleciona a arquitetura de melhor performance?
<a name="perf-01"></a>

 Muitas vezes, é necessário empregar várias abordagens para obter a performance ideal em uma carga de trabalho. Os sistemas com boa arquitetura usam várias soluções e recursos para aprimorar a performance. 

**Topics**
+ [PERF01-BP01 Compreender os serviços e os recursos disponíveis](perf_performing_architecture_evaluate_resources.md)
+ [PERF01-BP02 Definir um processo para as opções de arquitetura](perf_performing_architecture_process.md)
+ [PERF01-BP03 Fatorar os requisitos de custo ao tomar decisões](perf_performing_architecture_cost.md)
+ [PERF01-BP04 Usar políticas ou arquiteturas de referência](perf_performing_architecture_use_policies.md)
+ [PERF01-BP05 Usar as orientações do seu provedor de nuvem ou de um parceiro apropriado](perf_performing_architecture_external_guidance.md)
+ [PERF01-BP06 Realizar testes comparativos das workloads](perf_performing_architecture_benchmark.md)
+ [PERF01-BP07 Teste de carga da workload](perf_performing_architecture_load_test.md)

# PERF01-BP01 Compreender os serviços e os recursos disponíveis
<a name="perf_performing_architecture_evaluate_resources"></a>

 Conheça e compreenda a ampla gama de serviços e recursos disponíveis na nuvem. Identifique os serviços e opções de configuração relevantes para sua carga de trabalho e entenda como alcançar a performance ideal. 

 Caso esteja avaliando uma carga de trabalho existente, é necessário gerar um inventário dos vários recursos de serviços que ela consome. Seu inventário ajuda a avaliar quais componentes podem ser substituídos por serviços gerenciados e tecnologias mais recentes. 

 **Antipadrões comuns:** 
+  Você usa a nuvem como um datacenter colocalizado. 
+  Você usa o armazenamento compartilhado para todas as coisas que precisam de armazenamento persistente. 
+  Você não usa a escalabilidade automática. 
+  Você usa tipos de instância mais próximos aos padrões atuais, mas maiores, quando necessário. 
+  Você implanta e gerencia tecnologias disponíveis como serviços gerenciados. 

 **Benefícios do estabelecimento desta prática recomendada:** Ao considerar os serviços com os quais você não está familiarizado, você pode reduzir significativamente o custo da infraestrutura e o esforço necessário para manter seus serviços. Você pode acelerar seu tempo de entrada no mercado implantando novos serviços e recursos. 

 **Nível de exposição a riscos quando esta prática recomendada não for estabelecida:** Alto 

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

 Fazer o inventário do software da workload e da arquitetura dos serviços relacionados: colete um inventário da sua workload e decida sobre qual categoria de produtos saber mais. Identifique os componentes da workload que podem ser substituídos por serviços gerenciados para melhorar a performance e reduzir a complexidade operacional. 

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

 **Documentos relacionados:** 
+  [Centro de Arquitetura da AWS](https://aws.amazon.com/architecture/) 
+  [AWS Partner Network](https://aws.amazon.com/partners/) 
+  [Biblioteca de Soluções da AWS](https://aws.amazon.com/solutions/) 
+  [Centro de Conhecimentos da AWS](https://aws.amazon.com/premiumsupport/knowledge-center/) 

 **Vídeos relacionados:** 
+  [Introducing The Amazon Builders’ Library (DOP328)](https://www.youtube.com/watch?v=sKRdemSirDM) 
+  [This is my Architecture](https://aws.amazon.com/architecture/this-is-my-architecture/) 

 **Exemplos relacionados:** 
+  [AWS Samples (Amostras da AWS)](https://github.com/aws-samples) 
+  [AWS SDK Examples (Exemplos do AWS SDK)](https://github.com/awsdocs/aws-doc-sdk-examples) 

# PERF01-BP02 Definir um processo para as opções de arquitetura
<a name="perf_performing_architecture_process"></a>

 Use a experiência e o conhecimento internos da nuvem ou os recursos externos, como casos de uso publicados, documentação relevante ou whitepapers para definir um processo para escolher recursos e serviços. Você deve definir um processo que incentive a experimentação e o benchmarking com os serviços que poderiam ser usados em sua carga de trabalho. 

 Ao escrever histórias críticas de usuários para sua arquitetura, inclua os requisitos de performance, como especificar a rapidez em que cada história crítica deve ser executada. Para essas histórias essenciais, implemente jornadas de usuário em roteiros adicionais a fim de garantir a visibilidade da performance delas em relação aos seus requisitos. 

 **Antipadrões comuns:** 
+  Você pressupõe que sua arquitetura atual se tornará estática e não será atualizada ao longo do tempo. 
+  Você apresenta alterações de arquitetura ao longo do tempo sem justificativa. 

 **Benefícios do estabelecimento desta prática recomendada:** Ao ter um processo definido para fazer alterações de arquitetura, você habilita o uso dos dados coletados para influenciar o design da carga de trabalho ao longo do tempo. 

 **Nível de exposição a riscos quando esta prática recomendada não é estabelecida:** Alto 

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

 Selecionar uma abordagem da arquitetura: identifique o tipo de arquitetura que atende aos seus requisitos de performance. Identifique restrições como o meio de entrega (desktop, web, dispositivo móvel, IoT), requisitos legados e integrações. Identifique oportunidades para reutilização, incluindo refatoração. Consulte outras equipes, diagramas de arquitetura e recursos, como os arquitetos de solução da AWS, as arquiteturas de referência da AWS e os parceiros da AWS, para ajudá-lo a escolher uma arquitetura. 

 Definir métricas de performance: use a experiência do cliente para identificar as métricas mais importantes. Para cada métrica, identifique o alvo, a abordagem de medição e a prioridade. Defina a experiência do cliente. Documente a experiência de performance exigida pelos clientes, incluindo como os clientes julgarão a performance da carga de trabalho. Priorize questões de experiência para histórias de usuário importantes. Inclua requisitos de performance e implemente jornadas de usuários com script para garantir que você saiba como as histórias se comportam de acordo com seus requisitos. 

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

 **Documentos relacionados:** 
+  [Centro de Arquitetura da AWS](https://aws.amazon.com/architecture/) 
+  [AWS Partner Network](https://aws.amazon.com/partners/) 
+  [Biblioteca de soluções da AWS](https://aws.amazon.com/solutions/) 
+  [Centro de Conhecimentos da AWS](https://aws.amazon.com/premiumsupport/knowledge-center/) 

 **Vídeos relacionados:** 
+  [Introducing The Amazon Builders’ Library (DOP328)](https://www.youtube.com/watch?v=sKRdemSirDM) 
+  [This is my Architecture](https://aws.amazon.com/architecture/this-is-my-architecture/) 

 **Exemplos relacionados:** 
+  [Amostras da AWS](https://github.com/aws-samples) 
+  [Exemplos de SDKs da AWS](https://github.com/awsdocs/aws-doc-sdk-examples) 

# PERF01-BP03 Fatorar os requisitos de custo ao tomar decisões
<a name="perf_performing_architecture_cost"></a>

 Muitas vezes, as cargas de trabalho têm requisitos de custo para operação. Use controles internos de custo para selecionar tipos e tamanhos de recursos com base na necessidade prevista dos respectivos recursos. 

 Determine quais componentes da workload podem ser substituídos por serviços totalmente gerenciados, como bancos de dados gerenciados, caches na memória e outros serviços de ETL. A redução de sua carga de trabalho operacional permite que você concentre os recursos em resultados empresariais. 

 Para conhecer as melhores práticas de requisitos de custo, consulte a seção *Recursos econômicos* do [whitepaper sobre o pilar de otimização de custos](https://docs.aws.amazon.com/wellarchitected/latest/cost-optimization-pillar/welcome.html). 

 **Antipadrões comuns:** 
+  Você só usa uma família de instâncias. 
+  Você não avalia soluções licenciadas em relação a soluções de código aberto 
+  Você só usa o armazenamento em bloco. 
+  Implante software comum em instâncias do EC2 e volumes do Amazon EBS ou efêmeros disponíveis como um serviço gerenciado. 

 **Benefícios do estabelecimento desta prática recomendada:** Considerar o custo ao fazer suas escolhas permitirá que você habilite outros investimentos. 

 **Nível de exposição a riscos quando esta prática recomendada não é estabelecida:** Médio 

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

 Otimizar os componentes da workload para reduzir custos: dimensione os componentes da workload e habilite a elasticidade para reduzir custos e maximizar a eficiência dos componentes. Determine quais componentes da carga de trabalho podem ser substituídos por serviços gerenciados quando apropriado, como bancos de dados gerenciados, caches na memória e proxies reversos. 

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

 **Documentos relacionados:** 
+  [Centro de Arquitetura da AWS](https://aws.amazon.com/architecture/) 
+  [AWS Partner Network](https://aws.amazon.com/partners/) 
+  [Biblioteca de soluções da AWS](https://aws.amazon.com/solutions/) 
+  [Centro de Conhecimentos da AWS](https://aws.amazon.com/premiumsupport/knowledge-center/) 
+  [AWS Compute Optimizer](https://aws.amazon.com/compute-optimizer/) 

 **Vídeos relacionados:** 
+  [Introducing The Amazon Builders’ Library (DOP328)](https://www.youtube.com/watch?v=sKRdemSirDM) 
+  [This is my Architecture](https://aws.amazon.com/architecture/this-is-my-architecture/) 
+  [Optimize performance and cost for your AWS compute (CMP323-R1) (Otimizar a performance e os custos de sua computação da AWS (CMP323-R1)) ](https://www.youtube.com/watch?v=zt6jYJLK8sg&ref=wellarchitected) 

 **Exemplos relacionados:** 
+  [Amostras da AWS](https://github.com/aws-samples) 
+  [Exemplos de SDKs da AWS](https://github.com/awsdocs/aws-doc-sdk-examples) 
+  [Rightsizing with Compute Optimizer and Memory utilization enabled (Dimensionamento correto com o AWS Compute Optimizer e utilização da memória ativada)](https://www.wellarchitectedlabs.com/cost/200_labs/200_aws_resource_optimization/5_ec2_computer_opt/) 
+  [Código para demonstração do AWS Compute Optimizer](https://github.com/awslabs/ec2-spot-labs/tree/master/aws-compute-optimizer) 

# PERF01-BP04 Usar políticas ou arquiteturas de referência
<a name="perf_performing_architecture_use_policies"></a>

 Maximize a performance e a eficiência avaliando políticas internas e arquiteturas de referência existentes, usando sua análise a fim de selecionar serviços e configurações para sua carga de trabalho. 

 **Antipadrões comuns:** 
+  Você permite um amplo uso da escolha de tecnologia, que pode afetar a sobrecarga de gerenciamento da sua empresa. 

 **Benefícios do estabelecimento desta prática recomendada:** Estabelecer uma política para opções de arquitetura, tecnologia e fornecedor permitirá que as decisões sejam tomadas rapidamente. 

 **Nível de exposição a riscos quando esta prática recomendada não é estabelecida:** Médio 

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

 Implantar a workload usando políticas existentes ou arquiteturas de referência: integre os serviços à sua implantação de nuvem e use os testes de performance para garantir que seja possível continuar a atender aos requisitos de performance. 

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

 **Documentos relacionados:** 
+  [Centro de Arquitetura da AWS](https://aws.amazon.com/architecture/) 
+  [AWS Partner Network](https://aws.amazon.com/partners/) 
+  [Biblioteca de soluções da AWS](https://aws.amazon.com/solutions/) 
+  [Centro de Conhecimentos da AWS](https://aws.amazon.com/premiumsupport/knowledge-center/) 

 **Vídeos relacionados:** 
+  [Introducing The Amazon Builders’ Library (DOP328)](https://www.youtube.com/watch?v=sKRdemSirDM) 
+  [This is my Architecture](https://aws.amazon.com/architecture/this-is-my-architecture/) 

 **Exemplos relacionados:** 
+  [Amostras da AWS](https://github.com/aws-samples) 
+  [Exemplos de SDKs da AWS](https://github.com/awsdocs/aws-doc-sdk-examples) 

# PERF01-BP05 Usar as orientações do seu provedor de nuvem ou de um parceiro apropriado
<a name="perf_performing_architecture_external_guidance"></a>

 Use recursos da empresa de nuvem, como arquitetos de soluções, serviços profissionais ou um parceiro apropriado para orientar suas decisões. Esses recursos podem ajudar a analisar e melhorar sua arquitetura para alcançar uma performance ideal. 

 Entre em contato com a AWS para obter assistência quando precisar de orientações ou informações adicionais sobre produtos. Os arquitetos de soluções da AWS e o [AWS Professional Services](https://aws.amazon.com/professional-services/) fornecem orientação para a implementação da solução. [Os parceiros da AWS](https://aws.amazon.com/partners/) oferecem toda a experiência na AWS para ajudar você a adquirir agilidade e inovação para os seus negócios. 

 **Antipadrões comuns:** 
+  Você usa a AWS como um provedor de datacenter comum. 
+  Você usa os serviços da AWS de uma maneira para a qual eles não foram projetados. 

 **Benefícios do estabelecimento desta prática recomendada:** Consultar o seu provedor ou um parceiro trará confiança para sua tomada de decisões. 

 **Nível de exposição a riscos quando esta prática recomendada não for estabelecida:** Médio 

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

 Entrar em contato com os recursos da AWS para obter assistência: os arquitetos de soluções e o AWS Professional Services fornecem orientações para a implementação de soluções. Os parceiros da APN fornecem a experiência na AWS para ajudar você a adquirir agilidade e inovação para a sua empresa. 

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

 **Documentos relacionados:** 
+  [Centro de Arquitetura da AWS](https://aws.amazon.com/architecture/) 
+  [AWS Partner Network](https://aws.amazon.com/partners/) 
+  [Biblioteca de Soluções da AWS](https://aws.amazon.com/solutions/) 
+  [Centro de Conhecimentos da AWS](https://aws.amazon.com/premiumsupport/knowledge-center/) 

 **Vídeos relacionados:** 
+  [Introducing The Amazon Builders’ Library (DOP328)](https://www.youtube.com/watch?v=sKRdemSirDM) 
+  [This is my Architecture](https://aws.amazon.com/architecture/this-is-my-architecture/) 

 **Exemplos relacionados:** 
+  [AWS Samples (Amostras da AWS)](https://github.com/aws-samples) 
+  [AWS SDK Examples (Exemplos do AWS SDK)](https://github.com/awsdocs/aws-doc-sdk-examples) 

# PERF01-BP06 Realizar testes comparativos das workloads
<a name="perf_performing_architecture_benchmark"></a>

 Faça um teste comparativo de uma carga de trabalho para entender a performance dela na nuvem. Use os dados coletados em benchmarks para direcionar as decisões de arquitetura. 

 Use testes comparativos com testes sintéticos e monitoramento de usuários reais para gerar dados sobre a performance dos componentes da sua workload. O benchmarking é usado na avaliação da tecnologia para um componente específico e geralmente é mais simples de configurar do que testes de carga. Muitas vezes o benchmarking é usado no início de um novo projeto, quando ainda não há uma solução completa para o teste de carga. 

 Você pode criar seus próprios testes comparativos personalizados, ou usar um teste padrão do setor, como o [TPC-DS](http://www.tpc.org/tpcds/) para fazer testes comparativos das suas cargas de trabalho de data warehouse. Os benchmarks do setor são úteis ao comparar ambientes. Já os benchmarks personalizados são úteis para direcionar a tipos específicos de operações que você espera realizar em sua arquitetura. 

 Ao realizar testes comparativos, é importante "preaquecer" o ambiente de teste a fim de garantir resultados válidos. Execute o mesmo benchmark várias vezes para assegurar a captura de qualquer variação ao longo do tempo. 

 Como normalmente é mais rápido executar testes comparativos do que testes de carga, eles podem ser usados mais cedo no pipeline de implantação e fornecer um feedback mais rápido sobre desvios de performance. Ao avaliar uma alteração significativa em um componente ou serviço, um benchmark pode ser uma maneira rápida de verificar se é possível justificar a iniciativa para concretizar a alteração. O uso de benchmarking em conjunto com testes de carga é importante porque o teste de carga informa como será a performance de sua carga de trabalho em produção. 

 **Antipadrões comuns:** 
+  Você depende de testes comparativos comuns que não são indicativos das características da carga de trabalho. 
+  Você conta com o feedback e as percepções de clientes como seu único teste comparativo. 

 **Benefícios do estabelecimento desta prática recomendada:** O benchmarking da sua implementação atual permite medir a melhoria da performance. 

 **Nível de exposição a riscos quando esta prática recomendada não é estabelecida:** Médio 

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

 Monitorar a performance durante o desenvolvimento: implemente processos que deem visibilidade da performance à medida que a workload evolui. 

 Integrar-se com o pipeline de entrega: execute testes de carga automáticos em seu pipeline de entrega. Compare os resultados do teste com indicadores-chave de performance (KPIs) e limites predefinidos para garantir que você continue atendendo aos requisitos de performance. 

 Testar a jornada dos usuários: use versões sintéticas ou limpas de dados de produção (remova informações confidenciais ou de identificação) para o teste de carga. Exercite toda sua arquitetura usando jornadas do usuário reproduzidas ou pré-programadas por meio de seu aplicativo em escala. 

 Monitoramento de usuários reais: use o CloudWatch RUM para ajudar a coletar e visualizar dados do lado do cliente sobre a performance da sua aplicação. Use esses dados para ajudar a estabelecer testes comparativos de performance de usuários reais. 

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

 **Documentos relacionados:** 
+  [Centro de Arquitetura da AWS](https://aws.amazon.com/architecture/) 
+  [AWS Partner Network](https://aws.amazon.com/partners/) 
+  [Biblioteca de soluções da AWS](https://aws.amazon.com/solutions/) 
+  [Centro de Conhecimentos da AWS](https://aws.amazon.com/premiumsupport/knowledge-center/) 
+  [Amazon CloudWatch RUM](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch-RUM.html) 
+  [Amazon CloudWatch Synthetics](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch_Synthetics_Canaries.html) 

 **Vídeos relacionados:** 
+  [Introducing The Amazon Builders’ Library (DOP328)](https://www.youtube.com/watch?v=sKRdemSirDM) 
+  [This is my Architecture](https://aws.amazon.com/architecture/this-is-my-architecture/) 
+  [Optimize applications through Amazon CloudWatch RUM (Otimizar as aplicações por meio do Amazon CloudWatch RUM)](https://www.youtube.com/watch?v=NMaeujY9A9Y) 
+  [Demo of Amazon CloudWatch Synthetics (Demonstração do Amazon CloudWatch Synthetics)](https://www.youtube.com/watch?v=hF3NM9j-u7I) 

 **Exemplos relacionados:** 
+  [Amostras da AWS](https://github.com/aws-samples) 
+  [Exemplos de SDKs da AWS](https://github.com/awsdocs/aws-doc-sdk-examples) 
+  [Testes de carga distribuída](https://aws.amazon.com/solutions/implementations/distributed-load-testing-on-aws/) 
+  [Medição do tempo de carga da página com o Amazon CloudWatch Synthetics](https://github.com/aws-samples/amazon-cloudwatch-synthetics-page-performance) 
+  [Cliente da web do Amazon CloudWatch RUM](https://github.com/aws-observability/aws-rum-web) 

# PERF01-BP07 Teste de carga da workload
<a name="perf_performing_architecture_load_test"></a>

 Implante sua arquitetura de carga de trabalho mais recente na nuvem usando recursos de diferentes tipos e tamanhos. Monitore a implantação a fim de capturar métricas de performance que identificam gargalos ou excessos de capacidade. Use essas informações de performance para projetar ou aprimorar a seleção de sua arquitetura e dos respectivos recursos. 

 Testes de carga usam sua carga de trabalho *real* para que você possa verificar a performance da solução em um ambiente de produção. Execute os testes de carga usando versões sintéticas ou limpas dos dados de produção (remova informações confidenciais ou de identificação). Empregue reproduções ou pré-programações de jornadas de usuário em escala em sua carga de trabalho para exercitar toda a sua arquitetura. Realize testes de carga automaticamente como parte de seu pipeline de entrega e compare os resultados a Key Performance Indicators (KPI – Indicadores-chave de performance) e limites predefinidos. Isso garante que você continue a alcançar a performance necessária. 

 **Antipadrões comuns:** 
+  Você realiza um teste de carga de peças individuais da carga de trabalho, mas não toda a carga de trabalho. 
+  Você realiza um teste de carga em uma infraestrutura que não é igual ao seu ambiente de produção. 
+  Você só realiza testes de carga para a carga esperada e não para além dela, para ajudar a prever onde você pode ter problemas futuros. 
+  Executar testes de carga sem informar o AWS Support e ter o teste anulado por parecer um evento de negação de serviço. 

 **Benefícios do estabelecimento desta prática recomendada:** Medir sua performance em um teste de carga mostrará onde você será afetado à medida que a carga aumentar. Com isso você terá a capacidade de antecipar as alterações necessárias antes que elas afetem sua carga de trabalho. 

 **Nível de exposição a riscos quando esta prática recomendada não é estabelecida:** Baixo 

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

 Validar sua abordagem com testes de carga: o teste de carga é uma comprovação de conceito para descobrir se você atende aos requisitos de performance. É possível usar os serviços da AWS para executar ambientes em escala de produção para testar a arquitetura. Como você paga apenas pelo ambiente de teste quando precisa usá-lo, é possível realizar um teste em escala total a um custo bem menor do que usando um ambiente no local. 

 Monitorar métricas: o Amazon CloudWatch pode coletar métricas entre os recursos da sua arquitetura. Você também pode coletar e publicar métricas personalizadas para descobrir métricas de negócio ou derivadas. Use o CloudWatch ou soluções de terceiros para definir alarmes que indiquem quando os limites são violados. 

 Testar em escala: os testes de carga usam a workload real para que você possa verificar a performance da solução em um ambiente de produção. É possível usar os serviços da AWS para executar ambientes em escala de produção para testar a arquitetura. Como você apenas paga pelo ambiente de teste quando ele é necessário, pode realizar um teste em escala total a um custo menor do que usando um ambiente no local. Aproveite o Nuvem AWS para testar a workload para descobrir se há uma falha na escala ou se ela está com a escala reduzida horizontalmente de maneira não linear. Por exemplo, use instâncias spot para gerar cargas a um baixo custo e descobrir gargalos antes que eles ocorram em produção. 

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

 **Documentos relacionados:** 
+  [AWS CloudFormation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html) 
+  [Building AWS CloudFormation Templates using CloudFormer (Criação de modelos do AWS CloudFormation usando o CloudFormer)](https://aws.amazon.com/blogs/devops/building-aws-cloudformation-templates-using-cloudformer/) 
+  [Amazon CloudWatch RUM](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch-RUM.html) 
+  [Amazon CloudWatch Synthetics](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch_Synthetics_Canaries.html) 
+  [Testes de carga distribuída na AWS](https://docs.aws.amazon.com/solutions/latest/distributed-load-testing-on-aws/welcome.html) 

 **Vídeos relacionados:** 
+  [Introducing The Amazon Builders’ Library (DOP328)](https://www.youtube.com/watch?v=sKRdemSirDM) 
+  [Optimize applications through Amazon CloudWatch RUM (Otimizar as aplicações por meio do Amazon CloudWatch RUM)](https://www.youtube.com/watch?v=NMaeujY9A9Y) 
+  [Demo of Amazon CloudWatch Synthetics (Demonstração do Amazon CloudWatch Synthetics)](https://www.youtube.com/watch?v=hF3NM9j-u7I) 

 **Exemplos relacionados:** 
+  [Testes de carga distribuída na AWS](https://aws.amazon.com/solutions/implementations/distributed-load-testing-on-aws/) 

# PERF 2  Como você seleciona sua solução de computação?
<a name="perf-02"></a>

A solução de computação ideal para uma carga de trabalho varia conforme o design do aplicativo, os padrões de uso e as definições de configuração. As arquiteturas podem usar diferentes soluções de computação para vários componentes e podem habilitar diferentes recursos para melhorar a performance. Selecionar a solução de computação incorreta para uma arquitetura pode levar a uma menor eficiência de performance.

**Topics**
+ [PERF02-BP01 Avaliar as opções de computação disponíveis](perf_select_compute_evaluate_options.md)
+ [PERF02-BP02 Compreender as opções de configuração de computação disponíveis](perf_select_compute_config_options.md)
+ [PERF02-BP03 Coletar métricas relacionadas à computação](perf_select_compute_collect_metrics.md)
+ [PERF02-BP04 Determinar a configuração necessária com o dimensionamento correto](perf_select_compute_right_sizing.md)
+ [PERF02-BP05 Usar a elasticidade disponível dos recursos](perf_select_compute_elasticity.md)
+ [PERF02-BP06 Avaliar continuamente as necessidades de computação com base em métricas](perf_select_compute_use_metrics.md)

# PERF02-BP01 Avaliar as opções de computação disponíveis
<a name="perf_select_compute_evaluate_options"></a>

 Compreenda como a workload pode se beneficiar do uso de diferentes opções de computação, como instâncias, contêineres e funções. 

 **Resultado desejado:** Ao compreender todas as opções de computação disponíveis, você conhecerá oportunidades para aumentar a performance, reduzir custos desnecessários de infraestrutura e diminuir o esforço necessário para manter a workload. Você também pode acelerar seu tempo de entrada no mercado ao implantar novos serviços e recursos. 

 **Antipadrões comuns:** 
+  Em uma workload de pós-migração, usar a mesma solução de computação que foi usada on-premises. 
+  Falta de conhecimento das soluções de computação de nuvem e como essas soluções podem melhorar a performance da computação. 
+  Superdimensionar uma solução de computação existente para atender aos requisitos de escalabilidade ou de performance, quando uma solução de computação alternativa se alinharia com as características da sua workload de forma mais exata. 

 **Benefícios do estabelecimento desta prática recomendada:** Ao identificar os requisitos de computação e avaliar as soluções de computação disponíveis, as partes interessadas e as equipes de engenharia da empresa compreenderão os benefícios e as limitações de usar a solução de computação selecionada. A solução de computação selecionada deve se ajustar aos critérios de performance da workload. Os principais critérios incluem as necessidades de processamento, os padrões do tráfego, os padrões de acesso aos dados e as necessidades de escalabilidade e de latência. 

 **Nível de exposição a riscos quando esta prática recomendada não for estabelecida:** Alto 

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

 Compreenda as soluções de virtualização, conteinerização e gerenciamento que podem beneficiar sua workload e atender aos requisitos de performance. Uma workload pode conter vários tipos de soluções de computação. Cada solução de computação tem características diferentes. Com base na escala da sua workload e nos requisitos de computação, uma solução de computação pode ser selecionada e configurada para atender às suas necessidades. O arquiteto de nuvem deve aprender as vantagens e as desvantagens de instâncias, contêineres e funções. As seguintes etapas ajudarão você a selecionar a solução de computação que corresponda às características de sua workload e requisitos de performance. 


|  **Tipo**  |  **Servidor**  |  **Contêineres**  |  **Função**  | 
| --- | --- | --- | --- | 
|  Serviço da AWS  |  Amazon Elastic Compute Cloud (Amazon EC2)  |  Amazon Elastic Container Service (Amazon ECS), Amazon Elastic Kubernetes Service (Amazon EKS)  |  AWS Lambda  | 
|  Características principais  |  Tem opção dedicada para requisitos de licenças de hardware, opções de posicionamento e uma grande seleção de diferentes famílias de instâncias com base em métricas de computação  |  Implantação fácil, ambientes consistentes, execuções em instâncias do EC2, escalável  |  Tempo limite curto (15 minutos ou menos), memória e CPU máximas não são tão altas quanto para outros serviços, camada de hardware gerenciada, escala para milhões de solicitação simultâneas  | 
|  Casos de uso comuns  |  Migrações do tipo mover sem alterações (lift-and-shift), aplicações monolíticas, ambientes híbridos, aplicações empresariais  |  Microsserviços, ambientes híbridos,  |  Microsserviços, aplicações orientadas por eventos  | 

 

 **Etapas da implementação:** 

1.  Para selecionar o local em que a solução de computação deve residir, avalie a [PERF05-BP06 Escolher o local da workload com base nos requisitos de rede](perf_select_network_location.md). O local limitará os tipos de solução de computação disponíveis para você. 

1.  Identifique o tipo de solução de computação que funciona com os requisitos de local e das aplicações  

   1.  [https://aws.amazon.com/ec2/](https://aws.amazon.com/ec2/) instâncias de servidor virtual são fornecidas em uma grande variedade de famílias e de tamanhos diferentes. Elas oferecem uma grande variedade de capacidades, como unidades de estado sólido (SSDs) e unidades de processamento gráfico (GPUs). As instâncias do EC2 oferecem a maior flexibilidade de opções de instâncias. Ao iniciar uma instância do EC2, o tipo de instância especificado determina o hardware da instância. Cada tipo de instância oferece diferentes capacidades de computação, memória e armazenamento. Os tipos de instância são agrupados em famílias de instância conforme essas capacidades. Os casos de uso típicos incluem: execução de aplicações empresariais, computação de alta performance (HPC), treinamento e implantação de aplicações de machine learning e execução de aplicações nativas de nuvem. 

   1.  [https://aws.amazon.com/ecs/](https://aws.amazon.com/ecs/) é um serviço totalmente gerenciado de orquestração de contêineres que permite executar e gerenciar automaticamente contêineres em um cluster de instâncias do EC2 ou instâncias de tecnologia sem servidor usando o AWS Fargate. É possível usar o Amazon ECS com outros serviços, como o Amazon Route 53, o Secrets Manager, o AWS Identity and Access Management (IAM), e o Amazon CloudWatch. O Amazon ECS é recomendado quando sua aplicação é conteinerizada e a equipe de engenharia prefere contêineres do Docker. 

   1.  [https://aws.amazon.com/eks/](https://aws.amazon.com/eks/) é um serviço gerenciado do Kubernetes. É possível optar por executar os clusters do EKS usando o AWS Fargate, eliminando a necessidade de provisionar e de gerenciar servidores. O gerenciamento do Amazon EKS é simplificado devido às integrações com os serviços da AWS, como o Amazon CloudWatch, os grupos do Auto Scaling, o AWS Identity and Access Management (IAM) e a Amazon Virtual Private Cloud (VPC). Ao usar contêineres, use métricas de computação para selecionar o tipo ideal para a sua workload, de forma semelhante a como você usa métricas de computação para selecionar seus tipos de instância do EC2 ou do AWS Fargate. O Amazon EKS é recomendado quando sua aplicação é conteinerizada e a equipe de engenharia prefere contêineres do Kubernetes em vez dos contêineres do Docker. 

   1.  Você pode usar o [https://aws.amazon.com/lambda/](https://aws.amazon.com/lambda/) para executar código compatível com as opções permitidas de tempo de execução, memória e CPU. Basta fazer upload do seu código, e o AWS Lambda gerenciará tudo o que for necessário para executar e ajustar a escala desse código. É possível configurar o código para ser acionado automaticamente em outros serviços da AWS ou chamado diretamente. O Lambda é recomendado para execuções curtas, arquiteturas de microsserviço desenvolvidas para a nuvem.  

1.  Depois de experimentar a nova solução de computação, planeje a migração e valide as métricas de performance. Esse é um processo contínuo, consulte a [PERF02-BP04 Determinar a configuração necessária com o dimensionamento correto](perf_select_compute_right_sizing.md). 

 **Nível de esforço para o plano de implementação:** Se uma workload estiver sendo movida de uma solução de computação para outra, poderá haver um nível *moderado* de esforço envolvido na refatoração da aplicação.   

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

 **Documentos relacionados:** 
+  [Computação em nuvem com a AWS ](https://aws.amazon.com/products/compute/?ref=wellarchitected) 
+  [Tipos de instância do EC2 ](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html?ref=wellarchitected) 
+  [Controle do estado do processo para sua instância do EC2 ](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/processor_state_control.html?ref=wellarchitected) 
+  [Contêineres do EKS: nós de processamento do EKS ](https://docs.aws.amazon.com/eks/latest/userguide/worker.html?ref=wellarchitected) 
+  [Contêineres do Amazon ECS: instâncias de contêineres do Amazon ECS ](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ECS_instances.html?ref=wellarchitected) 
+  [Funções: configuração de funções do Lambda](https://docs.aws.amazon.com/lambda/latest/dg/best-practices.html?ref=wellarchitected#function-configuration) 
+  [Prescriptive Guidance for Containers (Orientações prescritivas para contêineres)](https://aws.amazon.com/prescriptive-guidance/?apg-all-cards.sort-by=item.additionalFields.sortText&apg-all-cards.sort-order=desc&awsf.apg-new-filter=*all&awsf.apg-content-type-filter=*all&awsf.apg-code-filter=*all&awsf.apg-category-filter=categories%23containers&awsf.apg-rtype-filter=*all&awsf.apg-isv-filter=*all&awsf.apg-product-filter=*all&awsf.apg-env-filter=*all) 
+  [Prescriptive Guidance for Serverless (Orientações prescritivas para a tecnologia sem servidor)](https://aws.amazon.com/prescriptive-guidance/?apg-all-cards.sort-by=item.additionalFields.sortText&apg-all-cards.sort-order=desc&awsf.apg-new-filter=*all&awsf.apg-content-type-filter=*all&awsf.apg-code-filter=*all&awsf.apg-category-filter=categories%23serverless&awsf.apg-rtype-filter=*all&awsf.apg-isv-filter=*all&awsf.apg-product-filter=*all&awsf.apg-env-filter=*all) 

 **Vídeos relacionados:** 
+  [Como escolher uma opção de computação para startups](https://aws.amazon.com/startups/start-building/how-to-choose-compute-option/) 
+  [Optimize performance and cost for your AWS compute (CMP323-R1) (Otimizar a performance e os custos de sua computação da AWS (CMP323-R1))](https://www.youtube.com/watch?v=zt6jYJLK8sg) 
+  [Amazon EC2 foundations (CMP211-R2) ](https://www.youtube.com/watch?v=kMMybKqC2Y0&ref=wellarchitected) 
+  [Powering next-gen Amazon EC2: Deep dive into the Nitro system ](https://www.youtube.com/watch?v=rUY-00yFlE4&ref=wellarchitected) 
+  [Deliver high performance ML inference with AWS Inferentia (CMP324-R1) (Entregar inferência de ML de alta performance com o AWS Inferentia (CMP324-R1)) ](https://www.youtube.com/watch?v=17r1EapAxpk&ref=wellarchitected) 
+  [Better, faster, cheaper compute: Cost-optimizing Amazon EC2 (CMP202-R1) (Computação melhor, mais rápida e com custo mais baixo: otimização de custos com o EC2 (CMP202-R1)) ](https://www.youtube.com/watch?v=_dvh4P2FVbw&ref=wellarchitected) 

 **Exemplos relacionados:** 
+  [Migração de aplicações da web para contêineres](https://application-migration-with-aws.workshop.aws/en/container-migration.html) 
+  [Executar uma aplicação Hello World de tecnologia sem servidor](https://aws.amazon.com/getting-started/hands-on/run-serverless-code/) 

# PERF02-BP02 Compreender as opções de configuração de computação disponíveis
<a name="perf_select_compute_config_options"></a>

 Cada solução de computação tem opções e configurações disponíveis para oferecer suporte às características da sua workload. Saiba como várias opções complementam a workload, e quais opções de configuração são melhores para a sua aplicação. Exemplos dessas opções são famílias de instâncias, tamanhos, recursos (GPU, E/S), expansão, tempos limite, tamanhos de função, instâncias de contêineres e simultaneidade. 

 **Resultado desejado:** As características da workload, incluindo CPU, memória, throughput da rede, GPU, IOPs, padrões de tráfego e padrões de acesso aos dados, são documentadas e usadas para configurar a solução de computação que corresponda a essas características. Cada uma dessas métricas, além das métricas personalizadas específicas da sua workload, são registradas, monitoradas e usadas para otimizar a configuração da computação que melhor atenda às suas necessidades. 

 **Antipadrões comuns:** 
+  Usar a mesma solução de computação que foi usada on-premises. 
+  Não analisar as opções de computação ou as famílias de instâncias que atendam às características da workload. 
+  Superdimensionar a computação para garantir a capacidade de expansão. 
+  Você usa várias plataformas de gerenciamento de computação para a mesma carga de trabalho. 

** Benefícios do estabelecimento desta prática recomendada:** Familiarize-se com as ofertas de computação da AWS para determinar a solução correta para cada uma das suas workloads. Depois de selecionar as ofertas de computação para a workload, é possível experimentá-las rapidamente para determinar se elas atendem às necessidades da sua workload. Uma solução de computação otimizada para atender às características da sua workload melhorará a sua performance, reduzirá os seus custos e aumentará a sua confiabilidade.

 **Nível de exposição a riscos quando esta prática recomendada não é estabelecida:** Alto 

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

 Se a sua workload estiver usando a mesma opção de computação há mais de quatro semanas, e se a previsão for de que as características permanecerão as mesmas no futuro, você poderá usar o [AWS Compute Optimizer](https://aws.amazon.com/compute-optimizer/) para obter uma recomendação com base nas características de sua computação. Se o AWS Compute Optimizer não for uma opção por causa da falta de métricas, [de um tipo de instância não compatível](https://docs.aws.amazon.com/compute-optimizer/latest/ug/requirements.html#requirements-ec2-instances) ou de uma alteração previsível em suas características, preveja suas métricas com base nos testes e experimentação de carga.  

 **Etapas da implementação:** 

1.  Você está executando em instâncias ou contêineres do EC2 com o tipo de execução do EC2? 

   1.  Sua workload pode usar CPUs para melhorar a performance? 

      1.  [Instâncias de computação acelerada](https://aws.amazon.com/ec2/instance-types/?trk=36c6da98-7b20-48fa-8225-4784bced9843&sc_channel=ps&sc_campaign=acquisition&sc_medium=ACQ-P|PS-GO|Brand|Desktop|SU|Compute|EC2|US|EN|Text&s_kwcid=AL!4422!3!536392622533!e!!g!!ec2%20instance%20types&ef_id=CjwKCAjwiuuRBhBvEiwAFXKaNNRXM5FrnFg5H8RGQ4bQKuUuK1rYWmU2iH-5H3VZPqEheB-pEm-GNBoCdD0QAvD_BwE:G:s&s_kwcid=AL!4422!3!536392622533!e!!g!!ec2%20instance%20types#Accelerated_Computing) são instâncias baseadas em GPU que fornecem a mais alta performance para treinamento de machine learning, inferência e computação de alta performance. 

   1.  Sua workload executa aplicações de inferência de machine learning? 

      1.  [AWS Inferentia (Inf1)](https://aws.amazon.com/ec2/instance-types/inf1/) as instâncias do Inf1 são criadas para serem compatíveis com aplicações de inferência de machine learning. Ao usar instâncias do Inf1, os clientes podem executar aplicações de inferência de machine learning em grande escala, como reconhecimento de imagens, reconhecimento de fala, processamento de linguagem natural, personalização e detecção de fraude. É possível criar um modelo em umas das principais frameworks de machine learning, como o TensorFlow, o PyTorch ou o MXNet, e usar instâncias de GPU para treinar o seu modelo. Depois que o modelo de machine learning for treinado para atender aos seus requisitos, você poderá implantá-lo em instâncias Inf1 usando o [AWS Neuron,](https://aws.amazon.com/machine-learning/neuron/)um kit de desenvolvimento de software (SDK) especializado que consiste em um compilador, um tempo de execução e de ferramentas de criação de perfil que otimizam a performance de inferência de machine learning de chips do Inferentia. 

   1.  A sua workload se integra com hardware de baixo nível para melhorar a performance?  

      1.  [Matrizes de porta programável no campo (FPGAs)](https://aws.amazon.com/ec2/instance-types/f1/) Usando FPGAs, é possível otimizar as workloads com a execução acelerada por hardware personalizada para as workloads mais exigentes. É possível definir seus algoritmos usando linguagens gerais de programação compatíveis como C ou Go, ou linguagens orientadas por hardware, como Verilog ou VHDL. 

   1.  Você tem pelo menos quatro semanas de métricas e pode prever se o padrão e as métricas do tráfego permanecerão iguais no futuro? 

      1.  Uso [Compute Optimizer](https://aws.amazon.com/compute-optimizer/) para obter uma recomendação de machine learning sobre a configuração de computação que corresponde melhor às características de sua computação. 

   1.  A performance da sua workload é limitada pelas métricas de CPU?  

      1.  [As instâncias otimizadas por computação](https://aws.amazon.com/ec2/instance-types/?trk=36c6da98-7b20-48fa-8225-4784bced9843&sc_channel=ps&sc_campaign=acquisition&sc_medium=ACQ-P|PS-GO|Brand|Desktop|SU|Compute|EC2|US|EN|Text&s_kwcid=AL!4422!3!536392622533!e!!g!!ec2%20instance%20types&ef_id=CjwKCAjwiuuRBhBvEiwAFXKaNNRXM5FrnFg5H8RGQ4bQKuUuK1rYWmU2iH-5H3VZPqEheB-pEm-GNBoCdD0QAvD_BwE:G:s&s_kwcid=AL!4422!3!536392622533!e!!g!!ec2%20instance%20types#Compute_Optimized) são ideais para as workloads que exigem processadores de alta performance.  

   1.  A performance de sua workload é limitada pelas métricas de memória?  

      1.  [As instâncias otimizadas por memória](https://aws.amazon.com/ec2/instance-types/?trk=36c6da98-7b20-48fa-8225-4784bced9843&sc_channel=ps&sc_campaign=acquisition&sc_medium=ACQ-P|PS-GO|Brand|Desktop|SU|Compute|EC2|US|EN|Text&s_kwcid=AL!4422!3!536392622533!e!!g!!ec2%20instance%20types&ef_id=CjwKCAjwiuuRBhBvEiwAFXKaNNRXM5FrnFg5H8RGQ4bQKuUuK1rYWmU2iH-5H3VZPqEheB-pEm-GNBoCdD0QAvD_BwE:G:s&s_kwcid=AL!4422!3!536392622533!e!!g!!ec2%20instance%20types#Memory_Optimized) entregam grandes quantidades de memória para oferecer suporte às workloads com consumo intenso de memória. 

   1.  A performance de sua workload é limitada por IOPS? 

      1.  [As instâncias otimizadas por armazenamento](https://aws.amazon.com/ec2/instance-types/?trk=36c6da98-7b20-48fa-8225-4784bced9843&sc_channel=ps&sc_campaign=acquisition&sc_medium=ACQ-P|PS-GO|Brand|Desktop|SU|Compute|EC2|US|EN|Text&s_kwcid=AL!4422!3!536392622533!e!!g!!ec2%20instance%20types&ef_id=CjwKCAjwiuuRBhBvEiwAFXKaNNRXM5FrnFg5H8RGQ4bQKuUuK1rYWmU2iH-5H3VZPqEheB-pEm-GNBoCdD0QAvD_BwE:G:s&s_kwcid=AL!4422!3!536392622533!e!!g!!ec2%20instance%20types#Storage_Optimized) são projetadas para workloads que exigem alta leitura sequencial e acesso de gravação (IOPS) no armazenamento local. 

   1.  As características da sua workload representam uma necessidade balanceada entre todas as métricas? 

      1.  A CPU da sua workload precisa de expansão para tratar picos no tráfego? 

         1.  [As instâncias de performance expansível](https://aws.amazon.com/ec2/instance-types/?trk=36c6da98-7b20-48fa-8225-4784bced9843&sc_channel=ps&sc_campaign=acquisition&sc_medium=ACQ-P|PS-GO|Brand|Desktop|SU|Compute|EC2|US|EN|Text&s_kwcid=AL!4422!3!536392622533!e!!g!!ec2%20instance%20types&ef_id=CjwKCAjwiuuRBhBvEiwAFXKaNNRXM5FrnFg5H8RGQ4bQKuUuK1rYWmU2iH-5H3VZPqEheB-pEm-GNBoCdD0QAvD_BwE:G:s&s_kwcid=AL!4422!3!536392622533!e!!g!!ec2%20instance%20types#Instance_Features) são semelhantes às instâncias otimizadas para computação, com a exceção de que oferecem a capacidade de expandir além da linha de base fixa da CPU identificada em uma instância otimizada para computação. 

      1.  [As instâncias de uso geral](https://aws.amazon.com/ec2/instance-types/?trk=36c6da98-7b20-48fa-8225-4784bced9843&sc_channel=ps&sc_campaign=acquisition&sc_medium=ACQ-P|PS-GO|Brand|Desktop|SU|Compute|EC2|US|EN|Text&s_kwcid=AL!4422!3!536392622533!e!!g!!ec2%20instance%20types&ef_id=CjwKCAjwiuuRBhBvEiwAFXKaNNRXM5FrnFg5H8RGQ4bQKuUuK1rYWmU2iH-5H3VZPqEheB-pEm-GNBoCdD0QAvD_BwE:G:s&s_kwcid=AL!4422!3!536392622533!e!!g!!ec2%20instance%20types#General_Purpose) fornecem um equilíbrio de todas as características para compatibilidade com uma variedade de workloads. 

   1.  Sua instância de computação é executada no Linux e é restringida pelo throughput da rede na placa de interface da rede? 

      1.  Análise [Pergunta sobre performance 5, Prática recomendada 2: avaliar os recursos de rede disponíveis](https://docs.aws.amazon.com/wellarchitected/latest/performance-efficiency-pillar/network-architecture-selection.html) para encontrar o tipo e a família de instâncias certos para atender às suas necessidades de performance. 

   1.  Sua workload precisa de instâncias consistentes e previsíveis em uma zona de disponibilidade específica que pode ser confirmada por um ano?  

      1.  [Instâncias reservadas](https://aws.amazon.com/ec2/pricing/reserved-instances/) confirmam as reservas de capacidade em uma zona de disponibilidade específica. As instâncias reservadas são ideais para a capacidade de computação exigida em uma zona de disponibilidade específica.  

   1.  Sua workload tem licenças que exigem hardware dedicado? 

      1.  [Hosts dedicados](https://aws.amazon.com/ec2/dedicated-hosts/) são compatíveis com licenças de software e ajudam você a atender aos requisitos de conformidade. 

   1.  Sua solução de computação se expande e exige processamento síncrono? 

      1.  [Instâncias sob demanda](https://aws.amazon.com/ec2/pricing/on-demand/) permitem usar a capacidade de computação pela hora ou segundo sem uma confirmação de longo prazo. Essas instâncias são ideais para expansões acima das necessidades de performance da linha de base. 

   1.  Sua solução de computação é sem estado, tolerante à falhas e assíncrona?  

      1.  [Instâncias spot](https://aws.amazon.com/ec2/spot/) permitem aproveitar a capacidade de instâncias não utilizadas para workloads sem estado e tolerantes à falhas.  

1.  Você executa contêineres no [Fargate](https://aws.amazon.com/fargate/)? 

   1.  A performance de suas tarefas é restringida pela memória ou pela CPU? 

      1.  Use a ferramenta de recomendações do [Tamanho da tarefa](https://docs.aws.amazon.com/AmazonECS/latest/bestpracticesguide/capacity-tasksize.html) para ajustar a memória ou a CPU. 

   1.  Sua performance está sendo afetada por expansões do seu padrão de tráfego? 

      1.  Use a ferramenta de recomendações do [Auto Scaling](https://docs.aws.amazon.com/AmazonECS/latest/bestpracticesguide/capacity-autoscaling.html) configuração para corresponder seus padrões de tráfego. 

1.  Sua solução de computação é no [Lambda](https://docs.aws.amazon.com/lambda/latest/dg/gettingstarted-features.html)? 

   1.  Você tem pelo menos quatro semanas de métricas e pode prever se o padrão e as métricas do tráfego permanecerão iguais no futuro? 

      1.  Uso [Compute Optimizer](https://aws.amazon.com/compute-optimizer/) para obter uma recomendação de machine learning sobre a configuração de computação que corresponde melhor às características de sua computação. 

   1.  Você não têm métricas suficientes para usar o AWS Compute Optimizer? 

      1.  Se você não tiver métricas disponíveis para usar o Compute Optimizer, use o [Ajuste da potência do AWS Lambda](https://docs.aws.amazon.com/lambda/latest/operatorguide/profile-functions.html) para ajudar a selecionar a melhor configuração. 

   1.  A performance da função é restringida pela memória ou pela CPU? 

      1.  Configure a [memória do Lambda](https://docs.aws.amazon.com/lambda/latest/dg/configuration-function-common.html#configuration-memory-console) para atender às suas métricas de necessidades de performance. 

   1.  O tempo limite de sua função está se esgotando ao executar? 

      1.  Altere as [configurações de tempo limite](https://docs.aws.amazon.com/lambda/latest/dg/configuration-function-common.html) 

   1.  A performance de sua função é restringida pelas expansões de atividades e pela simultaneidade?  

      1.  Defina as [configurações de simultaneidade](https://docs.aws.amazon.com/lambda/latest/dg/configuration-concurrency.html) para atender aos seus requisitos de performance. 

   1.  Sua função é executada assincronamente e falha em novas tentativas? 

      1.  Configure a idade máxima do evento e o limite máximo de novas tentativas nas [definições da configuração](https://docs.aws.amazon.com/lambda/latest/dg/invocation-async.html) assíncrona. 

## Nível de esforço do plano de implementação: 
<a name="level-of-effort-for-the-implementation-plan-to-establish-this-best-practice-you-must-be-aware-of-your-current-compute-characteristics-and-metrics.-gathering-those-metrics-establishing-a-baseline-and-then-using-those-metrics-to-identify-the-ideal-compute-option-is-a-low-to-moderate-level-of-effort.-this-is-best-validated-by-load-tests-and-experimentation."></a>

Ao estabelecer esta prática recomendada, lembre-se das características e das métricas atuais da computação. A coleta dessas métricas, o estabelecimento de uma linha de base e o uso dessas métricas para identificar a opção ideal de computação é um nível de esforço *baixo* to *moderado* . Isso é melhor validade com testes de carga e experimentação. 

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

 **Documentos relacionados:** 
+  [Computação em nuvem com a AWS ](https://aws.amazon.com/products/compute/?ref=wellarchitected) 
+  [AWS Compute Optimizer](https://aws.amazon.com/compute-optimizer/) 
+  [Tipos de instância do EC2 ](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html?ref=wellarchitected) 
+  [Controle do estado do processo para sua instância do EC2 ](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/processor_state_control.html?ref=wellarchitected) 
+  [Contêineres do EKS: nós de processamento do EKS ](https://docs.aws.amazon.com/eks/latest/userguide/worker.html?ref=wellarchitected) 
+  [Contêineres do Amazon ECS: instâncias de contêineres do Amazon ECS ](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ECS_instances.html?ref=wellarchitected) 
+  [Funções: configuração de funções do Lambda](https://docs.aws.amazon.com/lambda/latest/dg/best-practices.html?ref=wellarchitected#function-configuration) 

 **Vídeos relacionados:** 
+  [Amazon EC2 foundations (CMP211-R2) ](https://www.youtube.com/watch?v=kMMybKqC2Y0&ref=wellarchitected) 
+  [Powering next-gen Amazon EC2: Deep dive into the Nitro system ](https://www.youtube.com/watch?v=rUY-00yFlE4&ref=wellarchitected) 
+  [Optimize performance and cost for your AWS compute (CMP323-R1) (Otimizar a performance e os custos de sua computação da AWS (CMP323-R1)) ](https://www.youtube.com/watch?v=zt6jYJLK8sg&ref=wellarchitected) 

 **Exemplos relacionados:** 
+  [Rightsizing with Compute Optimizer and Memory utilization enabled (Dimensionamento correto com o AWS Compute Optimizer e utilização da memória ativada)](https://www.wellarchitectedlabs.com/cost/200_labs/200_aws_resource_optimization/5_ec2_computer_opt/) 
+  [Código para demonstração do AWS Compute Optimizer](https://github.com/awslabs/ec2-spot-labs/tree/master/aws-compute-optimizer) 

# PERF02-BP03 Coletar métricas relacionadas à computação
<a name="perf_select_compute_collect_metrics"></a>

Para entender a performance dos recursos de computação, registre e acompanhe a utilização de vários sistemas. Esses dados podem ser usados para fazer determinações mais precisas sobre os requisitos de recursos.  

 As workloads podem gerar grandes volumes de dados, como métricas, logs e eventos. Determine se o serviço de armazenamento, monitoramento e observação existente é capaz de gerenciar os dados gerados. Identifique quais métricas refletem a utilização de recursos e podem ser coletadas, agregadas e correlacionadas em uma única plataforma. Essas métricas devem representar todos os recursos de workload, aplicações e serviços, para que você possa visualizar facilmente todo o sistema e identificar oportunidades e problemas na melhoria de performance.

 **Resultado desejado:** todas as métricas referentes aos recursos relacionados à computação são identificadas, coletadas, agregadas e correlacionadas em uma única plataforma com retenção implementada para oferecer suporte a metas operacionais e de custo. 

 **Antipadrões comuns:** 
+  Você só usa a pesquisa manual de arquivos de log para métricas.  
+  Você só publica métricas em ferramentas internas. 
+  Você só usa as métricas padrão registradas pelo software de monitoramento selecionado. 
+  Você só revisa as métricas quando há um problema. 

 

 **Benefícios do estabelecimento dessa prática recomendada:** para monitorar a performance das workloads, você precisa registrar várias métricas de performance ao longo de um período. Essas métricas permitem detectar anomalias na performance. Elas também ajudarão a avaliar a performance em relação às métricas de negócios para garantir que as necessidades da workload sejam atendidas. 

 **Nível de exposição a riscos quando esta prática recomendada não for estabelecida:** Alto 

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

 Identifique, colete, agregue e correlacione métricas relacionadas à computação. Usar um serviço como o Amazon CloudWatch pode tornar a implementação mais rápida e fácil de manter. Além das métricas padrão registradas, identifique e acompanhe métricas adicionais em nível de sistema na workload. Registre dados como níveis de uso da CPU, memória, E/S de disco e métricas de entrada e saída de rede para obter uma percepção sobre os níveis de utilização ou os gargalos. Esses dados são cruciais para entender a performance da workload e como a solução de computação é utilizada. Use essas métricas como parte de uma abordagem impulsionada por dados para ajustar e otimizar ativamente os recursos de sua carga de trabalho.  

 **Etapas da implementação:** 

1.  Quais métricas de solução de computação são importantes de acompanhar? 

   1.  [Métricas padrão do EC2](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/viewing_metrics_with_cloudwatch.html) 

   1.  [Métricas padrão do Amazon ECS](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/cloudwatch-metrics.html) 

   1.  [Métricas padrão do EKS](https://docs.aws.amazon.com/prescriptive-guidance/latest/implementing-logging-monitoring-cloudwatch/kubernetes-eks-metrics.html) 

   1.  [Métricas padrão do Lambda](https://docs.aws.amazon.com/lambda/latest/dg/monitoring-functions-access-metrics.html) 

   1.  [Métricas de memória e de disco do EC2](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/mon-scripts.html) 

1.  Tenho, atualmente, uma solução de registro em log e monitoramento aprovada? 

   1.  [Amazon CloudWatch](https://aws.amazon.com/cloudwatch/) 

   1.  [AWS Distro for OpenTelemetry](https://aws.amazon.com/otel/) 

   1.  [Amazon Managed Service for Prometheus](https://docs.aws.amazon.com/grafana/latest/userguide/prometheus-data-source.html) 

1.  Identifiquei e configurei minhas políticas de retenção de dados para corresponder às minhas metas operacionais e de segurança? 

   1.  [Retenção de dados padrão para métricas do CloudWatch](https://aws.amazon.com/cloudwatch/faqs/#AWS_resource_.26_custom_metrics_monitoring) 

   1.  [Retenção de dados padrão para o CloudWatch Logs](https://aws.amazon.com/cloudwatch/faqs/#Log_management) 

1.  Como você implanta agentes de agregação de métrica e log? 

   1.  [AWS Systems Manager Automation](https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-automation.html?ref=wellarchitected) 

   1.  [OpenTelemetry Collector](https://aws-otel.github.io/docs/getting-started/collector) 

 **Nível de esforço para o plano de implementação: **Há um nível de esforço *médio* para identificar, rastrear, coletar, agregar e correlacionar métricas de todos os recursos de computação. 

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

 **Documentos relacionados:** 
+  [Documentação do Amazon CloudWatch](https://docs.aws.amazon.com/cloudwatch/index.html?ref=wellarchitected) 
+  [Coletar métricas e logs das instâncias do Amazon EC2 e de servidores on-premises com o agente do CloudWatch](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Install-CloudWatch-Agent.html?ref=wellarchitected) 
+  [Acessar o Amazon CloudWatch Logs para o AWS Lambda](https://docs.aws.amazon.com/lambda/latest/dg/monitoring-functions-logs.html?ref=wellarchitected) 
+  [Uso do CloudWatch Logs com instâncias de contêiner](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/using_cloudwatch_logs.html?ref=wellarchitected) 
+  [Publicar métricas personalizadas](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/publishingMetrics.html?ref=wellarchitected) 
+  [AWS Answers: registro em log centralizado](https://aws.amazon.com/answers/logging/centralized-logging/?ref=wellarchitected) 
+  [Serviços da AWS que publicam métricas do CloudWatch](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CW_Support_For_AWS.html?ref=wellarchitected) 
+  [Monitoramento do Amazon EKS no AWS Fargate](https://aws.amazon.com/blogs/containers/monitoring-amazon-eks-on-aws-fargate-using-prometheus-and-grafana/) 

 

 **Vídeos relacionados:** 
+  [Application Performance Management na AWS](https://www.youtube.com/watch?v=5T4stR-HFas&ref=wellarchitected) 
+  [Build a monitoring plan](https://www.youtube.com/watch?v=OMmiGETJpfU&ref=wellarchitected) 

 

 **Exemplos relacionados:** 
+  [Nível 100: monitoramento com os painéis do CloudWatch](https://wellarchitectedlabs.com/performance-efficiency/100_labs/100_monitoring_with_cloudwatch_dashboards/) 
+  [Nível 100: monitoramento das instâncias do Windows do EC2 com os painéis do CloudWatch](https://wellarchitectedlabs.com/performance-efficiency/100_labs/100_monitoring_windows_ec2_cloudwatch/) 
+  [Nível 100: monitoramento de uma instância do Amazon Linux EC2 com os painéis do CloudWatch](https://wellarchitectedlabs.com/performance-efficiency/100_labs/100_monitoring_linux_ec2_cloudwatch/) 

# PERF02-BP04 Determinar a configuração necessária com o dimensionamento correto
<a name="perf_select_compute_right_sizing"></a>

Analise as várias características de desempenho da workload e como elas se relacionam ao uso de memória, rede, E/S e CPU. Use esses dados para escolher os recursos mais adequados ao perfil da workload. Por exemplo, uma workload com uso intenso de memória como um banco de dados pode se beneficiar de uma proporção maior de memória por núcleo. No entanto, uma workload com uso intenso de computação pode precisar de uma frequência e contagem de núcleo maior, mas pode ser satisfeita com uma quantidade menor de memória por núcleo.

 **Antipadrões comuns:** 
+  Você escolhe uma instância com os maiores valores em todas as características de desempenho disponível para todas workloads. 
+  Você padroniza todos os tipos de instâncias para um tipo a fim de facilitar o gerenciamento. 
+  Você otimiza com relação aos parâmetros de comparação sintéticos comuns sem validar os requisitos reais de uma workload específica. 
+  Você mantém a mesma infraestrutura por um longo período sem reavaliar e integrar novas ofertas. 

 **Benefícios do estabelecimento dessa prática recomendada:** quando você se familiariza com os requisitos da workload, é possível comparar essas necessidades com as ofertas de computação disponíveis e testar rapidamente para determinar quais atendem às necessidades da workload de forma mais eficiente. Isso permite o desempenho ideal sem pagar em excesso pelos recursos não exigidos. 

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

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

Modifique a configuração da workload fazendo o dimensionamento correto. Para otimizar o desempenho, a eficiência geral e a eficácia dos custos, determine primeiro de quais recursos a workload precisa. Escolha instâncias otimizadas para memória, como as instâncias da família R, para workloads com uso intenso de memória, como um banco de dados. Para workloads que exigem maior capacidade de computação, escolha instâncias da família C, ou escolha instâncias com maior contagem de núcleos ou maior frequência de núcleos. Escolha o desempenho de E/S baseado nas necessidades da workload em vez de usar parâmetros de comparação sintéticos comuns. Para desempenho de E/S superior, escolha instâncias da família I, [selecione volumes do Amazon EBS otimizados para E/S](https://aws.amazon.com/premiumsupport/knowledge-center/optimize-ebs-provisioned-iops/) ou escolha instâncias com [armazenamento de instância](https://aws.amazon.com/premiumsupport/knowledge-center/instance-store-vs-ebs/). Para obter mais detalhes sobre tipos de instância específicos, consulte [Tipos de instância do Amazon EC2](https://aws.amazon.com/ec2/instance-types/).

 O dimensionamento correto garante que as workloads tenham o melhor desempenho possível e evitam o pagamento excessivo de recursos desnecessários. 

 **Etapas da implementação** 
+  Conheça sua workload ou analise os requisitos de seus recursos. 
+  Avalie as workloads separadamente. A Nuvem AWS proporciona flexibilidade e agilidade para dimensionar corretamente cada workload por conta própria, sem precisar fazer concessões. 
+  Crie ambientes de teste para encontrar a melhor correspondência de ofertas de computação para sua workload. 
+  Reavalie continuamente novas ofertas de computação e as compare com as necessidades de sua workload. 
+  Analise rotineiramente novas ofertas de serviço em busca do desempenho com melhor preço. 
+  Realize regularmente análises do Well-Architected Framework. 

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

 **Práticas recomendadas relacionadas:** 
+  [PERF02-BP03 Coletar métricas relacionadas à computação](perf_select_compute_collect_metrics.md) 
+  [PERF02-BP06 Avaliar continuamente as necessidades de computação com base em métricas](perf_select_compute_use_metrics.md) 

 **Documentos relacionados:** 
+  [AWS Compute Optimizer](https://aws.amazon.com/compute-optimizer/)  
+  [Cloud Compute with AWS](https://aws.amazon.com/products/compute/) (Computação em nuvem com a AWS) 
+  [Tipos de instância do Amazon EC2](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html) 
+  [Contêineres do Amazon ECS: instâncias de contêiner do Amazon ECS](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ECS_instances.html) 
+  [Contêineres do Amazon EKS: nós de processamento do Amazon EKS](https://docs.aws.amazon.com/eks/latest/userguide/worker.html) 
+  [Funções: configuração de função do Lambda](https://docs.aws.amazon.com/lambda/latest/dg/best-practices.html#function-configuration) 

 **Vídeos relacionados:** 
+  [Amazon EC2 foundations (CMP211-R2)](https://www.youtube.com/watch?v=kMMybKqC2Y0) (Fundamentos do Amazon EC2 (CMP211-R2)) 
+  [Better, faster, cheaper compute: Cost-optimizing Amazon EC2 (CMP202-R1)](https://www.youtube.com/watch?v=_dvh4P2FVbw) (Computação melhor, mais rápida e mais barata: otimização de custos com o Amazon EC2) 
+  [Deliver high performance ML inference with AWS Inferentia (CMP324-R1)](https://www.youtube.com/watch?v=17r1EapAxpk) (Entregar inferência de ML de alto desempenho com o AWS Inferentia (CMP324-R1)) 
+  [Optimize performance and cost for your AWS compute (CMP323-R1)](https://www.youtube.com/watch?v=zt6jYJLK8sg) (Otimizar o desempenho e os custos da computação da AWS (CMP323-R1)) 
+  [Powering next-gen Amazon EC2: Deep dive into the Nitro system](https://www.youtube.com/watch?v=rUY-00yFlE4) (Potencialização do Amazon EC2 de última geração: aprofundamento no sistema Nitro) 
+  [How to choose compute option for startups](https://aws.amazon.com/startups/start-building/how-to-choose-compute-option/) (Como escolher uma opção de computação para startups) 
+  [Optimize performance and cost for your AWS compute (CMP323-R1)](https://www.youtube.com/watch?v=zt6jYJLK8sg) (Otimizar o desempenho e os custos da computação da AWS (CMP323-R1)) 

 **Exemplos relacionados:** 
+  [Rightsizing with Compute Optimizer and Memory utilization enabled](https://www.wellarchitectedlabs.com/cost/200_labs/200_aws_resource_optimization/5_ec2_computer_opt/) (Dimensionamento correto com o Compute Optimizer e utilização da memória ativada) 
+  [Código para demonstração do AWS Compute Optimizer](https://github.com/awslabs/ec2-spot-labs/tree/master/aws-compute-optimizer) 

# PERF02-BP05 Usar a elasticidade disponível dos recursos
<a name="perf_select_compute_elasticity"></a>

A nuvem fornece a flexibilidade de expandir e reduzir os recursos dinamicamente por meio de diversos mecanismos para atender a mudanças na demanda. Ao combinar essa elasticidade com as métricas relacionadas à computação, uma workload pode responder automaticamente às mudanças para usar apenas os recursos necessários.

 **Antipadrões comuns:** 
+  Você provisiona em excesso para cobrir possíveis picos. 
+  Você reage a alarmes aumentando a capacidade manualmente. 
+  Você aumenta a capacidade sem considerar o tempo de provisionamento. 
+  Você deixa a capacidade aumentada após um evento de escalabilidade, em vez de reduzir novamente. 
+  Você monitora métricas que não refletem diretamente os verdadeiros requisitos das workloads. 

 **Benefícios do estabelecimento dessa prática recomendada:** a demanda pode ser fixa, variável, seguir um padrão ou apresentar picos. Combinar a oferta com a demanda oferece o menor custo para uma workload. Monitorar, testar e configurar a elasticidade da workload vai otimizar o desempenho, economizar dinheiro e melhorar a confiabilidade à medida que as demandas de uso mudarem. Embora uma abordagem manual seja possível em relação a isso, seria impraticável em escalas maiores. Uma abordagem automática e baseada em métricas garante que os recursos atendam às demandas em qualquer momento. 

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

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

A automatização baseada em métricas deve ser usada para aproveitar a vantagem da elasticidade com o objetivo de que o suprimento dos recursos que você tem corresponda à demanda dos recursos que a workload exige. Por exemplo, é possível usar [métricas do Amazon CloudWatch para monitorar os recursos](https://aws.amazon.com/startups/start-building/how-to-monitor-resources/) ou usar métricas do Amazon CloudWatch para os grupos do Auto Scaling.

 Combinada com as métricas relacionadas à computação, uma workload pode responder automaticamente a mudanças e utilizar um conjunto ideal de recursos para atingir sua meta. Você também deve planejar o tempo de provisionamento e possíveis falhas nos recursos. 

 Instâncias, contêineres e funções oferecem mecanismos para elasticidade, seja como um recurso do serviço, na forma de [Application Auto Scaling](https://aws.amazon.com/autoscaling/) ou em combinação com o [Amazon EC2 Auto Scaling](https://docs.aws.amazon.com/autoscaling/ec2/userguide/what-is-amazon-ec2-auto-scaling.html). Use a elasticidade em sua arquitetura para garantir que haja capacidade suficiente para atender aos requisitos de desempenho em uma ampla variedade de escalas de uso. 

 Valide as métricas para aumentar ou reduzir recursos elásticos em relação ao tipo de workload que está sendo implantada. Como exemplo, se você estiver implantando uma aplicação de transcodificação de vídeo, espera-se que a utilização da CPU seja de 100%, e essa não deve ser sua métrica principal. Como alternativa, você pode medir em relação ao comprimento da fila de trabalhos de transcodificação aguardando para escalar seus tipos de instância. 

 As implantações da workload precisam lidar com eventos de aumento e redução vertical da escala. Reduzir os componentes da carga de trabalho com segurança é tão essencial quanto aumentar a escala de recursos quando a demanda exige. 

 Crie cenários de teste para eventos de escalabilidade a fim de garantir que a workload se comporte conforme o esperado. 

 **Etapas da implementação** 
+  Utilize dados históricos para analisar as demandas de recursos da workload ao longo do tempo. Faça perguntas específicas, como: 
  +  A workload está estável e aumentando ao longo do tempo em uma taxa conhecida? 
  +  A workload aumenta e diminui em padrões sazonais e repetíveis? 
  +  A workload apresenta picos? Os picos podem ser antecipados ou previstos? 
+  Utilize serviços de monitoramento e dados históricos o máximo possível. 
+  A marcação de recursos pode ajudar com o monitoramento. Ao usar tags, consulte as [práticas recomendadas de marcação](https://docs.aws.amazon.com/whitepapers/latest/tagging-best-practices/tagging-best-practices.html). Além disso, [as tags podem ajudar a gerenciar, identificar e organizar recursos](https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html). 
+  Com a AWS, é possível usar várias abordagens diferentes para corresponder o suprimento com a demanda. As práticas recomendadas do pilar de otimização de custos ([de COST09-BP01 até COST09-03](https://docs.aws.amazon.com/wellarchitected/latest/cost-optimization-pillar/manage-demand-and-supply-resources.html)) descrevem como usar as seguintes abordagens de custos: 
  + [ COST09-BP01 Realizar uma análise sobre a demanda da workload ](https://docs.aws.amazon.com/wellarchitected/latest/cost-optimization-pillar/cost_manage_demand_resources_cost_analysis.html)
  + [ COST09-BP02 Implementar um buffer ou controle de utilização para gerenciar a demanda ](https://docs.aws.amazon.com/wellarchitected/latest/cost-optimization-pillar/cost_manage_demand_resources_buffer_throttle.html)
  + [COST09-BP03 Fornecer recursos dinamicamente](https://docs.aws.amazon.com/wellarchitected/latest/cost-optimization-pillar/cost_manage_demand_resources_dynamic.html)
+  Crie cenários de teste para eventos de redução da escala verticalmente a fim de garantir que a workload se comporte conforme o esperado. 
+  A maior parte das instâncias que não são de produção deve ser interrompida quando não estiver em uso. 
+  Para as necessidades de armazenamento ao usar o Amazon Elastic Block Store (Amazon EBS), aproveite a [elasticidade baseada em volume](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-modify-volume.html). 
+  Para o [Amazon Elastic Compute Cloud (Amazon EC2)](https://aws.amazon.com/ec2/), considere usar [grupos do Auto Scaling](https://docs.aws.amazon.com/autoscaling/ec2/userguide/auto-scaling-groups.html), o que permite otimizar a performance e o custo, aumentando automaticamente o número de instâncias de computação durante picos de demanda e diminuindo a capacidade quando a demanda é reduzida. 

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

 **Práticas recomendadas relacionadas:** 
+  [PERF02-BP03 Coletar métricas relacionadas à computação](perf_select_compute_collect_metrics.md) 
+  [PERF02-BP04 Determinar a configuração necessária com o dimensionamento correto](perf_select_compute_right_sizing.md) 
+  [PERF02-BP06 Avaliar continuamente as necessidades de computação com base em métricas](perf_select_compute_use_metrics.md) 

 **Documentos relacionados:** 
+  [Cloud Compute with AWS](https://aws.amazon.com/products/compute/) (Computação em nuvem com a AWS) 
+  [Tipos de instância do Amazon EC2](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html) 
+  [Contêineres do Amazon ECS: instâncias de contêiner do Amazon ECS](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ECS_instances.html) 
+  [Contêineres do Amazon EKS: nós de processamento do Amazon EKS](https://docs.aws.amazon.com/eks/latest/userguide/worker.html) 
+  [Funções: configuração de função do Lambda](https://docs.aws.amazon.com/lambda/latest/dg/best-practices.html#function-configuration) 

 **Vídeos relacionados:** 
+  [Amazon EC2 foundations (CMP211-R2)](https://www.youtube.com/watch?v=kMMybKqC2Y0) (Fundamentos do Amazon EC2 (CMP211-R2)) 
+  [Better, faster, cheaper compute: Cost-optimizing Amazon EC2 (CMP202-R1)](https://www.youtube.com/watch?v=_dvh4P2FVbw) (Computação melhor, mais rápida e mais barata: otimização de custos com o Amazon EC2) 
+  [Deliver high performance ML inference with AWS Inferentia (CMP324-R1)](https://www.youtube.com/watch?v=17r1EapAxpk) (Entregar inferência de ML de alto desempenho com o AWS Inferentia (CMP324-R1)) 
+  [Optimize performance and cost for your AWS compute (CMP323-R1)](https://www.youtube.com/watch?v=zt6jYJLK8sg) (Otimizar o desempenho e os custos da computação da AWS (CMP323-R1)) 
+  [Powering next-gen Amazon EC2: Deep dive into the Nitro system](https://www.youtube.com/watch?v=rUY-00yFlE4) (Potencialização do Amazon EC2 de última geração: aprofundamento no sistema Nitro) 

 **Exemplos relacionados:** 
+  [Exemplos de grupos do Amazon EC2 Auto Scaling](https://github.com/aws-samples/amazon-ec2-auto-scaling-group-examples) 
+  [Tutoriais do Amazon EFS](https://github.com/aws-samples/amazon-efs-tutorial) 

# PERF02-BP06 Avaliar continuamente as necessidades de computação com base em métricas
<a name="perf_select_compute_use_metrics"></a>

Use uma abordagem orientada por dados para avaliar e otimizar continuamente os recursos de computação para a workload ao longo do tempo.

 **Resultado desejado:** use as métricas no nível do sistema para identificar o comportamento e os requisitos da workload ao longo do tempo. Avalie as demandas da workload com relação aos recursos disponíveis com base nos dados coletados e faça alterações no ambiente de computação para corresponder melhor ao perfil da workload. Por exemplo, pode-se observar que, ao longo do tempo, uma workload consome mais memória do que inicialmente especificado; assim, a adoção de uma família ou tamanho de instância diferente pode melhorar tanto o desempenho quanto a eficiência. 

 **Antipadrões comuns:** 
+  Monitorar as métricas no nível do sistema para obter informações da workload e não reavaliar as necessidades de computação. 
+  Arquitetar as necessidades de computação para os requisitos de pico da workload. 
+  Superdimensionar a solução de computação existente para atender aos requisitos de escalabilidade ou de desempenho, quando passar para uma solução de computação alternativa corresponderia de forma mais eficiente às características da workload. 

 **Benefícios do estabelecimento dessa prática recomendada:** recursos de computação otimizados com base em dados reais e o equilíbrio desejado de custo e desempenho. 

 **Nível de exposição a riscos quando esta prática recomendada não é estabelecida:** baixo 

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

Use uma abordagem orientada por dados para otimizar os recursos de computação com base no comportamento observado da workload. Para obter o máximo desempenho e eficiência, use os dados coletados ao longo do tempo da workload para ajustar e otimizar os recursos continuamente. Analise as tendências no uso dos recursos atuais da sua carga de trabalho e determine em que você pode fazer alterações para atender melhor às necessidades da sua carga de trabalho. Quando os recursos são comprometidos em excesso, o desempenho do sistema é prejudicado e quando os recursos não são usados adequadamente, o sistema opera de forma menos eficiente e com um custo maior. 

 Para otimizar a performance e a utilização de recursos, você precisa de uma visão operacional unificada, dados granulares em tempo real e uma referência histórica. Você pode criar painéis automáticos para visualizar esses dados e obter informações operacionais e de utilização. 

 **Etapas da implementação** 

1.  Colete métricas relacionadas à computação ao longo do tempo. 

1.  Compare as métricas da workload com relação aos recursos disponíveis na solução de computação selecionada. 

1.  Determine as mudanças de configuração exigidas dimensionando corretamente a solução existente ou avaliando soluções de computação alternativas. 

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

 **Práticas recomendadas relacionadas:** 
+  [PERF02-BP01 Avaliar as opções de computação disponíveis](perf_select_compute_evaluate_options.md) 
+  [PERF02-BP02 Compreender as opções de configuração de computação disponíveis](perf_select_compute_config_options.md) 
+  [PERF02-BP03 Coletar métricas relacionadas à computação](perf_select_compute_collect_metrics.md) 
+  [PERF02-BP04 Determinar a configuração necessária com o dimensionamento correto](perf_select_compute_right_sizing.md) 

 **Documentos relacionados:** 
+  [Cloud Compute with AWS ](https://aws.amazon.com/products/compute/?ref=wellarchitected)(Computação em nuvem com a AWS) 
+  [AWS Compute Optimizer](https://aws.amazon.com/compute-optimizer/) 
+  [Tipos de instância do EC2](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html) 
+  [Contêineres do Amazon ECS: instâncias de contêiner do Amazon ECS](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ECS_instances.html) 
+  [Contêineres do Amazon EKS: nós de processamento do Amazon EKS](https://docs.aws.amazon.com/eks/latest/userguide/worker.html) 
+ [ Melhores práticas para trabalhar com funções do AWS Lambda](https://docs.aws.amazon.com/lambda/latest/dg/best-practices.html#function-configuration)

 **Vídeos relacionados:** 
+  [Amazon EC2 foundations (CMP211-R2)](https://www.youtube.com/watch?v=kMMybKqC2Y0) (Fundamentos do Amazon EC2 (CMP211-R2)) 
+  [Better, faster, cheaper compute: Cost-optimizing Amazon EC2 (CMP202-R1)](https://www.youtube.com/watch?v=_dvh4P2FVbw) (Computação melhor, mais rápida e mais barata: otimização de custos com o Amazon EC2) 
+  [Deliver high performance ML inference with AWS Inferentia (CMP324-R1)](https://www.youtube.com/watch?v=17r1EapAxpk) (Entregar inferência de ML de alto desempenho com o AWS Inferentia (CMP324-R1)) 
+  [Optimize performance and cost for your AWS compute (CMP323-R1)](https://www.youtube.com/watch?v=zt6jYJLK8sg) (Otimizar o desempenho e os custos da computação da AWS (CMP323-R1)) 
+  [Powering next-gen Amazon EC2: Deep dive into the Nitro system](https://www.youtube.com/watch?v=rUY-00yFlE4) (Potencialização do Amazon EC2 de última geração: aprofundamento no sistema Nitro) 
+ [ Selecting and optimizing Amazon EC2 instances ](https://www.youtube.com/watch?v=Vz0HZ6hlpgM)(Selecionar e otimizar instâncias do Amazon EC2)

 **Exemplos relacionados:** 
+  [Rightsizing with Compute Optimizer and Memory utilization enabled](https://www.wellarchitectedlabs.com/cost/200_labs/200_aws_resource_optimization/5_ec2_computer_opt/) (Dimensionamento correto com o Compute Optimizer e utilização da memória ativada) 
+  [Código para demonstração do AWS Compute Optimizer](https://github.com/awslabs/ec2-spot-labs/tree/master/aws-compute-optimizer) 

# PERF 3  Como você seleciona sua solução de armazenamento?
<a name="perf-03"></a>

 A solução de armazenamento ideal para um sistema varia conforme o tipo de método de acesso (bloco, arquivo ou objeto), os padrões de acesso (aleatório ou sequencial), o rendimento necessário, a frequência de acesso (online, offline, arquivamento), a frequência de atualização (WORM, dinâmica) e as restrições de disponibilidade e durabilidade. Os sistemas Well-Architected usam várias soluções de armazenamento e habilitam diferentes recursos para melhorar a performance e usar os recursos de modo eficiente. 

**Topics**
+ [PERF03-BP01 Compreender as características e os requisitos de armazenamento](perf_right_storage_solution_understand_char.md)
+ [PERF03-BP02 Avaliar as opções de configuração disponíveis](perf_right_storage_solution_evaluated_options.md)
+ [PERF03-BP03 Tomar decisões com base em padrões de acesso e métricas](perf_right_storage_solution_optimize_patterns.md)

# PERF03-BP01 Compreender as características e os requisitos de armazenamento
<a name="perf_right_storage_solution_understand_char"></a>

 Identifique e documente as necessidades de armazenamento de workloads e defina as características de armazenamento de cada local. Exemplos de características de armazenamento incluem: acesso compartilhável, tamanho de arquivo, taxa de crescimento, throughput, IOPS, latência, padrões de acesso e persistência dos dados. Use essas características para avaliar se os serviços de armazenamento de blocos, arquivos, objetos ou instâncias são a solução mais eficiente para suas necessidades de armazenamento. 

 **Resultado desejado:** identifique e documente os requisitos para cada armazenamento e avalie as soluções de armazenamento disponíveis. Com base nas principais características de armazenamento, sua equipe vai entender como os serviços de armazenamento selecionados vão beneficiar o desempenho de sua workload. Os principais critérios incluem os padrões de acesso aos dados, a taxa de crescimento, as necessidades de escalabilidade e os requisitos de latência. 

 **Antipadrões comuns:** 
+  Você só usa um tipo de armazenamento, como o Amazon Elastic Block Store (Amazon EBS), para todas as workloads. 
+  Você pressupõe que todas as cargas de trabalho têm requisitos semelhantes de performance de acesso ao armazenamento. 

 **Benefícios do estabelecimento desta prática recomendada:** selecionar a solução de armazenamento com base nas características identificadas e necessárias vai ajudar você a melhorar a performance de suas workloads, reduzir os custos e diminuir os esforços operacionais para manter a workload. A performance de sua workload vai se beneficiar da solução, da configuração e do local do serviço de armazenamento. 

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

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

 Identifique as métricas de performance de armazenamento mais importantes da sua carga de trabalho e implemente melhorias como parte de uma abordagem impulsionada por dados, usando testes comparativos ou testes de carga. Use esses dados para identificar em que ponto sua solução de armazenamento é restrita e examinar as opções de configuração que possam melhorar a solução. Determine a taxa de crescimento esperada para sua carga de trabalho e escolha uma solução de armazenamento que atenda a essas taxas. Pesquise as ofertas de armazenamento da AWS para determinar a solução de armazenamento correta para as necessidades de sua workload. O provisionamento de soluções de armazenamento na AWS aumenta a oportunidade para você testar ofertas de armazenamento e determinar se são adequadas para as necessidades de sua workload. 


| Serviço da AWS | Características principais | Casos de uso comum | 
| --- | --- | --- | 
| Amazon S3 |  99,999999999% de durabilidade, crescimento ilimitado, acessível de qualquer lugar, vários modelos de custo baseados em acesso e resiliência.  |  Dados de aplicações nativas de nuvem, arquivamento de dados, backups, análises, data lakes, hospedagem de site estático, dados de IoT.   | 
| Amazon Glacier |  Latência de segundos a horas, crescimento ilimitado, menor custo, armazenamento de longo prazo.  |  Arquivamento de dados, arquivos de mídia, retenção de backup de longo prazo.  | 
| Amazon EBS | O tamanho do armazenamento requer gerenciamento e monitoramento, baixa latência, armazenamento persistente, 99,8% a 99,9% de durabilidade, a maioria dos tipos de volume só podem ser acessados de uma instância do EC2. |  Aplicações COTS, aplicações com uso intenso de E/S, bancos de dados relacionais e NoSQL, backup e recuperação.  | 
| Armazenamento de instâncias do EC2 |  Tamanho de armazenamento predeterminado, menor latência, sem persistência, acessível somente de uma instância do EC2.  |  Aplicações COTS, aplicações com uso intenso de E/S, datastore na memória.  | 
| Amazon EFS |  99,999999999% de durabilidade, crescimento ilimitado, acessível de vários serviços de computação.  |  Aplicações modernas compartilhando arquivos entre vários serviços de computação, armazenamento de arquivos para dimensionamento de sistemas de gerenciamento de conteúdo.  | 
| Amazon FSx |  Compatível com quatro sistemas de arquivos (NetApp, OpenZFS, Windows File Server e Amazon FSx for Lustre), o armazenamento disponível varia de acordo com o sistema de arquivos, acessível de vários serviços de computação.  |  Workloads nativas de nuvem, expansão na nuvem privada, workloads migradas que exigem um sistema de arquivos específico, VMC, sistemas de ERP, backups e armazenamento de arquivos on-premises.   | 
| Família Snow |  Dispositivos portáteis, criptografia de 256 bits, endpoint NFS, computação integrada, TBs de armazenamento.  |  Migração de dados para a nuvem, armazenamento e computação em condições on-premises extremas, recuperação de desastres, coleta de dados remota.  | 
| AWS Storage Gateway |  Oferece acesso on-premises de baixa latência ao armazenamento com backup na nuvem, cache on-premises totalmente gerenciado.   |  Migrações de dados on-premises para a nuvem, preenchimento de data lakes na nuvem usando origens on-premises, compartilhamento de dados modernizado.  | 

 **Etapas da implementação:** 

1. use testes de carga ou benchmarking para coletar as principais características de suas necessidades de armazenamento. As principais características incluem: 

   1. Compartilhável (quais componentes acessam esse armazenamento) 

   1. Taxa de crescimento 

   1. Taxa de transferência 

   1. Latência 

   1. Tamanho de E/S 

   1. Durabilidade 

   1. Padrões de acesso (leituras vs. gravações, frequência, com picos ou consistente) 

1. Identifique o tipo de solução de armazenamento compatível com as características do seu armazenamento. 

   1. [Amazon S3](https://aws.amazon.com/s3/) é um serviço de armazenamento de objetos com escalabilidade ilimitada, alta disponibilidade e várias opções de acessibilidade. A transferência e o acesso a objetos dentro e fora do Amazon S3 podem usar um serviço, como [Aceleração de Transferências](https://aws.amazon.com/s3/transfer-acceleration/) ou [Pontos de Acesso](https://aws.amazon.com/s3/features/access-points/) , para oferecer suporte ao seu local, necessidades de segurança e padrões de acesso. Use a ferramenta de recomendações do [diretrizes de performance do Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/optimizing-performance-guidelines.html) para ajudar você a otimizar sua configuração do Amazon S3 e atender às necessidades de performance da workload. 

   1. [Amazon Glacier](https://aws.amazon.com/s3/storage-classes/glacier/) é uma classe de armazenamento do Amazon S3 desenvolvida para arquivamento de dados. Você pode escolher entre três soluções de arquivamento com acesso que varia de milissegundos até 5 a 12 horas com diversas opções de custo e segurança. O Amazon Glacier pode ajudar você a cumprir os requisitos de performance ao implementar um ciclo de vida de dados que ofereça suporte aos seus requisitos de negócios e características de dados. 

   1. [Amazon Elastic Block Store (Amazon EBS)](https://aws.amazon.com/ebs/) é um serviço de armazenamento de blocos de alta performance projetado para o Amazon Elastic Compute Cloud (Amazon EC2). Você pode escolher entre soluções [baseadas em SSD ou HDD](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-volume-types.html) com características diferentes que priorizam [IOPS](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/provisioned-iops.html) ou [throughput](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/hdd-vols.html). Os volumes do EBS são adequados para workloads de alta performance, armazenamento primário para sistemas de arquivos, bancos de dados ou aplicações que só podem acessar sistemas de estágio associado. 

   1. [Armazenamento de instâncias do Amazon EC2](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/InstanceStorage.html) é semelhante ao Amazon EBS já que se associa a uma instância do Amazon EC2, mas o armazenamento de instância é apenas um armazenamento temporário que, idealmente, deve ser usado como buffer, cache ou outro conteúdo temporário. Não é possível desassociar um armazenamento de instância e todos os dados serão perdidos se a instância for encerrada. Armazenamentos de instâncias podem ser usados para casos de uso de alta performance de E/S e baixa latência em que os dados não precisam persistir. 

   1. [Amazon Elastic File System (Amazon EFS)](https://aws.amazon.com/efs/) é um sistema de arquivos montável que pode ser acessado por diversos tipos de soluções de computação. O Amazon EFS aumenta e reduz automaticamente o armazenamento e sua performance é otimizada para oferecer latências baixas de maneira consistente. O EFS tem [dois modos de configuração de performance](https://docs.aws.amazon.com/efs/latest/ug/performance.html): Propósito geral e E/S Máx. Propósito geral tem latência de leitura inferior a milissegundo e latência de gravação que nunca chega a 10 milissegundos. O recurso E/S Máx. oferece suporte a milhares de instâncias de computação que exigem um sistema de arquivos compartilhado. O Amazon EFS oferece suporte a [dois modos de throughput](https://docs.aws.amazon.com/efs/latest/ug/managing-throughput.html): expansão e provisionada. Uma workload que tem um padrão de acesso com picos vai se beneficiar do modo de throughput de expansão, enquanto uma workload consistentemente alta tem melhor performance com o modo de throughput provisionada. 

   1. [Amazon FSx](https://aws.amazon.com/fsx/) se baseia nas soluções de computação mais recentes da AWS para oferecer suporte a quatro sistemas de arquivos comumente usados: NetApp ONTAP, OpenZFS, Windows File Server e Lustre. A [latência, throughput e IOPS](https://aws.amazon.com/fsx/when-to-choose-fsx/) do Amazon FSx variam de acordo com o sistema de arquivos e devem ser consideradas ao selecionar o sistema de arquivos certo para as necessidades de sua workload. 

   1. [AWS Snow Family](https://aws.amazon.com/snow/) consiste em dispositivos de armazenamento e computação que oferecem suporte à migração de dados online e offline para a nuvem, além de armazenamento de dados e computação on-premises. Os dispositivos AWS Snow oferecem suporte à coleta de grandes quantidades de dados on-premises, processamento desses dados e movimentação desses dados para a nuvem. Há diversas [práticas recomendadas e documentadas sobre performance](https://docs.aws.amazon.com/snowball/latest/developer-guide/performance.html) no que se refere a número de arquivos, tamanhos de arquivos e compressão. 

   1. [AWS Storage Gateway](https://aws.amazon.com/storagegateway/) oferece a aplicações on-premises acesso ao armazenamento baseado em nuvem. O AWS Storage Gateway é compatível com vários serviços de armazenamento em nuvem, incluindo Amazon S3, Amazon Glacier, Amazon FSx e Amazon EBS. Ele oferece suporte a diversos protocolos, como iSCSI, SMB e NFS. Oferece performance de baixa latência ao armazenar em cache os dados acessados com frequência on-premises e só envia dados alterados e comprimidos à AWS. 

1. Depois de experimentar a nova solução de armazenamento e identificar a configuração ideal, planeje a migração e valide as métricas de performance. Esse processo é contínuo e deve ser reavaliado quando houver mudança em características importantes ou quando os serviços e as opções disponíveis mudarem. 

 **Nível de esforço do plano de implementação: **Se uma workload estiver sendo movida de uma solução de armazenamento para outra, poderá haver um nível *moderado* de esforço envolvido na refatoração da aplicação.   

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

 **Documentos relacionados:** 
+  [Tipos de volume do Amazon EBS](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSVolumeTypes.html) 
+  [Armazenamento do Amazon EC2](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Storage.html) 
+  [Amazon EFS: performance do Amazon EFS](https://docs.aws.amazon.com/efs/latest/ug/performance.html) 
+  [Performance do Amazon FSx para Lustre](https://docs.aws.amazon.com/fsx/latest/LustreGuide/performance.html) 
+  [Performance do Amazon FSx for Windows File Server](https://docs.aws.amazon.com/fsx/latest/WindowsGuide/performance.html) 
+ [Performance do Amazon FSx for NetApp ONTAP](https://docs.aws.amazon.com/fsx/latest/ONTAPGuide/performance.html)
+ [Performance do Amazon FSx for OpenZFS](https://docs.aws.amazon.com/fsx/latest/OpenZFSGuide/performance.html)
+  [Amazon Glacier: documentação do Amazon Glacier](https://docs.aws.amazon.com/amazonglacier/latest/dev/introduction.html) 
+  [Amazon S3: considerações sobre performance e taxa de solicitação](https://docs.aws.amazon.com/AmazonS3/latest/dev/request-rate-perf-considerations.html) 
+  [Armazenamento na nuvem com a AWS](https://aws.amazon.com/products/storage/) 
+ [AWS Snow Family](https://aws.amazon.com/snow/#Feature_comparison)
+  [Características de E/S do EBS](https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/ebs-io-characteristics.html) 

 **Vídeos relacionados:** 
+  [Deep dive on Amazon EBS (STG303-R1)](https://www.youtube.com/watch?v=wsMWANWNoqQ) 
+  [Optimize your storage performance with Amazon S3 (STG343)](https://www.youtube.com/watch?v=54AhwfME6wI) 

 **Exemplos relacionados:** 
+  [Driver CSI do Amazon EFS](https://github.com/kubernetes-sigs/aws-efs-csi-driver) 
+  [Driver CSI do Amazon EBS](https://github.com/kubernetes-sigs/aws-ebs-csi-driver) 
+  [Utilitários do Amazon EFS](https://github.com/aws/efs-utils) 
+  [Escalabilidade automática do Amazon EBS](https://github.com/awslabs/amazon-ebs-autoscale) 
+  [Exemplos do Amazon S3](https://docs.aws.amazon.com/sdk-for-javascript/v2/developer-guide/s3-examples.html) 
+ [Driver CSI (Interface de armazenamento de contêiner) do Amazon FSx for Lustre](https://github.com/kubernetes-sigs/aws-fsx-csi-driver)

# PERF03-BP02 Avaliar as opções de configuração disponíveis
<a name="perf_right_storage_solution_evaluated_options"></a>

 Avalie as diversas características e opções de configuração e como se relacionam ao armazenamento. Entenda onde e como usar IOPS provisionadas, SSDs, armazenamento magnético, armazenamento de objeto, armazenamento em repositório ou armazenamento temporário para otimizar o espaço de armazenamento e a performance para sua carga de trabalho. 

 [Amazon EBS](https://aws.amazon.com/ebs) disponibiliza várias opções que permitem otimizar a performance do armazenamento e o custo para a sua carga de trabalho. Essas opções estão divididas em duas categorias principais: armazenamento baseado em SSD para cargas de trabalho transacionais, como bancos de dados e volumes de inicialização (a performance depende principalmente de IOPS), e armazenamento baseado em HDD para cargas de trabalho com uso intenso de throughput, como MapReduce e processamento de logs (a performance depende principalmente de MB/s). 

 Volumes baseados em SSD incluem SSDs com a mais alta performance de IOPS provisionadas para workloads transacionais sensíveis à latência e para SSDs de uso geral, que equilibram preço e performance para uma ampla variedade de dados transacionais. 

 [A aceleração de transferência do Amazon S3](https://aws.amazon.com/s3/transfer-acceleration/) permite a transferência rápida de arquivos em longas distâncias entre o cliente e o seu bucket do S3. A aceleração de transferência utiliza pontos de presença globalmente distribuídos do Amazon CloudFront para rotear dados por um caminho de rede otimizado. Para uma carga de trabalho em um bucket do S3 com muitas solicitações GET, use o Amazon S3 com o CloudFront. Ao fazer upload de arquivos grandes, use uploads em várias partes, carregando-as de uma só vez para ajudar a maximizar a taxa de transferência de rede. 

 [O Amazon Elastic File System (Amazon EFS)](https://aws.amazon.com/efs/) fornece um sistema elástico de arquivos NFS simples, escalável e totalmente gerenciado para uso com serviços da Nuvem AWS e recursos on-premises. Para compatibilidade com uma grande variedade de workloads de armazenamento na nuvem, o Amazon EFS oferece dois modos de performance: o modo de performance de uso geral e o modo de performance máxima de E/S. Também há dois modos de throughput a escolher para o sistema de arquivos: throughput com expansão e throughput provisionado. Para determinar quais configurações usar para sua carga de trabalho, consulte o [Guia do usuário do Amazon EFS](https://docs.aws.amazon.com/efs/latest/ug/performance.html). 

 [Amazon FSx](https://aws.amazon.com/fsx/) fornece quatro sistemas de arquivos para escolher: [o Amazon FSx for Windows File Server](https://aws.amazon.com/fsx/windows/) para workloads empresariais. [O Amazon FSx for Lustre](https://aws.amazon.com/fsx/lustre/) para workloads de alta performance. [O Amazon FSx for NetApp ONTAP](https://docs.aws.amazon.com/fsx/latest/ONTAPGuide/index.html) para o sistema de arquivos ONTAP popular para NetApps e [o Amazon FSx for OpenZFS](https://docs.aws.amazon.com/fsx/latest/OpenZFSGuide/what-is-fsx.html) para servidores de arquivos baseados em Linux. O FSx é baseado em SSD e é projetado para fornecer performance rápida, previsível, dimensionável e consistente. O sistema de arquivos do Amazon FSx fornece altas velocidades de leitura e gravação sustentáveis e acesso consistente a dados de baixa latência. Você pode escolher o nível de throughput necessário para atender às necessidades de sua carga de trabalho. 

 **Antipadrões comuns:** 
+  Você só usa um tipo de armazenamento, como o Amazon EBS, para todas as workloads. 
+  Você usa as IOPS provisionadas para todas as workloads sem testes reais em todos os níveis de armazenamento. 
+  Você pressupõe que todas as cargas de trabalho têm requisitos semelhantes de performance de acesso ao armazenamento. 

 **Benefícios do estabelecimento desta prática recomendada:** Avaliar todas as opções de serviço de armazenamento pode reduzir o custo da infraestrutura e o esforço necessário para manter suas cargas de trabalho. Isso pode acelerar potencialmente seu tempo de entrada no mercado para a implantação de novos serviços e recursos. 

 **Nível de exposição a riscos quando esta prática recomendada não for estabelecida:** Médio 

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

 Determinar as características de armazenamento: ao avaliar a solução de armazenamento, determine as características de armazenamento de que você precisa, como a habilidade de compartilhar, o tamanho dos arquivos, o tamanho do cache, a latência, o throughput e a persistência dos dados. Corresponda os requisitos ao serviço da AWS mais adequado às suas necessidades. 

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

 **Documentos relacionados:** 
+  [Armazenamento na nuvem com a AWS](https://aws.amazon.com/products/storage/?ref=wellarchitected) 
+  [Tipos de volume do Amazon EBS](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSVolumeTypes.html) 
+  [Armazenamento do Amazon EC2](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Storage.html) 
+  [Amazon EFS: performance do Amazon EFS](https://docs.aws.amazon.com/efs/latest/ug/performance.html) 
+  [Performance do Amazon FSx for Lustre](https://docs.aws.amazon.com/fsx/latest/LustreGuide/performance.html) 
+  [Performance do Amazon FSx for Windows File Server](https://docs.aws.amazon.com/fsx/latest/WindowsGuide/performance.html) 
+  [Amazon Glacier: documentação do Amazon Glacier](https://docs.aws.amazon.com/amazonglacier/latest/dev/introduction.html) 
+  [Amazon S3: considerações sobre performance e taxa de solicitações](https://docs.aws.amazon.com/AmazonS3/latest/dev/request-rate-perf-considerations.html) 
+  [Armazenamento na nuvem com a AWS](https://aws.amazon.com/products/storage/) 
+  [Armazenamento na nuvem com a AWS](https://aws.amazon.com/products/storage/?ref=wellarchitected) 
+  [Características de E/S do EBS](https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/ebs-io-characteristics.html) 

 **Vídeos relacionados:** 
+  [Deep dive on Amazon EBS (STG303-R1)](https://www.youtube.com/watch?v=wsMWANWNoqQ) 
+  [Optimize your storage performance with Amazon S3 (STG343)](https://www.youtube.com/watch?v=54AhwfME6wI) 

 **Exemplos relacionados:** 
+  [Amazon EFS CSI Driver (Driver CSI do Amazon EFS)](https://github.com/kubernetes-sigs/aws-efs-csi-driver) 
+  [Amazon EBS CSI Driver (Driver CSI do Amazon EBS)](https://github.com/kubernetes-sigs/aws-ebs-csi-driver) 
+  [Amazon EFS Utilities (Utilitários do EFS)](https://github.com/aws/efs-utils) 
+  [Amazon EBS Autoscale (Escalabilidade automática do Amazon EBS)](https://github.com/awslabs/amazon-ebs-autoscale) 
+  [Exemplos do Amazon S3](https://docs.aws.amazon.com/sdk-for-javascript/v2/developer-guide/s3-examples.html) 

# PERF03-BP03 Tomar decisões com base em padrões de acesso e métricas
<a name="perf_right_storage_solution_optimize_patterns"></a>

 Escolha sistemas de armazenamento com base nos padrões de acesso de sua carga de trabalho e configure-os determinando como a carga de trabalho acessa os dados. Aumente a eficiência do armazenamento escolhendo armazenamento de objetos em vez de armazenamento em bloco. Configure as opções de armazenamento escolhidas para corresponder a seus padrões de acesso a dados. 

 A maneira como você acessa os dados afeta a performance da solução de armazenamento. Selecione a solução de armazenamento mais alinhada a seus padrões de acesso ou considere a possibilidade de alterar seus padrões de acesso para alinhamento com a solução de armazenamento a fim de maximizar a performance. 

 A criação de uma matriz RAID 0 permite atingir um nível maior de performance para um sistema de arquivos em relação ao que é possível provisionar em um único volume. Avalie a possibilidade de usar RAID 0 quando a performance de E/S for mais importante que a tolerância a falhas. Por exemplo, você poderia usá-la com um banco de dados muito utilizado e no qual a replicação de dados já esteja configurada separadamente. 

 Selecione as métricas de armazenamento adequadas para sua carga de trabalho em todas as opções de armazenamento consumidas para a carga de trabalho. Ao utilizar sistemas de arquivos que usam créditos de expansão, crie alarmes para ser informado quando você estiver se aproximando dos limites desses créditos. É necessário criar painéis de armazenamento para mostrar a integridade geral do armazenamento da carga de trabalho. 

 Para sistemas de armazenamento com tamanho fixo, como o Amazon EBS ou o Amazon FSx, certifique-se de estar monitorando a quantidade de armazenamento usada em comparação com o tamanho geral do armazenamento e, se possível, crie automação para aumentar o tamanho do armazenamento ao atingir um limite 

 **Antipadrões comuns:** 
+  Você pressupõe que a performance do armazenamento seja adequada se os clientes não estiverem reclamando. 
+  Você usa apenas um nível de armazenamento, supondo que todas as cargas de trabalho se encaixem nesse nível. 

 **Benefícios do estabelecimento desta prática recomendada:** Você precisa de uma visão operacional unificada, dados granulares em tempo real e uma referência histórica para otimizar a performance e a utilização de recursos. É possível criar painéis e dados automáticos com granularidade de um segundo para executar matemática de métricas nos dados e para fornecer insights operacionais e de utilização para as suas necessidades de armazenamento. 

 **Nível de exposição a riscos quando esta prática recomendada não for estabelecida:** Baixo 

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

 Otimizar o uso do armazenamento e os padrões de acesso: escolha sistemas de armazenamento com base nos padrões de acesso de sua workload e nas características das opções de armazenamento disponíveis. Determine o melhor local para armazenar os dados que permitirão que você atenda a seus requisitos enquanto reduz a sobrecarga. Use otimizações de performance e padrões de acesso ao configurar e interagir com dados conforme as características de seu armazenamento (por exemplo, remover volumes ou particionar os dados). 

 Selecionar as métricas adequadas para as opções de armazenamento: selecione as métricas de armazenamento adequadas para a workload. Cada opção de armazenamento oferece várias métricas para acompanhar a performance da carga de trabalho ao longo do tempo. Verifique se você está realizando medições em relação a métricas de expansão de armazenamento (por exemplo, monitoramento de créditos de expansão para o Amazon EFS). Para sistemas de armazenamento de tamanho fixo, como o Amazon Elastic Block Store ou o Amazon FSx, verifique se você está monitorando a quantidade de armazenamento usada em comparação com o tamanho geral do armazenamento. Crie automação quando possível para aumentar o tamanho do armazenamento ao atingir um limite. 

 Monitorar métricas: o Amazon CloudWatch pode coletar métricas entre os recursos da sua arquitetura. Você também pode coletar e publicar métricas personalizadas para descobrir métricas de negócio ou derivadas. Use o CloudWatch ou soluções de terceiros para definir alarmes que indiquem quando os limites são violados. 

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

 **Documentos relacionados:** 
+  [Tipos de volume do Amazon EBS](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSVolumeTypes.html) 
+  [Armazenamento do Amazon EC2](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Storage.html) 
+  [Amazon EFS: performance do Amazon EFS](https://docs.aws.amazon.com/efs/latest/ug/performance.html) 
+  [Performance do Amazon FSx for Lustre](https://docs.aws.amazon.com/fsx/latest/LustreGuide/performance.html) 
+  [Performance do Amazon FSx for Windows File Server](https://docs.aws.amazon.com/fsx/latest/WindowsGuide/performance.html) 
+  [Amazon Glacier: documentação do Amazon Glacier](https://docs.aws.amazon.com/amazonglacier/latest/dev/introduction.html) 
+  [Amazon S3: considerações sobre performance e taxa de solicitações](https://docs.aws.amazon.com/AmazonS3/latest/dev/request-rate-perf-considerations.html) 
+  [Armazenamento na nuvem com a AWS](https://aws.amazon.com/products/storage/) 
+  [Características de E/S do EBS](https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/ebs-io-characteristics.html) 
+  [Monitoring and understanding Amazon EBS performance using Amazon CloudWatch (Monitoramento e compreensão da performance do Amazon EBS usando o Amazon CloudWatch)](https://aws.amazon.com/blogs/storage/valuable-tips-for-monitoring-and-understanding-amazon-ebs-performance-using-amazon-cloudwatch/) 

 **Vídeos relacionados:** 
+  [Deep dive on Amazon EBS (STG303-R1)](https://www.youtube.com/watch?v=wsMWANWNoqQ) 
+  [Optimize your storage performance with Amazon S3 (STG343)](https://www.youtube.com/watch?v=54AhwfME6wI) 

 **Exemplos relacionados:** 
+  [Amazon EFS CSI Driver (Driver CSI do Amazon EFS)](https://github.com/kubernetes-sigs/aws-efs-csi-driver) 
+  [Amazon EBS CSI Driver (Driver CSI do Amazon EBS)](https://github.com/kubernetes-sigs/aws-ebs-csi-driver) 
+  [Amazon EFS Utilities (Utilitários do EFS)](https://github.com/aws/efs-utils) 
+  [Amazon EBS Autoscale (Escalabilidade automática do Amazon EBS)](https://github.com/awslabs/amazon-ebs-autoscale) 
+  [Exemplos do Amazon S3](https://docs.aws.amazon.com/sdk-for-javascript/v2/developer-guide/s3-examples.html) 

# PERF 4  Como você seleciona sua solução de banco de dados?
<a name="perf-04"></a>

 A solução de banco de dados ideal para um sistema varia conforme os requisitos de disponibilidade, consistência, tolerância da partição, latência, durabilidade, escalabilidade e capacidade de consulta. Muitos sistemas usam soluções de banco de dados diferentes para vários subsistemas e habilitam diferentes recursos para melhorar a performance. A seleção da solução e dos recursos de banco de dados incorretos para um sistema pode levar a uma menor performance do sistema. 

**Topics**
+ [PERF04-BP01 Compreender as características dos dados](perf_right_database_solution_understand_char.md)
+ [PERF04-BP02 Avaliar as opções disponíveis](perf_right_database_solution_evaluate_options.md)
+ [PERF04-BP03 Coletar e registrar métricas de performance do banco de dados](perf_right_database_solution_collect_metrics.md)
+ [PERF04-BP04 Escolher armazenamento de dados com base nos padrões de acesso](perf_right_database_solution_access_patterns.md)
+ [PERF04-BP05 Otimizar o armazenamento de dados com base nas métricas e nos padrões de acesso](perf_right_database_solution_optimize_metrics.md)

# PERF04-BP01 Compreender as características dos dados
<a name="perf_right_database_solution_understand_char"></a>

 Escolha soluções para o gerenciamento dos seus dados que correspondam de forma ideal às características, aos padrões de acesso e aos requisitos dos conjuntos de dados de sua workload. Ao selecionar e implementar uma solução de gerenciamento de dados, verifique se as características de consultas, de escalabilidade e de armazenamento são compatíveis com os requisitos dos dados da workload. Saiba como as várias opções de bancos de dados correspondem aos seus modelos de dados e quais opções de configuração são mais adequadas para seu caso de uso.  

 A AWS fornece vários mecanismos de banco de dados, incluindo bancos de dados relacionais, de chave-valor, de documentos, na memória, de grafos, de séries temporais e de ledger. Cada solução de gerenciamento de dados tem opções e configurações disponíveis para compatibilidade com seus casos de uso e modelos de dados. Sua workload deve poder usar várias soluções de banco de dados diferentes, baseadas nas características dos dados. Ao selecionar as melhores soluções de banco de dados para um problema específico, você pode se libertar de bancos de dados monolíticos, com a abordagem de tamanho único que é restritiva, e focar no gerenciamento de dados para atender às necessidades dos seus clientes. 

 **Resultado desejado:** As características dos dados da workload são documentadas com detalhes suficientes para facilitar a seleção e a configuração de soluções de banco de dados compatíveis e para fornecer insight das possíveis alternativas. 

 **Antipadrões comuns:** 
+  Não considerar maneiras para segmentar grandes conjuntos de dados em coleções de dados menores que têm características semelhantes, o que resulta na perda das oportunidades de usar bancos de dados com propósito específico que correspondem melhor às características dos dados e do crescimento. 
+  Não identificar os padrões de acesso aos dados no início, o que resulta em retrabalho caro e complexo posteriormente. 
+  Limitar o crescimento usando estratégias de armazenamento de dados que não são dimensionáveis tão rapidamente quanto necessário. 
+  Escolher um tipo de banco de dados para todas as workloads. 
+  Fixar-se em uma única solução de banco de dados porque há experiência e conhecimento internos de um tipo específico de solução de banco de dados. 
+  Manter uma solução de banco de dados porque ela funciona bem em um ambiente on-premises. 

 **Benefícios do estabelecimento desta prática recomendada:** Familiarize-se com todas as soluções de banco de dados da AWS para poder determinar a solução de banco de dados correta para as diversas workloads. Depois de selecionar a solução de banco de dados adequada para a sua workload, você poderá experimentar rapidamente cada uma dessas ofertas de banco de dados para determinar se elas continuam atendendo às necessidades da sua workload. 

 **Nível de exposição a riscos quando esta prática recomendada não for estabelecida:** Alto 
+  A economia de custo possível pode não ser identificada. 
+  Os dados podem não estar protegidos no nível necessário. 
+  O acesso aos dados e a performance do armazenamento podem não ser ideais. 

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

 Defina as características dos dados e os padrões de acesso da workload. Analise todas as soluções de banco de dados disponíveis para identificar a solução que é compatível com as necessidades dos seus dados. Em uma determinada workload, vários bancos de dados podem ser selecionados. Avalie cada serviço ou grupo de serviços e analise-os individualmente. Se soluções alternativas possíveis de gerenciamento de dados forem identificadas para todos ou para parte dos dados, experimente com implementações alternativas que possam desvendar benefícios de custo, segurança, performance e confiabilidade. Atualize a documentação existente caso uma nova abordagem de gerenciamento de dados seja adotada. 


|  **Tipo**  |  **Serviços da AWS**  |  **Características principais**  |  **Casos de uso comuns**  | 
| --- | --- | --- | --- | 
|  Relacional  |  Amazon RDS, Amazon Aurora  |  Integridade referencial, transações ACID, esquema para gravação  |  ERP, CRM, software comercial pronto para uso  | 
|  Chave-valor  |  Amazon DynamoDB  |  Throughput alto, baixa latência, escalabilidade quase infinita  |  Carrinhos de compras (comércio eletrônico), catálogos de produtos, aplicações de chat  | 
|  Documentos  |  Amazon DocumentDB  |  Armazenar documentos JSON e consultar por qualquer atributo  |  Gerenciamento de conteúdo (CMS), perfis de clientes, aplicações móveis  | 
|  Na memória  |  Amazon ElastiCache, Amazon MemoryDB  |  Latência de microssegundos  |  Armazenamento em cache, placares de jogos  | 
|  Bancos de dados  |  Amazon Neptune  |  Dados altamente relacionais em que os relacionamentos entre os dados têm significado  |  Redes sociais, mecanismos de personalização, detecção de fraudes  | 
|  Séries temporais  |  Amazon Timestream  |  Dados em que a dimensão primária é o tempo  |  DevOps, IoT, monitoramento  | 
|  Coluna ampla  |  Amazon Keyspaces  |  Workloads do Cassandra.  |  Manutenção de equipamentos industriais, otimização de rotas  | 
|  Ledger  |  Amazon QLDB  |  Ledger de alterações imutável e verificável de forma criptográfica  |  Sistemas de registro, saúde, cadeias de suprimentos, instituições financeiras  | 

 **Etapas da implementação** 

1.  Como os dados estão estruturados? (por exemplo, não estruturados, chave-valor, semiestruturados, relacionais) 

   1.  Se os dados estiverem estruturados, considere um armazenamento de objetos, como o [Amazon S3](https://aws.amazon.com/products/storage/data-lake-storage/) , ou um banco de dados NoSQL, como o [Amazon DocumentDB.](https://aws.amazon.com/documentdb/) 

   1.  Para dados de chave-valor, considere o [DynamoDB](https://aws.amazon.com/documentdb/), [o ElastiCache for Redis](https://aws.amazon.com/elasticache/redis/) ou [o MemoryDB.](https://aws.amazon.com/memorydb/) 

   1.  Se os dados tiverem uma estrutura relacional, qual nível de integridade referencial é necessário? 

      1.  Para restrições de chave estrangeira, bancos de dados relacionais, como o [Amazon RDS](https://aws.amazon.com/rds/) e [Aurora](https://aws.amazon.com/rds/aurora/) , podem fornecer esse nível de integridade. 

      1.  Normalmente, em um modelo de dados NoSQL, você desnormalizaria os dados em um único documento ou coleção de documentos para serem recuperados em uma única solicitação e não fazendo junção entre documentos ou tabelas;  

1.  A conformidade com as ACID (atomicidade, consistência, isolamento, durabilidade) é necessária? 

   1.  Se as propriedades ACID associadas aos bancos de dados relacionais forem necessárias, considere um banco de dados relacional, como o [Amazon RDS](https://aws.amazon.com/rds/) e [o Aurora.](https://aws.amazon.com/rds/aurora/) 

1.  Qual é o modelo de consistência necessário? 

   1.  Se a sua aplicação puder tolerar consistência eventual, considere uma implementação NoSQL. Analise as outras características para ajudar a escolher qual [banco de dados NoSQL](https://aws.amazon.com/nosql/) é mais adequado. 

   1.  Se for necessária forte consistência, use leituras altamente consistentes com o [DynamoDB](https://aws.amazon.com/documentdb/) ou um banco de dados relacional, como o [Amazon RDS](https://aws.amazon.com/rds/). 

1.  Quais formatos de consulta e resultado são compatíveis? (por exemplo, SQL, CSV, Parque, Avro, JSON etc.) 

1.  Quais tipos de dados, tamanhos de campos e quantidades gerais estão presentes? (por exemplo, texto, numérico, espacial, séries temporais calculadas, binário ou blob, documento) 

1.  Como as necessidades de armazenamento serão alteradas ao longo do tempo? Como isso afeta a escalabilidade? 

   1.  Bancos de dados de tecnologia sem servidor, como o [DynamoDB](https://aws.amazon.com/documentdb/) e [Amazon Quantum Ledger Database](https://aws.amazon.com/qldb/) , escalarão dinamicamente até quase armazenamento ilimitado. 

   1.  Os bancos de dados relacionais têm limites superiores em armazenamento provisionado e devem ser particionados horizontalmente por meio de mecanismos, como fragmentação, quando atingem esses limites. 

1.  Qual é a proporção de consultas de leitura em relação a consultas de gravação? O armazenamento em cache melhoraria a performance? 

   1.  Workloads de leitura pesada podem se beneficiar de uma camada de armazenamento em cache, esse pode ser o [ElastiCache](https://aws.amazon.com/elasticache/) ou [o DAX,](https://aws.amazon.com/dynamodb/dax/) se o banco de dados for o DynamoDB. 

   1.  As leituras também podem ser descarregadas em réplicas de leitura com bancos de dados relacionais, como o [Amazon RDS](https://aws.amazon.com/rds/). 

1.  O armazenamento e a modificação (OLTP – Processamento de transações on-line) ou a recuperação e a geração de relatórios (OLAP – Processamento analítico on-line) têm uma prioridade mais alta. 

   1.  Para processamento transacional de throughput alto, considere um banco de dados NoSQL, como o DynamoDB ou o Amazon DocumentDB. 

   1.  Para consultas de análise, considere um banco de dados em colunas, como o [Amazon Redshift](https://aws.amazon.com/redshift/) , ou exporte os dados para o Amazon S3 e execute análises usando o [Athena](https://aws.amazon.com/athena/) ou [o QuickSight.](https://aws.amazon.com/quicksight/) 

1.  Qual é o grau de confidencialidade desses dados e qual nível de proteção e criptografia eles precisam? 

   1.  Todos os mecanismos do Amazon RDS e do Aurora são compatíveis com a criptografia de dados em repouso usando o AWS KMS. O Microsoft SQL Server e o Oracle também são compatíveis com a Transparent Data Encryption (TDE – Criptografia transparente de dados) ao usar o Amazon RDS. 

   1.  Para o DynamoDB, use controle de acesso refinado com o [IAM](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/access-control-overview.html) para controlar quem tem acesso a quais dados no nível principal. 

1.  Qual nível de durabilidade os dados exigem? 

   1.  O Aurora replica automaticamente os dados entre três zonas de disponibilidade em uma região, o que significa que seus dados são altamente duráveis com menos chance de perda de dados. 

   1.  O DynamoDB é automaticamente replicado entre várias zonas de disponibilidade, fornecendo alta disponibilidade e durabilidade dos dados. 

   1.  O Amazon S3 fornece 11 noves de durabilidade. Muitos serviços de banco de dados, como o Amazon RDS e o DynamoDB, são compatíveis com a exportação de dados para o Amazon S3 para retenção de longo prazo e arquivamento. 

1.  Os requisitos do [objetivo de tempo de recuperação (RTO) ou do objetivo de ponto de recuperação (RPO)](https://docs.aws.amazon.com/wellarchitected/latest/reliability-pillar/plan-for-disaster-recovery-dr.html) influenciam a solução? 

   1.  O Amazon RDS, o Aurora, o DynamoDB, o Amazon DocumentDB e o Neptune são compatíveis com a recuperação pontual e o backup e a recuperação sob demanda.  

   1.  Para requisitos de alta disponibilidade, as tabelas do DynamoDB podem ser replicadas globalmente usando o recurso [tabelas globais,](https://aws.amazon.com/dynamodb/global-tables/) e os clusters do Aurora podem ser replicados entre várias regiões usando o recurso banco de dados global. Além disso, os buckets do S3 podem ser replicados entre Regiões da AWS usando a replicação entre regiões.  

1.  Você quer se livrar de mecanismos de bancos de dados comerciais/custos de licenças? 

   1.  Considere os mecanismos de código aberto, como o PostgreSQL e o MySQL no Amazon RDS ou no Aurora 

   1.  Utilize o [AWS DMS](https://aws.amazon.com/dms/) e [o AWS SCT](https://aws.amazon.com/dms/schema-conversion-tool/) para executar migrações de mecanismos de bancos de dados comerciais para código aberto 

1.  Qual a expectativa operacional para o banco de dados? A mudança para serviços gerenciados é uma preocupação principal? 

   1.  Utilizar o Amazon RDS em vez do Amazon EC2 e o DynamoDB ou o Amazon DocumentDB em vez de um host automático de um banco de dados NoSQL pode reduzir a sobrecarga operacional. 

1.  Como o banco de dados é acessado atualmente? É acessado apenas por aplicação ou há usuários de inteligência de negócios (BI) e outras aplicações prontas para uso conectadas? 

   1.  Se você tiver dependências de ferramentas externas, poderá ser necessário manter a compatibilidade com os bancos de dados com os quais elas são compatíveis. O Amazon RDS é totalmente compatível com as diferentes versões de mecanismo aos quais oferece suporte, incluindo o Microsoft SQL Server, o Oracle, o MySQL e o PostgreSQL. 

1.  Veja a seguir uma lista de serviços dos gerenciamento de dados potenciais, e onde eles podem ser melhor utilizados: 

   1.  Bancos de dados relacionais armazenam dados com esquemas e relacionamentos predefinidos entre eles. Esses bancos de dados são projetados para oferecer suporte a transações ACID (atomicidade, consistência, isolamento, durabilidade) e manter a integridade referencial e uma forte consistência de dados. Muitas aplicações tradicionais, planejamento de recursos empresariais (ERP), gerenciamento de relacionamentos com o cliente (CRM) e comércio eletrônico usam bancos de dados relacionais para armazenar seus dados. É possível executar muitos desses mecanismos de banco de dados no Amazon EC2 ou escolher um dos serviços gerenciados pela AWS [de banco de dados](https://aws.amazon.com/products/databases/): [Amazon Aurora](https://aws.amazon.com/rds/aurora), [Amazon RDS](https://aws.amazon.com/rds)e aos [Amazon Redshift](https://aws.amazon.com/redshift). 

   1.  Bancos de dados de chave/valor são otimizados para padrões de acesso comuns, normalmente visando armazenar e recuperar grandes volumes de dados. Esses bancos de dados fornecem tempos de resposta rápidos, mesmo sob volumes extremos de solicitações simultâneas. Aplicações da web de alto tráfego, sistemas de comércio eletrônico e aplicações de jogos são os casos de uso habituais para bancos de dados de chave-valor. Na AWS, é possível utilizar o [Amazon DynamoDB](https://aws.amazon.com/dynamodb/), um banco de dados totalmente gerenciado, multirregião, multimestre e durável com recursos incorporados de segurança, backup e restauração, além de armazenamento em cache na memória para aplicações na escala da Internet. 

   1.  Os bancos de dados na memória são usados para aplicações que exigem acesso em tempo real aos dados, latência mais baixa e throughput mais alto. Ao armazenar dados diretamente na memória, esses bancos de dados fornecem latência de microssegundos às aplicações para as quais a latência de milissegundos não é suficiente. Você pode usar bancos de dados em memória para armazenamento de aplicativos em cache, gerenciamento de sessões, placares de jogos e aplicativos geoespaciais. [Amazon ElastiCache](https://aws.amazon.com/elasticache/) é um datastore na memória totalmente gerenciado, compatível com o [Redis](https://aws.amazon.com/elasticache/redis/) ou [Memcached](https://aws.amazon.com/elasticache/memcached). No caso de aplicações que também requerem durabilidade mais alta, [Amazon MemoryDB for Redis](https://aws.amazon.com/memorydb/) oferece isso em combinação com um serviço durável de banco de dados na memória para performance ultrarrápida. 

   1.  Um banco de dados de documentos é projetado para armazenar dados semiestruturados, como documentos semelhantes a JSON. Esses bancos de dados ajudam os desenvolvedores a criar e atualizar rapidamente aplicativos como gerenciamento de conteúdo, catálogos e perfis de usuário. [Amazon DocumentDB](https://aws.amazon.com/documentdb/) é um serviço totalmente gerenciado de banco de dados de documentos rápido, escalável e altamente disponível compatível com cargas de trabalho do MongoDB. 

   1.  Um armazenamento em colunas amplas é um tipo de banco de dados NoSQL. Ele usa tabelas, linhas e colunas, mas ao contrário de um banco de dados relacional, os nomes e o formato das colunas podem variar de linha para linha na mesma tabela. Normalmente, você vê um repositório de coluna ampla em aplicativos industriais de alta escala para manutenção de equipamentos, gerenciamento de frotas e otimização de rotas. [Amazon Keyspaces (para Apache Cassandra)](https://aws.amazon.com/mcs/) é um serviço escalável, gerenciado e altamente disponível de banco de dados de coluna ampla, compatível com Apache Cassandra. 

   1.  Bancos de dados gráficos são para aplicativos que precisam navegar e consultar milhões de relações entre conjuntos de dados gráficos altamente conectados com latência de milissegundos em grande escala. Muitas empresas usam bancos de dados gráficos para detecção de fraudes, redes sociais e mecanismos de recomendação. [Amazon Neptune](https://aws.amazon.com/neptune/) é serviço totalmente gerenciado, rápido e confiável de banco de dados gráfico que facilita a criação e execução de aplicações que funcionam com conjuntos de dados altamente conectados. 

   1.  Bancos de dados de séries temporais são eficientes para coletar, sintetizar e derivar insights de dados que mudam ao longo do tempo. Aplicativos de IoT, DevOps e telemetria industrial podem utilizar bancos de dados de séries temporais. [Amazon Timestream](https://aws.amazon.com/timestream/) é um serviço rápido, escalável e totalmente gerenciado de banco de dados de séries temporais para aplicativos operacionais e de IoT que facilita o armazenamento e a análise de trilhões de eventos por dia. 

   1.  Bancos de dados de livro-razão fornecem uma autoridade centralizada e confiável para manter um registro escalável, imutável e criptograficamente verificável de transações para cada aplicativo. Vemos os bancos de dados de livro-razão empregados em sistemas de registro, cadeia de suprimentos, inscrições e até mesmo transações bancárias. [Amazon Quantum Ledger Database (Amazon QLDB)](https://aws.amazon.com/qldb/) é um banco de dados ledger totalmente gerenciado que fornece um log de transações transparente, imutável e criptograficamente verificável pertencente a uma autoridade confiável central. O Amazon QLDB monitora todas as alterações de dados do aplicativo e mantém um histórico completo e verificável das alterações ao longo do tempo. 

 **Nível de esforço para o plano de implementação: **Se uma workload for movida de uma solução de banco de dados para outra, poderá haver um nível *alto* de esforço envolvido na refatoração dos dados e da aplicação.   

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

 **Documentos relacionados:** 
+  [Bancos de dados em nuvem com a AWS ](https://aws.amazon.com/products/databases/?ref=wellarchitected) 
+  [Armazenamento em cache de banco de dados da AWS ](https://aws.amazon.com/caching/database-caching/?ref=wellarchitected) 
+  [Amazon DynamoDB Accelerator ](https://aws.amazon.com/dynamodb/dax/?ref=wellarchitected) 
+  [Práticas recomendadas do Amazon Aurora ](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Aurora.BestPractices.html?ref=wellarchitected) 
+  [Performance do Amazon Redshift ](https://docs.aws.amazon.com/redshift/latest/dg/c_challenges_achieving_high_performance_queries.html?ref=wellarchitected) 
+  [10 melhores dicas de desempenho do Amazon Athena ](https://aws.amazon.com/blogs/big-data/top-10-performance-tuning-tips-for-amazon-athena/?ref=wellarchitected) 
+  [Práticas recomendadas do Amazon Redshift Spectrum ](https://aws.amazon.com/blogs/big-data/10-best-practices-for-amazon-redshift-spectrum/?ref=wellarchitected) 
+  [Melhores práticas do Amazon DynamoDB](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/BestPractices.html?ref=wellarchitected) 
+  [Escolha entre o EC2 e o Amazon RDS](https://docs.aws.amazon.com/prescriptive-guidance/latest/migration-sql-server/comparison.html) 
+  [Melhores práticas para a implementação do Amazon ElastiCache](https://docs.aws.amazon.com/AmazonElastiCache/latest/UserGuide/BestPractices.html) 

 **Vídeos relacionados:** 
+ [AWS purpose-built databases (DAT209-L) (Bancos de dados com propósito específico da AWS (DAT209-L)) ](https://www.youtube.com/watch?v=q81TVuV5u28) 
+ [Amazon Aurora storage demystified: How it all works (DAT309-R) (Armazenamento desmistificado do Amazon Aurora: Como tudo funciona (DAT309-R)) ](https://www.youtube.com/watch?v=uaQEGLKtw54) 
+ [Amazon DynamoDB deep dive: Advanced design patterns (DAT403-R1) ](https://www.youtube.com/watch?v=6yqfmXiZTlM) 

 **Exemplos relacionados:** 
+  [Optimize Data Pattern using Amazon Redshift Data Sharing (Otimizar padrão de dados usando o compartilhamento de dados do Amazon Redshift)](https://wellarchitectedlabs.com/sustainability/300_labs/300_optimize_data_pattern_using_redshift_data_sharing/) 
+  [Migrações de bancos de dados](https://github.com/aws-samples/aws-database-migration-samples) 
+  [MS SQL Server: Demonstração de replicação do AWS Database Migration Service (DMS) ](https://github.com/aws-samples/aws-dms-sql-server) 
+  [Workshop prático de modernização de bancos de dados](https://github.com/aws-samples/amazon-rds-purpose-built-workshop) 
+  [Amostras do Amazon Neptune](https://github.com/aws-samples/amazon-neptune-samples) 

# PERF04-BP02 Avaliar as opções disponíveis
<a name="perf_right_database_solution_evaluate_options"></a>

 Compreenda as opções de bancos de dados e como elas podem otimizar a performance antes de você selecionar a sua solução de gerenciamento de dados. Use testes de carga para identificar as métricas de banco de dados que são importantes para a sua workload. Ao explorar as opções de bancos de dados, considere vários aspectos, como grupos de parâmetros, opções de armazenamento, memória, computação, réplica de leitura, consistência eventual, pooling de conexão e opções de armazenamento em cache. Experimente com essas várias opções de configuração para melhorar as métricas. 

 **Resultado desejado:** Uma workload pode ter uma ou mais soluções de banco de dados usadas com base nos tipos de dados. A funcionalidade e os benefícios do banco de dados correspondem de maneira ideal as características dos dados, os padrões de acesso e os requisitos da workload. Para otimizar a performance e o custo do banco de dados, você deve avaliar os padrões de acesso aos dados para determinar as opções de banco de dados apropriadas. Avalie os tempos de consulta aceitáveis para garantir que as opções de bancos de dados atendam aos requisitos. 

 **Antipadrões comuns:** 
+  Não identificação dos padrões de acesso aos dados. 
+  Não ter ciência das opções de configuração da solução de gerenciamento de dados escolhida. 
+  Contar somente com o aumento do tamanho da instância sem examinar outras opções de configuração. 
+  Não testar as características de escalabilidade da solução escolhida. 

 

 **Benefícios do estabelecimento desta prática recomendada:** A exploração e a experimentação das opções de bancos de dados permitem que você reduza o custo da infraestrutura, melhore a performance e a escalabilidade e diminua o esforço necessário para manter suas workloads. 

 **Nível de exposição a riscos quando esta prática recomendada não é estabelecida:** Alto 
+  Precisar otimizar para um banco de dados *de tamanho único* significa fazer compromissos desnecessários. 
+  Custos mais altos como resultado da não configuração da solução de banco de dados para que corresponda aos padrões de tráfego. 
+  Podem surgir problemas operacionais por causa da escalabilidade. 
+  Os dados podem não estar protegidos no nível necessário. 

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

 Compreenda as características dos dados da sua workload para poder configurar as opções de seu banco de dados. Execute testes de carga para identificar as métricas-chave de performance e os gargalos. Use essas características e métricas para avaliar as opções do banco de dados e experimentar com diferentes configurações. 


|  Serviços da AWS  |  Amazon RDS, Amazon Aurora  |  Amazon DynamoDB  |  Amazon DocumentDB  |  Amazon ElastiCache  |  Amazon Neptune  |  Amazon Timestream  |  Amazon Keyspaces  |  Amazon QLDB  | 
| --- | --- | --- | --- | --- | --- | --- | --- | --- | 
|  Escalabilidade da computação  |  Aumente o tamanho das instâncias, as instâncias do Aurora Serverless escalam automaticamente em resposta a mudanças na carga  |  Escalabilidade automática de leitura/gravação com modo de capacidade sob demanda ou escalabilidade automática da capacidade de leitura/gravação provisionada em modo de capacidade provisionada  |  Aumentar o tamanho das instâncias  |  Aumentar o tamanho das instâncias, adicionar nós ao cluster  |  Aumentar o tamanho das instâncias  |  Escala automaticamente para ajustar a capacidade  |  Escalabilidade automática de leitura/gravação com modo de capacidade sob demanda ou escalabilidade automática da capacidade de leitura/gravação provisionada em modo de capacidade provisionada  |  Escala automaticamente para ajustar a capacidade  | 
|  Aumento da escala de leituras horizontalmente  |  Todos os mecanismos são compatíveis com réplicas de leitura. O Aurora é compatível com a escalabilidade automática de instâncias de réplicas de leitura.  |  Aumentar as unidades de capacidade de leitura provisionadas  |  Réplicas de leitura  |  Réplicas de leitura  |  Réplicas de leitura. Compatível com a escalabilidade automática de instâncias de réplicas de leitura  |  Escala automaticamente  |  Aumentar as unidades de capacidade de leitura provisionadas  |  Automaticamente aumenta a escala verticalmente para limites de simultaneidade documentados  | 
|  Aumento da escala de gravações horizontalmente  |  Aumentando o tamanho da instância, realizando gravações em lote na aplicação ou adicionando uma fila na frente do banco de dados. A escalabilidade horizontal via fragmentação em nível de aplicação entre várias instâncias  |  Aumentar as unidades de capacidade de leitura provisionadas. Garantir a chave de partição ideal para evitar o controle de utilização de gravação em nível de partição  |  Aumento do tamanho da instância primária  |  Usar o Redis em modo de cluster para distribuir gravações entre fragmentos  |  Aumentar o tamanho das instâncias  |  As solicitações de gravação podem ser limitadas durante a escalabilidade. Se você encontrar exceções de controle de utilização, continue a enviar dados no mesmo throughput (ou mais alto) para escalar automaticamente. Gravações em lote para reduzir solicitações de gravação simultâneas  |  Aumentar as unidades de capacidade de leitura provisionadas. Garantir a chave de partição ideal para evitar o controle de utilização de gravação em nível de partição  |  Automaticamente aumenta a escala verticalmente para limites de simultaneidade documentados  | 
|  Configuração do mecanismo  |  Grupos de parâmetros  |  Não aplicável  |  Grupos de parâmetros  |  Grupos de parâmetros  |  Grupos de parâmetros  |  Não aplicável  |  Não aplicável  |  Não aplicável  | 
|  Armazenamento em cache  |  Armazenamento em cache na memória, configurável por meio de grupos de parâmetros. Emparelhar com um cache dedicado, como o ElastiCache for Redis, para descarregar solicitações de itens acessados comumente  |  Cache totalmente gerenciado do DAX (DAX) disponível  |  Armazenamento em cache na memória. Opcionalmente, emparelhar com um cache dedicado, como o ElastiCache for Redis, para descarregar solicitações de itens acessados comumente  |  A função primária é o armazenamento em cache  |  Usar cache dos resultados de consultas somente leitura para armazenar o resultado em cache  |  O Timestream tem duas camadas de armazenamento, uma delas é uma camada na memória de alta performance  |  Implantar um cache dedicado separado, como o ElastiCache for Redis, para descarregar solicitações de itens acessados comumente  |  Não aplicável  | 
|  Alta disponibilidade/recuperação de desastres  |  A configuração recomendada para workloads de produção é a execução de uma instância em espera em uma segunda zona de disponibilidade, para fornecer resiliência em uma região.  Para obter resiliência entre regiões, o Aurora Global Database pode ser usado  |  Altamente disponível em uma região. As tabelas podem ser replicada entre regiões usando as tabelas globais do DynamoDB  |  Crie várias instâncias entre zonas de disponibilidade para obter disponibilidade.  Os snapshots podem ser compartilhados entre regiões, e os clusters podem ser replicados usando o DMS para fornecer replicação entre regiões/recuperação de desastres.  |  A configuração recomenda para clusters de produção é criar pelo menos um nó em uma zona de disponibilidade secundária.  É possível usar o datastore global do ElastiCache para replicar clusters entre regiões.  |  As réplicas de leitura em outas zonas de disponibilidade funcionam como destinos de failover.  Os snapshots podem ser compartilhados entre regiões, e os clusters podem ser replicados usando os streams do Neptune para replicação de dados entre dois clusters em duas regiões diferentes.  |  Altamente disponibilidade em uma região. A replicação entre regiões exige o desenvolvimento de uma aplicação personalizada usando o SDK do Timestream  |  Altamente disponível em uma região.  A replicação entre regiões exige a lógica de uma aplicação personalizada ou ferramentas de terceiros  |  Altamente disponível em uma região.  Para replicação entre regiões, exporte o conteúdo do diário do Amazon QLDB para um bucket do S3 e configure o bucket para replicação entre regiões.  | 

 

 **Etapas da implementação** 

1.  Quais opções de configuração estão disponíveis para os bancos de dados selecionados? 

   1.  Os grupos de parâmetros do Amazon RDS e do Aurora permitem ajustar as configurações em nível de mecanismo comum de bancos de dados, como a memória alocada para o cache ou o ajuste do fuso horário do banco de dados. 

   1.  Para serviços de bancos de dados provisionados, como o Amazon RDS, o Aurora, o Neptune, o Amazon DocumentDB e os implantados no Amazon EC2, é possível alterar o tipo de instância, o armazenamento provisionado e as réplicas de leitura. 

   1.  O DynamoDB permite especificar dois modos de capacidade: sob demanda e provisionado. Para levar workloads diferentes em conta, é possível alterar entre esses modos e aumentar a capacidade alocada em modo provisionado a qualquer momento. 

1.  A leitura ou a gravação da workload é pesada?  

   1.  Quais são as soluções disponíveis para descarregar leituras (réplicas de leitura, armazenamento em cache etc.)?  

      1.  Em tabelas do DynamoDB, é possível descarregar leituras usando o DAX para armazenamento em cache. 

      1.  Em bancos de dados relacionais, é possível criar um cluster do ElastiCache for Redis e configurar a aplicação para ler no cache primeiro, recorrendo ao banco de dados se o item não estiver presente. 

      1.  Todos os bancos de dados relacionais, como o Amazon RDS e o Aurora, e os bancos de dados NoSQL provisionados, como o Neptune e o Amazon DocumentDB, são compatíveis com a adição de replicas de leitura para descarregar as partes de leitura da workload. 

      1.  Os bancos de dados de tecnologia sem servidor, como o DynamoDB, escalarão automaticamente. Verifique se você tem unidades de capacidade de leitura suficientes (RCU) provisionadas para tratar a workload. 

   1.  Quais são as soluções disponíveis para escalar gravações (fragmentação de chave de partição, introdução de uma fila etc.)? 

      1.  No caso de bancos de dados relacionais, é possível aumentar o tamanho da instância para acomodar uma workload maior, ou aumentar as IOPs provisionadas para permitir um throughput mais alto para o armazenamento subjacente. 
         +  Também é possível introduzir uma fila na frente do banco de dados, em vez de gravar diretamente no banco de dados. Esse padrão permite desacoplar a ingestão do banco de dados e controlar a taxa de fluxo, para que o banco de dados não fique sobrecarregado.  
         +  O uso solicitações de gravação em lote em vez de criar muitas transações de curta duração pode ajudar a melhorar o throughput em bancos de dados relacionais de alto volume de gravação. 

      1.  Os bancos de dados de tecnologia sem servidor, como o DynamoDB, podem escalar o throughput de gravação automaticamente ou ajustar as unidades da capacidade de gravação (WCU) provisionadas, dependendo do modo da capacidade.  
         +  Mas ainda pode ser possível encontrar problemas com partições *quentes,* ao atingir os limites do throughput de uma determinada chave de partição. Isso pode ser mitigado ao escolher uma chave de partição mais igualmente distribuída ou fragmentar a gravação da chave de partição.  

1.  Quais são os picos de transações por segundo (TPS) atuais ou esperados? Teste usando esse volume de tráfego e esse volume \$1X% para compreender as características da escalabilidade. 

   1.  Ferramentas nativas, como a pg\$1bench do PostgreSQL, podem ser usadas para testes de estresse do banco de dados e para compreender os gargalos e as características de escalabilidade. 

   1.  Tráfego do tipo produção deve ser capturado para que possa ser reproduzido para a simulação das condições reais, além de workloads sintéticas. 

1.  Ao usar computação de tecnologia sem servidor ou escalável elasticamente, teste o impacto da escalabilidade disso no banco de dados. Se apropriado, introduza agrupamento ou gerenciamento de conexões para reduzir o impacto no banco de dados.  

   1.  O RDS Proxy pode ser usado com o Amazon RDS e o Aurora para gerenciar as conexões ao banco de dados.  

   1.  Bancos de dados de tecnologia sem servidor, como o DynamoDB, não têm conexões associadas a eles, mas considere a capacidade provisionada e as políticas de escalabilidade automática para lidar com picos na carga. 

1.  A carga é previsível? Há picos na carga e períodos de inatividade? 

   1.  Se houver períodos de inatividade, considere reduzir a escala verticalmente da capacidade provisionada ou o tamanho da instância durante esses períodos. Aurora Serverless V2 aumentará e reduzirá a escala verticalmente com base na carga. 

   1.  No caso de instâncias que não são de produção, considere pausá-las ou interrompê-las durante os horários sem trabalho. 

1.  É necessário segmentar e separar seus modelos de dados com base nos padrões de acesso e nas características dos dados? 

   1.  Considere usar o AWS DMS ou o AWS SCT para mover os dados para outros serviços. 

## Nível de esforço do plano de implementação: 
<a name="level-of-effort-for-the-implementation-plan-to-establish-this-best-practice-you-must-be-aware-of-your-current-data-characteristics-and-metrics.-gathering-those-metrics-establishing-a-baseline-and-then-using-those-metrics-to-identify-the-ideal-database-configuration-options-is-a-low-to-moderate-level-of-effort.-this-is-best-validated-by-load-tests-and-experimentation."></a>

Ao estabelecer essa prática recomendada, lembre-se das características e das métricas atuais dos dados. A coleta dessas métricas, o estabelecimento de uma linha de base e o uso dessas métricas para identificar as opções ideais de configuração de bancos de dados é *baixo* to *moderado* . Isso é melhor validade com testes de carga e experimentação. 

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

 **Documentos relacionados:** 
+  [Bancos de dados em nuvem com a AWS ](https://aws.amazon.com/products/databases/?ref=wellarchitected) 
+  [Armazenamento em cache de banco de dados da AWS ](https://aws.amazon.com/caching/database-caching/?ref=wellarchitected) 
+  [Amazon DynamoDB Accelerator ](https://aws.amazon.com/dynamodb/dax/?ref=wellarchitected) 
+  [Práticas recomendadas do Amazon Aurora ](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Aurora.BestPractices.html?ref=wellarchitected) 
+  [Performance do Amazon Redshift ](https://docs.aws.amazon.com/redshift/latest/dg/c_challenges_achieving_high_performance_queries.html?ref=wellarchitected) 
+  [10 melhores dicas de desempenho do Amazon Athena ](https://aws.amazon.com/blogs/big-data/top-10-performance-tuning-tips-for-amazon-athena/?ref=wellarchitected) 
+  [Práticas recomendadas do Amazon Redshift Spectrum ](https://aws.amazon.com/blogs/big-data/10-best-practices-for-amazon-redshift-spectrum/?ref=wellarchitected) 
+  [Melhores práticas do Amazon DynamoDB](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/BestPractices.html?ref=wellarchitected) 

 

 **Vídeos relacionados:** 
+  [AWS purpose-built databases (DAT209-L) (Bancos de dados com propósito específico da AWS (DAT209-L)) ](https://www.youtube.com/watch?v=q81TVuV5u28)
+ [Amazon Aurora storage demystified: How it all works (DAT309-R) (Armazenamento desmistificado do Amazon Aurora: Como tudo funciona (DAT309-R)) ](https://www.youtube.com/watch?v=uaQEGLKtw54) 
+  [Amazon DynamoDB deep dive: Advanced design patterns (DAT403-R1) ](https://www.youtube.com/watch?v=6yqfmXiZTlM)

 **Exemplos relacionados:** 
+  [Exemplos do Amazon DynamoDB](https://github.com/aws-samples/aws-dynamodb-examples) 
+  [Amostras de migração de bancos de dados da AWS](https://github.com/aws-samples/aws-database-migration-samples) 
+  [Workshop de modernização de banco de dados](https://github.com/aws-samples/amazon-rds-purpose-built-workshop) 
+  [Como trabalhar com parâmetros no Amazon RDS para bancos de dados Postgress](https://github.com/awsdocs/amazon-rds-user-guide/blob/main/doc_source/Appendix.PostgreSQL.CommonDBATasks.Parameters.md) 

# PERF04-BP03 Coletar e registrar métricas de performance do banco de dados
<a name="perf_right_database_solution_collect_metrics"></a>

 Para compreender como está a performance dos sistemas de gerenciamento de dados, é importante rastrear métricas relevantes. Essas métricas ajudam a otimizar seus recursos de gerenciamento de dados para garantir que os requisitos da workload sejam atendidos, e que você tenha uma visão geral clara de como está a performance da sua workload. Use ferramentas, bibliotecas e sistemas que registram as medidas de performance relacionadas ao banco de dados. 

 

 Há métricas relacionadas ao sistema que hospeda o banco de dados (como, CPU, armazenamento, memória, IOPS), e há métricas para avaliar os próprios dados (como, transações por segundo, taxas de consultas, tempos de resposta, erros). Essas métricas devem estar prontamente acessíveis para qualquer equipe de suporte e operacional, e devem ter registro histórico suficiente para que seja possível identificar tendências, anomalias e gargalos. 

 

 **Resultado desejado:** Para monitorar a performance das workloads de seus bancos de dados, registre várias métricas de performance ao longo de um período. Isso permite detectar anomalias e avaliar a performance em relação às métricas de negócios para garantir que as necessidades da workload sejam atendidas. 

 **Antipadrões comuns:** 
+  Você só usa a pesquisa manual de arquivos de log para métricas. 
+  Você só publica métricas para ferramentas internas usadas pela equipe e não tem uma imagem abrangente da workload. 
+  Você só usa as métricas padrão registradas pelo software de monitoramento selecionado. 
+  Você só analisa as métricas quando há um problema. 
+  Você só monitora as métricas em nível do sistema, não captura as métricas de acesso aos dados e de uso. 

 **Benefícios do estabelecimento desta prática recomendada:** O estabelecimento de uma linha de base de performance ajuda a compreender o comportamento normal e os requisitos das workloads. Padrões anormais podem ser identificados e depurados mais rapidamente, melhorando a performance e a confiabilidade do banco de dados. A capacidade do banco de dados pode ser configurada para garantir um custo ideal sem comprometer a performance. 

 **Nível de exposição a riscos quando esta prática recomendada não é estabelecida:** Alto 
+  A inabilidade de diferenciar o nível de performance fora do normal versus normal criam dificuldades na identificação de problemas e na tomada de decisões. 
+  A economia de custo possível pode não ser identificada. 
+  Os padrões de crescimento não serão identificados resultando em degradação da confiabilidade e da performance. 

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

 Identifique, colete, agregue e correlacione métricas relacionadas ao banco de dados. As métricas devem incluir as métricas do sistema subjacente que oferece suporte ao banco de dados e do banco de dados. As métricas do sistema subjacente podem incluir métricas de utilização de CPU, memória, armazenamento em disco disponível, E/S de disco e entrada e saída da rede, enquanto as métricas de banco de dados devem incluir transações por segundo, tempos de resposta, uso de índice, bloqueios de tabela, tempos limite de consultas e número de conexões abertas. Esses dados são essenciais para compreender como está a performance da workload e como a solução de banco de dados é usada. Use essas métricas como parte de uma abordagem orientada por dados para ajustar e otimizar os recursos da sua workload.  

 **Etapas da implementação:** 

1.  Quais métricas de bancos de dados é importante rastrear? 

   1.  [Métricas de monitoramento do Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_Monitoring.html) 

   1.  [Monitoramento com insights da performance](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_PerfInsights.html) 

   1.  [Monitoramento aprimorado](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_Monitoring.OS.overview.html) 

   1.  [Métricas do DynamoDB](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/metrics-dimensions.html) 

   1.  [Monitoramento do DynamoDB DAX](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/DAX.Monitoring.html) 

   1.  [Monitoramento do MemoryDB](https://docs.aws.amazon.com/memorydb/latest/devguide/monitoring-cloudwatch.html) 

   1.  [Monitoramento do Amazon Redshift](https://docs.aws.amazon.com/redshift/latest/mgmt/metrics.html) 

   1.  [Métricas e dimensões de séries temporais](https://docs.aws.amazon.com/timestream/latest/developerguide/metrics-dimensions.html) 

   1.  [Métricas em nível de cluster do Aurora](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Aurora.AuroraMySQL.Monitoring.Metrics.html) 

   1.  [Monitoramento do Amazon Keyspaces](https://docs.aws.amazon.com/keyspaces/latest/devguide/monitoring.html) 

   1.  [Monitoramento do Amazon Neptune](https://docs.aws.amazon.com/neptune/latest/userguide/monitoring.html) 

1.  O monitoramento do banco de dados se beneficiaria de uma solução de machine learning que detecta problemas de performance por anomalias operacionais? 

   1.  [O Amazon DevOps Guru for Amazon RDS](https://docs.aws.amazon.com/devops-guru/latest/userguide/working-with-rds.overview.how-it-works.html) fornece visibilidade dos problemas de performance e faz recomendações de ações corretivas. 

1.  São necessários detalhes em nível de aplicação sobre o uso do SQL? 

   1.  [AWS X-Ray](https://docs.aws.amazon.com/xray/latest/devguide/xray-api-segmentdocuments.html#api-segmentdocuments-sql) pode ser instrumentado na aplicação para obter insights e encapsular todos os pontos de dados em uma única consulta; 

1.  Você tem uma solução de registro em log e de monitoramento aprovada? 

   1.  [Amazon CloudWatch](https://aws.amazon.com/cloudwatch/) pode coletar métricas nos recursos na sua arquitetura. Você também pode coletar e publicar métricas personalizadas para descobrir métricas de negócio ou derivadas. Use o CloudWatch ou soluções de terceiros para definir alarmes que indiquem quando os limites são violados. 

1.  Você identificou e configurou suas políticas de retenção de dados para que correspondam às suas metas operacionais e de segurança? 

   1.  [Retenção de dados padrão para métricas do CloudWatch](https://aws.amazon.com/cloudwatch/faqs/#AWS_resource_.26_custom_metrics_monitoring) 

   1.  [Retenção de dados padrão do CloudWatch Logs](https://aws.amazon.com/cloudwatch/faqs/#Log_management) 

 **Nível de esforço do plano de implementação: **Há um nível de esforço *médio* para identificar, rastrear, coletar, agregar e correlacionar métricas de todos os recursos de banco de dados. 

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

 **Documentos relacionados:** 
+ [Armazenamento em cache de banco de dados da AWS](https://aws.amazon.com/caching/database-caching/) 
+ [ 10 melhores dicas de desempenho do Amazon Athena ](https://aws.amazon.com/blogs/big-data/top-10-performance-tuning-tips-for-amazon-athena/)
+ [ Práticas recomendadas do Amazon Aurora ](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Aurora.BestPractices.html)
+  [Amazon DynamoDB Accelerator ](https://aws.amazon.com/dynamodb/dax/)
+ [Melhores práticas do Amazon DynamoDB ](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/BestPractices.html) 
+ [Práticas recomendadas do Amazon Redshift Spectrum ](https://aws.amazon.com/blogs/big-data/10-best-practices-for-amazon-redshift-spectrum/) 
+ [Performance do Amazon Redshift ](https://docs.aws.amazon.com/redshift/latest/dg/c_challenges_achieving_high_performance_queries.html) 
+ [Bancos de dados em nuvem com a AWS](https://aws.amazon.com/products/databases/) 
+  [Insights de performance do Amazon RDS](https://aws.amazon.com/rds/performance-insights/) 

 **Vídeos relacionados:** 
+ [AWS purpose-built databases (DAT209-L) (Bancos de dados com propósito específico da AWS (DAT209-L)) ](https://www.youtube.com/watch?v=q81TVuV5u28) 
+  [Amazon Aurora storage demystified: How it all works (DAT309-R) (Armazenamento desmistificado do Amazon Aurora: Como tudo funciona (DAT309-R)) ](https://www.youtube.com/watch?v=uaQEGLKtw54)
+  [Amazon DynamoDB deep dive: Advanced design patterns (DAT403-R1) ](https://www.youtube.com/watch?v=6yqfmXiZTlM)

 **Exemplos relacionados:** 
+  [Level 100: Monitoring with CloudWatch Dashboards (Nível 100: monitoramento com os painéis do CloudWatch)](https://wellarchitectedlabs.com/performance-efficiency/100_labs/100_monitoring_with_cloudwatch_dashboards/) 
+  [AWS Dataset Ingestion Metrics Collection Framework (Framework da coleção de métricas de ingestão de conjuntos de dados da AWS)](https://github.com/awslabs/aws-dataset-ingestion-metrics-collection-framework) 
+  [Amazon RDS Monitoring Workshop (Workshop sobe o monitoramento do AWS RDS)](https://www.workshops.aws/?tag=Enhanced%20Monitoring) 

# PERF04-BP04 Escolher armazenamento de dados com base nos padrões de acesso
<a name="perf_right_database_solution_access_patterns"></a>

Use os padrões de acesso da workload e requisitos das aplicações para decidir sobre serviços de dados e tecnologias ideais a serem usadas. 

 **Resultado desejado:** o armazenamento de dados foi selecionado com base nos padrões de acesso aos dados identificados e documentados. Isso pode incluir as consultas mais comuns de leitura, gravação e exclusão, as necessidades de cálculos e agregações, a complexidade dos dados, a interdependência dos dados e a consistência exigida. 

 **Antipadrões comuns:** 
+ Você só seleciona um mecanismo de banco de dados para simplificar o gerenciamento de operações.
+  Você pressupõe que os padrões de acesso aos dados permanecerão consistentes ao longo do tempo. 
+  Você implementa transações complexas, reversão e lógica de consistência na aplicação. 
+  O banco de dados está configurado para ser compatível com alta expansão potencial de tráfego, o que faz com que os recursos do banco de dados fiquem ociosos a maior parte do tempo. 
+  O uso de um banco de dados compartilhado para fins transacionais e analíticos. 

 **Benefícios do estabelecimento desta prática recomendada:** a seleção e a otimização do armazenamento de dados com base em padrões de acesso ajuda a reduzir a complexidade do desenvolvimento e a otimizar as oportunidades de performance. A compreensão de quando usar réplicas de leitura, tabelas globais, particionamento de dados e armazenamento em cache ajuda a reduzir a sobrecarga operacional e a escalar com base nas necessidades da workload. 

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

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

Identifique e avalie o padrão de acesso aos dados para selecionar a configuração correta do armazenamento. Cada solução de banco de dados tem opções para configurar e otimizar sua solução de armazenamento. Use as métricas e os logs coletados e experimente com opções para encontrar a configuração ideal. Use a tabela a seguir para analisar as opções de armazenamento por serviço de banco de dados.


|  AWS Services  |  Amazon RDS  |  Amazon Aurora  |  Amazon DynamoDB  |  Amazon DocumentDB  |  Amazon ElastiCache  |  Amazon Neptune  |  Amazon Timestream  |  Amazon Keyspaces  |  Amazon QLDB  | 
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | 
|  Scaling Storage  | Storage can be scaled up manually or configured to scale automatically to a maximum of 64 TiB based on engine types. Provisioned storage cannot be decreased. |  Storage scales automatically up to maximum of 128 TiB and decreases when data is removed. Maximum storage size also depends upon specific Aurora MySQL or Aurora Postgres engine versions.  | Storage automatically scales. Tables are unconstrained in terms of size. | Storage scales automatically up to maximum of 64 TiB. Starting Amazon DocumentDB 4.0 storage can decrease by comparable amounts for data removal through dropping a collection or index. With Amazon DocumentDB 3.6 allocated space remains same and free space is reused when data volume increases. |  Storage is in-memory, tied to instance type or count.  |  Storage scales automatically can grow up to 128 TiB (or 64 TiB in few Regions). Upon data removal from, total allocated space remains same and is reused in the future.  | Organizes your time series data to optimize query processing and reduce storage costs. Retention period can be configured through in-memory and magnetic tiers. | Scales table storage up and down automatically as your application writes, updates, and deletes data. | Storage automatically scales. Tables are unconstrained in terms of size. | 

 

 **Etapas da implementação:** 

1.  Entenda os requisitos das transações, a conformidade de atomicidade, consistência, isolamento e durabilidade (ACID) e as leituras consistentes. Nem todo banco de dados é compatível com isso e a maioria dos bancos de dados NoSQL fornece um modelo de consistência eventual. 

1.  Considere os padrões de tráfego, a latência e os requisitos de acesso para uma aplicação distribuída globalmente a fim de identificar a solução de armazenamento ideal. 

1.  Analise padrões de consulta, padrões de acesso aleatório e consultas únicas. Considerações relativas à funcionalidade de consultas altamente especializadas para processamento de texto e de linguagem natural, às séries temporais e aos gráficos também devem ser avaliadas. 

1.  Identifique e documente o crescimento antecipado dos dados e do tráfego. 

   1.  O Amazon RDS e o Aurora são compatíveis com o aumento automático da escala vertical até os limites documentados. Além disso, considere fazer a transição de dados mais antigos ao Amazon S3 para arquivamento, agregando dados históricos para análise ou escalando horizontalmente por meio de fragmentação. 

   1.  O DynamoDB e o Amazon S3 escalam automaticamente até o volume de armazenamento quase ilimitado. 

   1.  As instâncias e os bancos de dados do Amazon RDS em execução no EC2 podem ser redimensionados manualmente e as instâncias do EC2 podem ter novos volumes do EBS adicionados posteriormente para armazenamento adicional.  

   1.  Os tipos de instância podem ser alterados com base nas alterações nas atividades. Por exemplo, é possível iniciar com uma instância menor para teste e escalar a instância quando o tráfego de produção começar a ser recebido no serviço. O Aurora Serverless V2 reduz a escala horizontalmente automaticamente em resposta a alterações na carga.  

1. Os requisitos base de performance em condições normais e em picos [transações por segundo (TPS) e consultas por segundo (QPS)] e de consistência (consistência ACID e eventual).

1.  Documente os aspectos da implantação da solução e os requisitos de acesso ao banco de dados (como replicação global, Multi-AZ, replicação de leitura e vários nós de gravação). 

 **Nível de esforço do plano de implementação:** baixo. Se você não tiver logs ou métricas para a solução de gerenciamento dos dados, será necessário realizar isso para identificar e documentar os padrões de acesso aos seus dados. Depois que o padrão de acesso aos dados for compreendido, o nível de esforço para selecionar e configurar o armazenamento dos seus dados é baixo. 

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

 **Documentos relacionados:** 
+ [ Bancos de dados em nuvem com a AWS](https://aws.amazon.com/products/databases/)
+ [ Trabalhar com armazenamento para instâncias de banco de dados do Amazon RDS ](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_PIOPS.StorageTypes.html)
+ [ Armazenamento do Amazon DocumentDB ](https://docs.aws.amazon.com/documentdb/latest/developerguide/how-it-works.html#how-it-works.storage)
+ [ Armazenamento em cache de banco de dados da AWS](https://aws.amazon.com/caching/database-caching/)
+ [ Armazenamento do Amazon Timestream ](https://docs.aws.amazon.com/timestream/latest/developerguide/storage.html)
+ [ Armazenamento no Amazon Keyspaces ](https://docs.aws.amazon.com/keyspaces/latest/devguide/Storage.html)
+ [ Perguntas frequentes do Amazon ElastiCache ](https://aws.amazon.com/elasticache/faqs/)
+ [ Armazenamento, confiabilidade e disponibilidade do Amazon Neptune ](https://docs.aws.amazon.com/neptune/latest/userguide/feature-overview-storage.html)
+ [Práticas recomendadas do Amazon Aurora](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Aurora.BestPractices.html) 
+ [Amazon DynamoDB Accelerator ](https://aws.amazon.com/dynamodb/dax/) 
+ [Práticas recomendadas do Amazon DynamoDB ](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/BestPractices.html) 
+  [ Tipos de armazenamento do Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_Storage.html) 
+ [ Especificações de hardware para classes de instâncias do Amazon RDS ](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Concepts.DBInstanceClass.html#Concepts.DBInstanceClass.Types)
+ [ Limites de armazenamento do Aurora ](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/CHAP_Limits.html#RDS_Limits.FileSize.Aurora)

 **Vídeos relacionados:** 
+ [ Banco de dados com propósito específico da AWS (DAT209-L)](https://www.youtube.com/watch?v=q81TVuV5u28) 
+  [ Armazenamento desmistificado do Amazon Aurora: como tudo funciona (DAT309-R) ](https://www.youtube.com/watch?v=uaQEGLKtw54)
+ [ Análise minuciosa do Amazon DynamoDB: padrões de design avançados (DAT403-R1) ](https://www.youtube.com/watch?v=6yqfmXiZTlM)

 **Exemplos relacionados:** 
+  [Experimentar e testar com teste de carga distribuída na AWS](https://aws.amazon.com/solutions/implementations/distributed-load-testing-on-aws/) 

# PERF04-BP05 Otimizar o armazenamento de dados com base nas métricas e nos padrões de acesso
<a name="perf_right_database_solution_optimize_metrics"></a>

 Use características de performance e padrões de acesso que otimizem o modo como os dados são armazenados ou consultados para obter a melhor performance possível. Meça como otimizações, p. ex., indexação, distribuição de chave, design do data warehouse ou estratégias de armazenamento em cache afetam a performance do sistema ou a eficiência geral. 

 **Antipadrões comuns:** 
+  Você só usa a pesquisa manual de arquivos de log para métricas. 
+  Você só publica métricas em ferramentas internas. 

 **Benefícios do estabelecimento desta prática recomendada:** Para garantir que você esteja atendendo às métricas necessárias para a carga de trabalho, você deve monitorar as métricas de performance do banco de dados relacionadas a leituras e gravações. Você pode usar esses dados para adicionar novas otimizações para leituras e gravações na camada de armazenamento de dados. 

 **Nível de exposição a riscos quando esta prática recomendada não é estabelecida:** Baixo 

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

 Otimizar o armazenamento de dados com base em métricas e padrões: use as métricas relatadas para identificar todas as áreas com baixa performance na sua workload e otimizar os componentes do banco de dados. Cada sistema de banco de dados tem características relacionadas a performance diferentes a serem avaliadas, como a maneira de indexar, armazenar em cache ou distribuir os dados entre vários sistemas. Meça o impacto de suas otimizações. 

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

 **Documentos relacionados:** 
+  [Armazenamento em cache de banco de dados da AWS](https://aws.amazon.com/caching/database-caching/) 
+  [10 melhores dicas de desempenho do Amazon Athena](https://aws.amazon.com/blogs/big-data/top-10-performance-tuning-tips-for-amazon-athena/) 
+  [Práticas recomendadas do Amazon Aurora](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Aurora.BestPractices.html) 
+  [Amazon DynamoDB Accelerator](https://aws.amazon.com/dynamodb/dax/) 
+  [Melhores práticas do Amazon DynamoDB](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/BestPractices.html) 
+  [Práticas recomendadas do Amazon Redshift Spectrum](https://aws.amazon.com/blogs/big-data/10-best-practices-for-amazon-redshift-spectrum/) 
+  [Performance do Amazon Redshift](https://docs.aws.amazon.com/redshift/latest/dg/c_challenges_achieving_high_performance_queries.html) 
+  [Bancos de dados em nuvem com a AWS](https://aws.amazon.com/products/databases/) 
+  [Analisar as anomalias da performance com o DevOps Guru for RDS](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/devops-guru-for-rds.html) 
+  [Modo de capacidade de leitura/gravação do DynamoDB](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/HowItWorks.ReadWriteCapacityMode.html) 

 **Vídeos relacionados:** 
+  [AWS purpose-built databases (DAT209-L) (Bancos de dados com propósito específico da AWS (DAT209-L))](https://www.youtube.com/watch?v=q81TVuV5u28) 
+  [Amazon Aurora storage demystified: How it all works (DAT309-R) (Armazenamento desmistificado do Amazon Aurora: Como tudo funciona (DAT309-R))](https://www.youtube.com/watch?v=uaQEGLKtw54) 
+  [Amazon DynamoDB deep dive: Advanced design patterns (DAT403-R1)](https://www.youtube.com/watch?v=6yqfmXiZTlM) 

 **Exemplos relacionados:** 
+  [Laboratórios práticos do Amazon DynamoDB](https://amazon-dynamodb-labs.workshop.aws/hands-on-labs.html) 

# PERF 5  Como você configura sua solução de rede?
<a name="perf-05"></a>

 A solução de rede ideal para uma carga de trabalho varia com base nos requisitos de latência, throughput, instabilidade e largura de banda. Restrições físicas, como recursos de usuário ou no local, determinam as opções de localização. Essas restrições podem ser compensadas com pontos de presença ou posicionamento de recursos. 

**Topics**
+ [PERF05-BP01 Compreender como as redes afetam a performance](perf_select_network_understand_impact.md)
+ [PERF05-BP02 Avaliar os recursos de redes disponíveis](perf_select_network_evaluate_features.md)
+ [PERF05-BP03 Escolher a VPN ou a conectividade dedicada dimensionada adequadamente para workloads híbridas](perf_select_network_hybrid.md)
+ [PERF05-BP04 Utilizar o balanceamento de carga e o descarregamento da criptografia](perf_select_network_encryption_offload.md)
+ [PERF05-BP05 Escolher os protocolos de rede para melhorar o desempenho](perf_select_network_protocols.md)
+ [PERF05-BP06 Escolher o local da workload com base nos requisitos de rede](perf_select_network_location.md)
+ [PERF05-BP07 Otimizar a configuração da rede com base em métricas](perf_select_network_optimize.md)

# PERF05-BP01 Compreender como as redes afetam a performance
<a name="perf_select_network_understand_impact"></a>

 Analise e entenda como decisões relacionadas à rede afetam a performance da carga de trabalho. A rede é responsável pela conectividade entre os componentes da aplicação, os serviços de nuvem, as redes de borda e os dados on-premises, e, portanto, ela pode afetar significativamente a performance da workload. Além da performance da workload, a experiência dos usuários também é afetada pela latência da rede, a largura de banda, os protocolos, a localização, a congestão da rede, a tremulação, o throughput e as regras de roteamento. 

 **Resultado desejado:** Ter uma lista documentada dos requisitos de rede da workload, incluindo latência, tamanho de pacotes, regras de roteamento, protocolos e padrões de tráfego compatíveis. Analise as soluções de redes disponíveis e identifique os serviços que atendem às características de redes da sua workload. É possível recriar as redes baseadas na nuvem rapidamente, portanto, é necessário evoluir sua arquitetura de rede ao longo do tempo para melhorar a eficiência da performance. 

 **Antipadrões comuns:** 
+  Todo o tráfego flui por meio dos datacenters existentes. 
+  Você cria sessões do Direct Connect em excesso sem compreender os requisitos reais de uso. 
+  Você não considera as características da workload e a sobrecarga da criptografia ao definir suas soluções de redes. 
+  Você usa conceitos e estratégias de on-premises para soluções de redes na nuvem. 

 **Benefícios do estabelecimento desta prática recomendada:** A compreensão de como as redes afetam a performance da workload ajuda a identificar gargalos potenciais, a melhorar a experiência dos usuários, a aumentar a confiabilidade e a reduzir a manutenção operacional à medida que a workload muda. 

 **Nível de exposição a riscos quando esta prática recomendada não é estabelecida:** Alto 

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

 Identifique as métricas importantes de performance da rede da sua workload e capture as características da rede. Defina e documente os requisitos como parte de uma abordagem direcionada por dados, usando testes comparativos ou de carga. Use esses dados para identificar onde sua solução de rede é restringida e examine as opções de configuração que podem melhorar a workload. Compreenda as opções e os recursos de redes nativos da nuvem disponíveis e como eles podem afetar a performance da workload com base nos requisitos. Cada recurso de redes tem vantagens e desvantagens, e pode ser configurado para atender às características da sua workload e escalar com base em suas necessidades. 

 **Etapas da implementação:** 

1.  Defina e documente os requisitos de performance das redes: 

   1.  Inclua métricas, como as de latência de rede, largura de banda, protocolos, locais, padrões de tráfego (picos e frequências), throughput, criptografia, inspeção e regras de roteamento 

1.  Capture as características fundamentais das redes: 

   1.  [Logs de fluxo da VPC ](https://docs.aws.amazon.com/vpc/latest/userguide/flow-logs.html) 

   1.  [Métricas do AWS Transit Gateway](https://docs.aws.amazon.com/vpc/latest/tgw/transit-gateway-cloudwatch-metrics.html) 

   1.  [Métricas do AWS PrivateLink](https://docs.aws.amazon.com/vpc/latest/privatelink/privatelink-cloudwatch-metrics.html) 

1.  Capture as características das redes da sua aplicação: 

   1.  [Adaptador de rede elástica](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/monitoring-network-performance-ena.html) 

   1.  [Métricas do AWS App Mesh](https://docs.aws.amazon.com/app-mesh/latest/userguide/envoy-metrics.html) 

   1.  [Métricas do Amazon API Gateway](https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-metrics-and-dimensions.html) 

1.  Capture as características das redes de borda: 

   1.  [Métricas do Amazon CloudFront](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/viewing-cloudfront-metrics.html) 

   1.  [Métricas do Amazon Route 53](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/monitoring-cloudwatch.html) 

   1.  [Métricas do AWS Global Accelerator](https://docs.aws.amazon.com/global-accelerator/latest/dg/cloudwatch-monitoring.html) 

1.  Capture as características das redes híbridas: 

   1.  [Métricas do Direct Connect](https://docs.aws.amazon.com/directconnect/latest/UserGuide/monitoring-cloudwatch.html) 

   1.  [Métricas do AWS Site-to-Site VPN](https://docs.aws.amazon.com/vpn/latest/s2svpn/monitoring-cloudwatch-vpn.html) 

   1.  [Métricas da AWS Client VPN](https://docs.aws.amazon.com/vpn/latest/clientvpn-admin/monitoring-cloudwatch.html) 

   1.  [Métricas da WAN da Nuvem AWS](https://docs.aws.amazon.com/vpc/latest/cloudwan/cloudwan-cloudwatch-metrics.html) 

1.  Capture as características das redes de segurança: 

   1.  [Métricas do AWS Shield, do WAF e do Network Firewall](https://docs.aws.amazon.com/waf/latest/developerguide/monitoring-cloudwatch.html) 

1.  Capture as métricas de performance de ponta a ponta com ferramentas de rastreamento: 

   1.  [AWS X-Ray](https://aws.amazon.com/xray/) 

   1.  [Amazon CloudWatch RUM](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch-RUM.html) 

1.  Realize teste comparativo e teste de performance da rede: 

   1.  [Realize o teste comparativo do](https://aws.amazon.com/premiumsupport/knowledge-center/network-throughput-benchmark-linux-ec2/) throughput da rede: alguns fatores que podem afetar a performance da rede do EC2 quando as instâncias estão na mesma VPC; Meça a largura de banda da rede entre as instâncias do EC2 do Linux na mesma VPC. 

   1.  Execute [testes de carga](https://aws.amazon.com/solutions/implementations/distributed-load-testing-on-aws/) para experimentar com soluções e opções de redes 

 **Nível de esforço do plano de implementação: **Há um nível de esforço *médio* para documentar os requisitos, as opções e as soluções disponíveis de redes da workload. 

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

 **Documentos relacionados:** 
+ [Application Load Balancer](https://docs.aws.amazon.com/elasticloadbalancing/latest/application/introduction.html) 
+ [Rede avançada do EC2 no Linux ](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/enhanced-networking.html) 
+ [Rede avançada do EC2 no Windows ](https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/enhanced-networking.html) 
+ [Grupos de posicionamento do EC2 ](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/placement-groups.html) 
+ [Como habilitar a rede avançada com o Elastic Network Adapter (ENA) em instâncias Linux](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/enhanced-networking-ena.html) 
+ [Network Load Balancer ](https://docs.aws.amazon.com/elasticloadbalancing/latest/network/introduction.html) 
+ [Produtos de redes com a AWS](https://aws.amazon.com/products/networking/) 
+  [Transit Gateway ](https://docs.aws.amazon.com/vpc/latest/tgw)
+ [Fazer a transição para o roteamento baseado em latência no Amazon Route 53 ](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/TutorialTransitionToLBR.html) 
+ [VPC Endpoints ](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-endpoints.html) 
+ [Logs de fluxo da VPC ](https://docs.aws.amazon.com/vpc/latest/userguide/flow-logs.html) 

 **Vídeos relacionados:** 
+ [Connectivity to AWS and hybrid AWS network architectures (NET317-R1) (Conectividade com a AWS e arquiteturas de rede híbrida da AWS (NET317-R1) ](https://www.youtube.com/watch?v=eqW6CPb58gs) 
+ [Optimizing Network Performance for Amazon EC2 Instances (CMP308-R1) ](https://www.youtube.com/watch?v=DWiwuYtIgu0) 
+  [Melhorar a performance da rede global para aplicações](https://youtu.be/vNIALfLTW9M) 
+  [EC2 Instances and Performance Optimization Best Practices (Práticas recomendadas para instâncias do EC2 e otimização da performance)](https://youtu.be/W0PKclqP3U0) 
+  [Optimizing Network Performance for Amazon EC2 Instances (Otimização da performance da rede para instâncias do Amazon EC2)](https://youtu.be/DWiwuYtIgu0) 
+  [Networking best practices and tips with the Well-Architected Framework (Práticas recomendadas e dicas de redes com o Well-Architected Framework)](https://youtu.be/wOMNpG49BeM) 
+  [AWS networking best practices in large-scale migrations (Práticas recomendadas da AWS em migrações de grande escala)](https://youtu.be/qCQvwLBjcbs) 

 **Exemplos relacionados:** 
+  [AWS Transit Gateway and Scalable Security Solutions (AWS Transit Gateway e soluções de segurança escaláveis)](https://github.com/aws-samples/aws-transit-gateway-and-scalable-security-solutions) 
+  [AWS Networking Workshops](https://networking.workshop.aws/) 

# PERF05-BP02 Avaliar os recursos de redes disponíveis
<a name="perf_select_network_evaluate_features"></a>

Avalie recursos de rede na nuvem que possam melhorar a performance. Meça o impacto desses recursos por meio de testes, métricas e análises. Por exemplo, aproveite os recursos de rede que estão disponíveis para reduzir a latência, a perda de pacotes ou a instabilidade da rede. 

Vários serviços são criados para melhorar a performance e outros costumam oferecer recursos para otimizar a performance da rede. Serviços como o AWS Global Accelerator e Amazon CloudFront existem para melhorar a performance enquanto a maioria dos outros serviços têm recursos para otimizar o tráfego de rede. Analise os recursos do serviço, como a capacidade da rede da instância do EC2, os tipos de instância para redes aprimoradas, as instâncias otimizadas para Amazon EBS, a aceleração de transferências do Amazon S3 e o CloudFront, para melhorar a performance da workload. 

**Resultado desejado:** você documentou o inventário de componentes da workload e identificou quais configurações de rede vão ajudar cada componente com o intuito de atender aos seus requisitos de performance. Depois de avaliar os recursos de rede, você testou e mensurou as métricas de performance para identificar como usar os recursos disponíveis. 

**Antipadrões comuns:** 
+ Você coloca todas as workloads na Região da AWS que está mais próxima de sua sede em vez de uma Região da AWS próxima dos usuários finais. 
+ Não obter uma referência para a performance de sua workload e deixar de avaliar continuamente a performance de sua workload em relação a essa referência.
+ Você não avalia configurações de serviço para opções de melhoria da performance. 

**Benefícios do estabelecimento desta prática recomendada:** Avaliar todos os recursos e opções de serviços pode aumentar a performance de sua workload, reduzir o custo da infraestrutura, diminuir o esforço necessário para manter sua workload e aumentar sua postura geral de segurança. É possível utilizar a espinha dorsal da AWS para garantir a experiência ideal de redes para os clientes. 

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

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

Analise quais opções de configuração de rede estão disponíveis e como elas poderiam afetar sua workload. Entender como essas opções interagem com sua arquitetura e o impacto que elas terão sobre a performance medida e a performance percebida pelos usuários é fundamental para a otimização da performance. 

**Etapas da implementação:** 

1. Crie uma lista de componentes da workload. 

   1. Desenvolva, gerencie e monitore a rede de sua organização usando o [Nuvem AWS WAN](https://aws.amazon.com/cloud-wan/). 

   1. Obtenha visibilidade de sua rede usando o [Network Manager](https://docs.aws.amazon.com/vpc/latest/tgwnm/what-is-network-manager.html). Use uma ferramenta de banco de dados de gerenciamento de configurações (CMDB) existente ou uma ferramenta como o [AWS Config](https://aws.amazon.com/config/) para criar um inventário de sua workload e como ela é configurada. 

1. Se for uma workload existente, identifique e documente a referência para suas métricas de performance, focando nos gargalos e nas áreas de melhoria. As métricas de rede associadas a performance vão variar de acordo com a workload com base nos requisitos comerciais e nas características da workload. Como ponto de partida, a análise dessas métricas pode ser importante para sua workload: largura de banda, latência, perda de pacotes, instabilidade da rede e retransmissões. 

1. Se a workload for nova, realize [testes de carga](https://aws.amazon.com/solutions/implementations/distributed-load-testing-on-aws/) para identificar gargalos de performance. 

1. Para os gargalos de performance que identificar, analise as opções de configuração para suas soluções a fim de identificar oportunidades de melhoria da performance. 

1. Se não souber seu caminho ou rotas de rede, use o [Network Access Analyzer](https://docs.aws.amazon.com/vpc/latest/network-access-analyzer/what-is-vaa.html) para identificá-los. 

1. Revise seus protocolos de rede para reduzir ainda mais a latência.
   + [PERF05-BP05 Escolher os protocolos de rede para melhorar o desempenho](perf_select_network_protocols.md) 

1. Se você usar uma AWS Site-to-Site VPN em vários locais para se conectar a uma Região da AWS, analise as [conexões aceleradas de Site-to-Site VPN](https://docs.aws.amazon.com/vpn/latest/s2svpn/accelerated-vpn.html) em busca de oportunidades para melhorar a performance de rede.

1. Quando o tráfego da workload está distribuído entre várias contas, avalie a topologia de rede e os serviços para reduzir a latência. 
   + Avalie suas concessões de operação e performance entre [Emparelhamento de VPC](https://docs.aws.amazon.com/vpc/latest/peering/what-is-vpc-peering.html) e [AWS Transit Gateway](https://aws.amazon.com/transit-gateway/) ao conectar várias contas. O AWS Transit Gateway oferece suporte a uma throughput de AWS Site-to-Site VPN para dimensionamento além de um único [limite máximo de IPsec](https://aws.amazon.com/blogs/networking-and-content-delivery/scaling-vpn-throughput-using-aws-transit-gateway/) usando vários caminhos. O tráfego entre uma Amazon VPC e o AWS Transit Gateway permanece na rede privada da AWS e não é exposto à Internet. O AWS Transit Gateway simplifica a interconexão de todas as suas VPCs, o que pode abranger milhares de Contas da AWS e redes on-premises. Compartilhe seu AWS Transit Gateway entre várias contas usando o [Resource Access Manager](https://aws.amazon.com/ram/). Para obter visibilidade de seu tráfego de rede global, use o [Network Manager](https://aws.amazon.com/transit-gateway/network-manager/) para obter uma visão central de suas métricas de rede. 

1. Revise seus locais de usuários e minimize a distância entre os usuários e a workload.

   1. [AWS Global Accelerator](https://aws.amazon.com/global-accelerator/) é um serviço de rede que melhora a performance do tráfego dos usuários em até 60% usando a infraestrutura de rede global da Amazon Web Services. Quando a Internet está congestionada, o AWS Global Accelerator otimiza o caminho para a aplicação a fim de manter a perda de pacotes, instabilidade da rede e latência num nível consistentemente baixo. Também fornece endereços IP estáticos que simplificam a movimentação de endpoints entre zonas de disponibilidade ou Regiões da AWS sem necessidade de atualizar sua configuração de DNS ou alterar as aplicações voltadas para os clientes. 

   1. [Amazon CloudFront](https://aws.amazon.com/cloudfront/) pode melhorar a performance de entrega de conteúdo de sua workload e latência globalmente. O CloudFront tem mais de 410 pontos de presença distribuídos globalmente para armazenar seu conteúdo em cache e reduzir a latência para o usuário final. 

   1. O Amazon Route 53 oferece opções de [roteamento baseado em latência](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/routing-policy-latency.html), [roteamento por geolocalização](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/routing-policy-geo.html), [roteamento por geoproximidade](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/routing-policy-geoproximity.html)e aos [roteamento baseado em IP](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/routing-policy-ipbased.html) para ajudar a melhorar a performance de sua workload para um público global. Identifique qual opção de roteamento otimiza a performance da workload analisando o tráfego e a localização dos usuários da workload. 

1. Avalie recursos adicionais do Amazon S3 para melhorar as IOPS de armazenamento. 

   1.  [Aceleração de Transferências do Amazon S3](https://aws.amazon.com/s3/transfer-acceleration/) é um recurso que permite que usuários externos se beneficiem de otimizações de rede do CloudFront a fim de fazer upload de dados no Amazon S3. Isso melhora a capacidade de transferir grandes quantidades de dados com origem em locais remotos que não têm conectividade dedicada com a Nuvem AWS. 

   1.  [Pontos de acesso multirregionais no Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/MultiRegionAccessPoints.html) replicam conteúdo para várias regiões e simplificam a workload ao proporcionar um ponto de acesso. Quando um ponto de acesso multirregional é usado, você pode solicitar ou gravar dados no Amazon S3 com o serviço identificando o bucket de menor latência. 

1. Revise a largura de banda da rede para recursos de computação.

   1. Interfaces de rede elástica (ENI) usadas por instâncias do EC2, contêineres e funções do Lambda são limitadas por fluxo. Revise seus grupos de posicionamento para otimizar a [throughput de rede do EC2](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-network-bandwidth.html). Para evitar gargalos na abordagem por fluxo, projete sua aplicação para usar vários fluxos. Para monitorar e obter visibilidade de suas métricas de rede relacionadas à computação, use [métricas do CloudWatch](https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/ec2-instance-network-bandwidth.html) e [https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/monitoring-network-performance-ena.html](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/monitoring-network-performance-ena.html). `ethtool` está incluído no driver de ENI e expõe métricas adicionais relacionadas à rede que podem ser publicadas como [métricas personalizadas](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/publishingMetrics.html) no CloudWatch. 

   1. As instâncias mais novas do EC2 também podem aproveitar as redes aprimoradas. [Instâncias série N do EC2](https://aws.amazon.com/ec2/nitro/), como `M5n` e `M5dn`, utilizam a quarta geração de cartões Nitro personalizados para oferecer até 100 Gbps de throughput de rede a uma única instância. Essas instâncias oferecem quatro vezes mais largura de banda de rede e processo de pacotes em comparação às instâncias `M5` básicas, sendo ideais para aplicações com uso intenso de rede. 

   1. [Adaptadores de rede elástica (ENA) da Amazon](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/enhanced-networking-ena.html) proporcionam ainda mais otimização ao oferecer mais throughput para suas instâncias em um [grupo de posicionamento de cluster](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/placement-groups.html#placement-groups-cluster%23placement-groups-limitations-cluster). 

   1. [Elastic Fabric Adapter](https://aws.amazon.com/hpc/efa/) é uma interface de rede para instâncias do Amazon EC2 que permite executar workloads que exigem altos níveis de comunicação entre nós em grande escala na AWS. Com o EFA, os aplicativos de Computação de Alta Performance (HPC) que usam a Message Passing Interface (MPI – Interface de Passagem de Mensagens) e os aplicativos de ML (Machine Learning) que usam a NCCL (NVIDIA Collective Communications Library) podem aumentar a escala para milhares de CPUs ou GPUs. 

   1. [Instâncias otimizadas para Amazon EBS](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-optimized.html) usam uma pilha de configuração otimizada e fornecem capacidade adicional e dedicada para E/S do Amazon EBS. Essa otimização proporciona a melhor performance para seus volumes do EBS ao minimizar a contenção entre a E/S do Amazon EBS e outros tráfegos provenientes da sua instância. 

**Nível de esforço do plano de implementação: **

Para estabelecer esta prática recomendada, você deve conhecer as opções atuais de componentes para sua workload que afetam a performance de rede. Reunir os componentes, avaliar as opções de melhoria da rede, realizar testes, implementar e documentar essas melhorias são ações de esforço *baixo* to *moderado* . 

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

 **Documentos relacionados:** 
+  [Instâncias otimizadas para Amazon EBS](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-optimized.html) 
+  [Application Load Balancer](https://docs.aws.amazon.com/elasticloadbalancing/latest/application/introduction.html) 
+  [Largura de banda da rede para instâncias do Amazon EC2](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-network-bandwidth.html) 
+  [Rede avançada do EC2 no Linux](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/enhanced-networking.html) 
+  [Rede avançada do EC2 no Windows](https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/enhanced-networking.html) 
+  [Grupos de posicionamento do EC2](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/placement-groups.html) 
+  [Como habilitar a rede avançada com o Elastic Network Adapter (ENA) em instâncias Linux](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/enhanced-networking-ena.html) 
+  [Network Load Balancer](https://docs.aws.amazon.com/elasticloadbalancing/latest/network/introduction.html) 
+  [Produtos de redes com a AWS](https://aws.amazon.com/products/networking/) 
+  [AWS Transit Gateway](https://docs.aws.amazon.com/vpc/latest/tgw) 
+  [Fazer a transição para o roteamento baseado em latência no Amazon Route 53](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/TutorialTransitionToLBR.html) 
+  [VPC Endpoints](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-endpoints.html) 
+  [Logs de fluxo da VPC](https://docs.aws.amazon.com/vpc/latest/userguide/flow-logs.html) 
+  [Como criar um CMDB na nuvem](https://aws.amazon.com/blogs/mt/building-a-cloud-cmdb-on-aws-for-consistent-resource-configuration-in-hybrid-environments/) 
+  [Dimensionar a throughput de VPN usando o AWS Transit Gateway](https://aws.amazon.com/blogs/networking-and-content-delivery/scaling-vpn-throughput-using-aws-transit-gateway/) 

 **Vídeos relacionados:** 
+  [Connectivity to AWS and hybrid AWS network architectures (NET317-R1) (Conectividade com a AWS e arquiteturas de rede híbrida da AWS)](https://www.youtube.com/watch?v=eqW6CPb58gs) 
+  [Optimizing Network Performance for Amazon EC2 Instances (CMP308-R1)](https://www.youtube.com/watch?v=DWiwuYtIgu0) 
+  [AWS Global Accelerator](https://www.youtube.com/watch?v=lAOhr-5Urfk) 

 **Exemplos relacionados:** 
+  [AWS Transit Gateway e soluções de segurança escaláveis](https://github.com/aws-samples/aws-transit-gateway-and-scalable-security-solutions) 
+  [Workshops de redes da AWS](https://networking.workshop.aws/) 

# PERF05-BP03 Escolher a VPN ou a conectividade dedicada dimensionada adequadamente para workloads híbridas
<a name="perf_select_network_hybrid"></a>

 Quando uma rede comum é necessária para conectar recursos on-premises e de nuvem na AWS, verifique se você tem largura de banda adequada para atender aos requisitos de desempenho. Estime os requisitos de largura de banda e de latência para a sua workload híbrida. Esses números orientarão os requisitos de dimensionamento para as opções de conectividade. 

 **Resultado desejado:** ao implantar uma workload que precisará de redes híbridas, você tem várias opções de configuração para conectividade, como conexão dedicada ou rede privada virtual (VPN). Selecione o tipo de conexão apropriado para cada workload e verifique se você tem os requisitos de largura de banda e de criptografia adequados entre seu local e a nuvem. 

 **Antipadrões comuns:** 
+ Você não compreende ou identifica todos os requisitos da workload (necessidades de largura de banda, latência, tremulação, criptografia e tráfego).
+  Você não avalia opções de conectividade paralela ou de backup. 

 **Benefícios do estabelecimento dessa prática recomendada:** a seleção e a configuração adequadas de soluções de rede híbrida aumentará a confiabilidade da workload e maximizará as oportunidades de desempenho. A identificação dos requisitos da workload, o planejamento antecipado e a avaliação das soluções híbridas ajudarão a minimizar alterações dispendiosas da rede física e as despesas operacionais e reduzirá o tempo de colocação no mercado. 

 **Nível de exposição a riscos quando esta prática recomendada não é estabelecida:** alto 

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

Desenvolva uma arquitetura de rede híbrida com base em seus requisitos de largura de banda. Calcule os requisitos de largura de banda e latência de seus aplicativos híbridos. Considere uma opção de conectividade apropriada entre usar uma conexão de rede dedicada ou uma VPN com base na internet.

A conexão dedicada estabelece a conexão de rede sobre linhas privadas. Ela é adequada para quando você precisa de largura de banda alta e baixa latência enquanto obtém um desempenho consistente. A conexão VPN estabelece uma conexão segura pela internet. Ela é adequada quando você precisa de uma conexão criptografada usando uma conexão existente com a internet.

Com base nos requisitos de largura de banda, uma única conexão VPN ou dedicada pode não ser suficiente, e você deve projetar uma configuração híbrida para habilitar o balanceamento de carga de tráfego em várias conexões. 

 **Etapas da implementação** 

1.  Calcule os requisitos de largura de banda e latência de seus aplicativos híbridos. 

   1.  Para aplicações existentes que estão sendo migradas para a AWS, utilize os dados de seus sistemas de monitoramento de rede internos. 

   1.  Para aplicações novas ou existentes para as quais não há dados de monitoramento, consulte os proprietários do produto para gerar métricas de desempenho adequadas e fornecer uma experiência do usuário satisfatória. 

1.  Escolha uma conexão dedicada ou VPN como sua opção de conectividade. Com base em todos os requisitos da workload (necessidades de criptografia, largura de banda e tráfego), é possível escolher o AWS Direct Connect ou o AWS Site-to-Site VPN (ou ambos). O diagrama a seguir ajudará você a escolher o tipo de conexão apropriada. 

   1.  Se você considerar a conexão dedicada, o AWS Direct Connect poderá ser necessário, o que oferece um desempenho mais previsível e consistente devido à sua conectividade de rede privada. O AWS Direct Connect fornece conectividade dedicada com o ambiente da AWS, de 50 Mbps até 100 Gbps, usando a conexão dedicada ou a conexão hospedada. Isso permite que você tenha latência gerenciada e controlada, além de largura de banda provisionada para que a workload possa se conectar de forma eficiente com outros ambientes. Com os parceiros do AWS Direct Connect, é possível ter conectividade completa para vários ambientes, fornecendo uma rede estendida com desempenho consistente. A AWS oferece escalabilidade da largura de banda da conexão do Direct Connect usando 100 Gbps nativos, LAG (Link Aggregation Group) ou BGP ECMP (Equal-cost multipath). 

   1.  Se você considerar a conexão VPN, uma VPN gerenciada pela AWS é a opção recomendada. O AWS Site-to-Site VPN fornece um serviço de VPN gerenciada compatível com o protocolo IPsec (Internet Protocol security). Quando uma conexão VPN é criada, cada conexão VPN inclui dois túneis para alta disponibilidade. Com o AWS Transit Gateway, é possível simplificar a conectividade entre várias VPCs, além de se conectar a qualquer VPC anexada ao AWS Transit Gateway com uma única conexão VPN. O AWS Transit Gateway também permite escalar além do limite de throughput da VPN IPsec de 1,25 Gbps permitindo o roteamento ECMP (Equal-cost multi-path) por vários túneis da VPN. 

![\[Um fluxograma que descreve as opções a serem consideradas ao determinar se você precisa de desempenho determinístico nas suas redes ou não.\]](http://docs.aws.amazon.com/pt_br/wellarchitected/2023-04-10/framework/images/deterministic-performance-flowchart.png)


 

 **Nível de esforço do plano de implementação:** alto. Há um esforço significativo em avaliar as necessidades da workload para redes híbridas e implementar soluções de redes híbridas. 

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

 **Documentos relacionados:** 
+ [Network Load Balancer](https://docs.aws.amazon.com/elasticloadbalancing/latest/network/introduction.html) 
+ [Produtos de redes com a AWS](https://aws.amazon.com/products/networking/) 
+ [AWS Transit Gateway](https://docs.aws.amazon.com/vpc/latest/tgw) 
+ [Fazer a transição para o encaminhamento por latência no Amazon Route 53](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/TutorialTransitionToLBR.html) 
+ [VPC Endpoints](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-endpoints.html) 
+ [Logs de fluxo da VPC](https://docs.aws.amazon.com/vpc/latest/userguide/flow-logs.html) 
+  [AWS Site-to-Site VPN](https://docs.aws.amazon.com/vpn/latest/s2svpn/VPC_VPN.html) 
+  [Building a Scalable and Secure Multi-VPC AWS Network Infrastructure](https://docs.aws.amazon.com/whitepapers/latest/building-scalable-secure-multi-vpc-network-infrastructure/welcome.html) (Criação de uma infraestrutura de rede da AWS de várias VPCs escaláveis e seguras) 
+  [AWS Direct Connect](https://docs.aws.amazon.com/directconnect/latest/UserGuide/Welcome.html) 
+  [Client VPN](https://docs.aws.amazon.com/vpn/latest/clientvpn-admin/what-is.html) 

 **Vídeos relacionados:** 
+ [Conectividade com a AWS e arquiteturas de rede híbrida da AWS (NET317-R1)](https://www.youtube.com/watch?v=eqW6CPb58gs) 
+ [Otimização do desempenho da rede para instâncias do Amazon EC2 (CMP308-R1) ](https://www.youtube.com/watch?v=DWiwuYtIgu0) 
+  [AWS Global Accelerator](https://www.youtube.com/watch?v=lAOhr-5Urfk) 
+  [AWS Direct Connect](https://www.youtube.com/watch?v=DXFooR95BYc&t=6s) 
+  [Transit Gateway Connect](https://www.youtube.com/watch?v=_MPY_LHSKtM&t=491s) 
+  [VPN Solutions](https://www.youtube.com/watch?v=qmKkbuS9gRs) (Soluções de VPN) 
+  [Security with VPN Solutions](https://www.youtube.com/watch?v=FrhVV9nG4UM) (Segurança com as soluções de VPN) 

 **Exemplos relacionados:** 
+  [AWS Transit Gateway and Scalable Security Solutions](https://github.com/aws-samples/aws-transit-gateway-and-scalable-security-solutions) (AWS Transit Gateway e soluções de segurança escaláveis) 
+  [AWS Networking Workshops](https://networking.workshop.aws/) (Workshops de redes da AWS) 

# PERF05-BP04 Utilizar o balanceamento de carga e o descarregamento da criptografia
<a name="perf_select_network_encryption_offload"></a>

Use balanceadores de carga para obter eficiência de desempenho ideal de seus recursos de destino e melhore a capacidade de resposta do seu sistema.

 **Resultado desejado:** reduza o número de recursos de computação para atender o tráfego. Evite o desequilíbrio do consumo de recursos em seus destinos. Descarregue tarefas com uso intenso de computação para o balanceador de carga. Utilize a elasticidade e a flexibilidade da nuvem para melhorar o desempenho e otimizar a arquitetura. 

 **Antipadrões comuns:** 
+ Você não considera os requisitos da workload ao escolher o tipo de balanceador de carga.
+ Você não utiliza os recursos do balanceador de carga para otimização do desempenho.
+  A workload é exposta diretamente para a internet sem um balanceador de carga. 

 **Nível de exposição a riscos quando esta prática recomendada não é estabelecida:** alto 

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

 Os balanceadores de carga atuam como ponto de entrada para a workload e, de lá, distribuem o tráfego para seus destinos de back-end, como contêineres ou instâncias de computação. Escolher o tipo certo de balanceador de carga é a primeira etapa para otimizar sua arquitetura. 

 Comece listando as características da workload, como protocolo (como TCP, HTTP, TLS ou WebSockets), o tipo de destino (como instâncias, contêineres ou tecnologia sem servidor), requisitos da aplicação (como conexões de execução longa, autenticação de usuários ou adesão) e posicionamento (como região, zona local, Outpost ou isolamento por zona). 

 Depois de escolher o balanceador de carga certo, você pode começar a utilizar seus recursos para reduzir a quantidade de esforço que seu back-end precisa fazer para atender o tráfego. 

 Por exemplo, ao usar tanto o Application Load Balancer (ALB) como o Network Load Balancer (NLB), é possível realizar a descarregamento de criptografia SSL/TLS, que é uma oportunidade de evitar que o handshake TLS com uso intenso da CPU seja concluído pelos destinos e também melhorar o gerenciamento de certificados. 

 Ao configurar o descarregamento de SSL/TLS no balanceador de carga, ele se torna responsável pela criptografia do tráfego de e para os clientes enquanto entrega o tráfego não criptografado aos back-ends, liberando os recursos de back-end e melhorando o tempo de resposta para os clientes. 

 O Application Load Balancer também pode fornecer tráfego HTTP2 sem precisar comportá-lo em seus destinos. Essa simples decisão pode melhorar o tempo de resposta da aplicação, já que o HTTP2 usa conexões TCP de forma mais eficiente. 

 Os balanceadores de carga também podem ser usados para tornar a arquitetura mais flexível distribuindo o tráfego por diferentes tipos de back-end, como contêineres e tecnologia sem servidor. Por exemplo, o Application Load Balancer pode ser configurado com [regras de receptor](https://docs.aws.amazon.com/elasticloadbalancing/latest/application/listener-update-rules.html) que encaminham o tráfego para diferentes grupos de destino com base nos parâmetros da solicitação, como cabeçalho, método ou padrão. 

 Os requisitos de latência da workload também devem ser considerados ao definir a arquitetura. Como exemplo, se você tiver uma aplicação sensível à latência, poderá decidir usar o Network Load Balancer, que oferece latências extremamente baixas. Como alternativa, você pode decidir aproximar a workload dos clientes utilizando o Application Load Balancer em [zonas locais da AWS](https://aws.amazon.com/about-aws/global-infrastructure/localzones/) ou até mesmo em [AWS Outposts](https://aws.amazon.com/outposts/rack/). 

 Outra consideração para workloads sensíveis à latência é o balanceamento de carga entre zonas. Com o balanceamento de carga entre zonas, cada nó do balanceador de carga distribui o tráfego entre os destinos registrados em todas as zonas de disponibilidade habilitadas. Isso melhora a disponibilidade, embora possa adicionar um milissegundo de um dígito à latência de ida e volta. 

 Por fim, tanto o ALB como o NLB oferecem recursos de monitoramento como logs e métricas. Configurar o monitoramento corretamente pode ajudar a coletar informações de desempenho da aplicação. Por exemplo, é possível usar os logs de acesso do ALB para encontrar quais solicitações estão levando mais tempo para serem atendidas ou quais destinos de back-end estão causando problemas de desempenho. 

 **Etapas da implementação** 

1.  Escolha o balanceador de carga certo para a workload. 

   1.  Use o Application Load Balancer para workloads HTTP/HTTPS. 

   1.  Use o Network Load Balancer para workloads que não são HTTP que executam TCP ou UDP. 

   1.  Use uma combinação de ambos ([ALB como destino do NLB](https://aws.amazon.com/blogs/networking-and-content-delivery/application-load-balancer-type-target-group-for-network-load-balancer/)) se quiser utilizar os recursos dos dois produtos. Por exemplo, é possível fazer isso se você quiser usar os IPs estáticos do NLB junto com o roteamento baseado em cabeçalho HTTP da ALB, ou se quiser expor a workload HTTP em um [AWS PrivateLink](https://docs.aws.amazon.com/vpc/latest/privatelink/privatelink-share-your-services.html). 

   1.  Para ver uma comparação entre balanceadores de carga, consulte a [comparação de produtos do ELB](https://aws.amazon.com/elasticloadbalancing/features/). 

1.  Use o descarregamento de SSL/TLS. 

   1.  Configure receptores HTTPS/TLS tanto com [Application Load Balancer](https://docs.aws.amazon.com/elasticloadbalancing/latest/application/create-https-listener.html) como com [Network Load Balancer](https://docs.aws.amazon.com/elasticloadbalancing/latest/network/create-tls-listener.html) integrados ao [AWS Certificate Manager](https://aws.amazon.com/certificate-manager/). 

   1.  Observe que algumas workloads podem exigir criptografia completa por motivos de conformidade. Nesse caso, é um requisito para habilitar a criptografia nos destinos. 

   1.  Para consultar as práticas recomendadas de segurança, consulte [SEC09-BP02 Aplicar criptografia a dados em trânsito](https://docs.aws.amazon.com/wellarchitected/latest/security-pillar/sec_protect_data_transit_encrypt.html). 

1.  Escolha o algoritmo de roteamento certo. 

   1.  O algoritmo de roteamento pode fazer a diferença em como os destinos de back-end são bem-utilizados e, portanto, na forma em como afetam o desempenho. Por exemplo, o ALB fornece [duas opções para algoritmos de roteamento](https://docs.aws.amazon.com/elasticloadbalancing/latest/application/load-balancer-target-groups.html#modify-routing-algorithm): 

   1.  **Menos solicitações pendentes:** use para obter uma melhor distribuição de carga para seus destinos de back-end em casos nos quais as solicitações para a aplicação variam em complexidade ou os destinos variam na capacidade de processamento. 

   1.  **Distribuição equilibrada:** use quando as solicitações e os destinos forem semelhantes, ou se você precisar distribuir as solicitações igualmente entre os destinos. 

1.  Considere isolamento por zona ou entre zonas. 

   1.  Desative a opção entre zonas (isolamento por zona) para melhorias de latência e domínios com falha de zona. Ela está desativada por padrão no NLB e no [ALB é possível ativá-la por grupo de destino](https://docs.aws.amazon.com/elasticloadbalancing/latest/application/disable-cross-zone.html). 

   1.  Ative a opção entre zonas para maior disponibilidade e flexibilidade. Por padrão, a opção entre zonas está ativada para o ALB e no [NLB é possível ativá-la por grupo de destino](https://docs.aws.amazon.com/elasticloadbalancing/latest/network/target-group-cross-zone.html). 

1.  Ative as manutenções de funcionamento de HTTP para as workloads HTTP. 

   1.  Para workloads HTTP, ative a manutenção de funcionamento de HTTP nas configurações do servidor web para os destinos de back-end. Com esse recurso, o balanceador de carga pode reutilizar as conexões de back-end até expirar o tempo limite da manutenção de funcionamento, melhorando a solicitação HTTP e o tempo de resposta, além de reduzir a utilização de recursos nos destinos de back-end. Para obter detalhes de como fazer isso para o Apache e o Nginx, consulte [What are the optimal settings for using Apache or NGINX as a backend server for ELB?](https://aws.amazon.com/premiumsupport/knowledge-center/apache-backend-elb/) (Quais são as configurações ideais para usar o Apache ou o NGINX como um servidor de back-end para o ELB?) 

1.  Use integrações do Elastic Load Balancing para melhor orquestração dos recursos de computação. 

   1.  Use o Auto Scaling integrado ao balanceador de carga. Um dos principais aspectos de um sistema com desempenho eficiente está relacionado ao dimensionamento correto dos recursos de back-end. Para fazer isso, é possível utilizar as integrações do balanceador de carga para os recursos de destino de back-end. Ao usar a integração do balanceador de carga com os grupos do Auto Scaling, os destinos serão adicionados ou removidos do balanceador de carga conforme exigido em resposta ao tráfego recebido. 

   1.  Os balanceadores de carga também podem ser integrados ao Amazon ECS e ao Amazon EKS para workloads em contêineres. 
      + [ Usar o Elastic Load Balancing para distribuir tráfego entre as instâncias no grupo do Auto Scaling ](https://docs.aws.amazon.com/autoscaling/ec2/userguide/autoscaling-load-balancer.html)
      + [ Amazon ECS: balanceamento de carga do serviço ](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-load-balancing.html)
      + [ Balanceamento de carga da aplicação no Amazon EKS ](https://docs.aws.amazon.com/eks/latest/userguide/alb-ingress.html)
      + [ Balanceamento de carga da rede no Amazon EKS ](https://docs.aws.amazon.com/eks/latest/userguide/network-load-balancing.html)

1.  Monitore o balanceador de carga para encontrar gargalos de desempenho. 

   1.  Habilite os logs de acesso para o [Application Load Balancer](https://docs.aws.amazon.com/elasticloadbalancing/latest/application/enable-access-logging.html) e o [Network Load Balancer](https://docs.aws.amazon.com/elasticloadbalancing/latest/network/load-balancer-access-logs.html). 

   1.  Os principais campos a considerar para o ALB são `request_processing_time`, o `request_processing_time`e o `response_processing_time`. 

   1.  Os principais campos a considerar para o NLB são `connection_time` e o `tls_handshake_time`. 

   1.  Esteja pronto para consultar os logs quando precisar deles. É possível usar o Amazon Athena para consultar tanto os [logs do ALB](https://docs.aws.amazon.com/athena/latest/ug/application-load-balancer-logs.html) como os [logs do NLB](https://docs.aws.amazon.com/athena/latest/ug/networkloadbalancer-classic-logs.html). 

   1.  Crie alarmes para métricas relacionadas ao desempenho, como [`TargetResponseTime` para o ALB](https://docs.aws.amazon.com/elasticloadbalancing/latest/application/load-balancer-cloudwatch-metrics.html). 

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

 **Práticas recomendadas relacionadas:** 
+  [SEC09-BP02 Aplicar a criptografia em trânsito](https://docs.aws.amazon.com/wellarchitected/latest/security-pillar/sec_protect_data_transit_encrypt.html) 

 **Documentos relacionados:** 
+ [Comparação de produtos do ELB ](https://aws.amazon.com/elasticloadbalancing/features/)
+ [ Infraestrutura global da AWS](https://aws.amazon.com/about-aws/global-infrastructure/)
+ [ Improving Performance and Reducing Cost Using Availability Zone Affinity ](https://aws.amazon.com/blogs/architecture/improving-performance-and-reducing-cost-using-availability-zone-affinity/)(Melhorar o desempenho e reduzir os custos usando a afinidade de zona de disponibilidade)
+ [ Step by step for Log Analysis with Amazon Athena ](https://github.com/aws/elastic-load-balancing-tools/tree/master/amazon-athena-for-elb)(Passo a passo para a análise de logs com o Amazon Athena)
+ [ Consultar logs do Application Load Balancer ](https://docs.aws.amazon.com/athena/latest/ug/application-load-balancer-logs.html)
+ [ Monitor your Application Load Balancers ](https://docs.aws.amazon.com/elasticloadbalancing/latest/application/load-balancer-monitoring.html)(Monitorar os Application Load Balancers)
+ [ Monitor your Network Load Balancers ](https://docs.aws.amazon.com/elasticloadbalancing/latest/network/load-balancer-monitoring.html) (Monitorar os Network Load Balancers)

 **Vídeos relacionados:** 
+ [AWS re:Invent 2018: [REPEAT 1] Elastic Load Balancing: Deep Dive and Best Practices (NET404-R1) ](https://www.youtube.com/watch?v=VIgAT7vjol8)(AWS re:Invent 2018: [REPETIR 1] Elastic Load Balancing: aprofundamento e práticas recomendadas (NET404-R1))
+ [AWS re:Invent 2021 - How to choose the right load balancer for your AWS workloads ](https://www.youtube.com/watch?v=p0YZBF03r5A)(AWS re:Invent 2021: como escolher o balanceador de carga certo para suas workloads da AWS)
+ [AWS re:Inforce 2022 - How to use Elastic Load Balancing to enhance your security posture at scale (NIS203) ](https://www.youtube.com/watch?v=YhNc5VSzOGQ)(AWS re:Inforce 2022: como usar o Elastic Load Balancing para melhorar seu procedimento de segurança em escala (NIS203))
+ [AWS re:Invent 2019: Get the most from Elastic Load Balancing for different workloads (NET407-R2) ](https://www.youtube.com/watch?v=HKh54BkaOK0)(AWS re:Invent 2019: aproveite o Elastic Load Balancing ao máximo para diferentes workloads (NET407-R2))

 **Exemplos relacionados:** 
+ [ CDK and CloudFormation samples for Log Analysis with Amazon Athena ](https://github.com/aws/elastic-load-balancing-tools/tree/master/log-analysis-elb-cdk-cf-template)(Amostras do CDK e do CloudFormation para análise de log com o Amazon Athena)

# PERF05-BP05 Escolher os protocolos de rede para melhorar o desempenho
<a name="perf_select_network_protocols"></a>

Avalie os requisitos de desempenho da workload e escolha os protocolos de rede que otimizam o desempenho geral da workload.

Há uma relação entre latência e largura de banda para alcançar o throughput. Por exemplo, se a transferência de arquivos estiver usando TCP (Protocolo de Controle de Transmissão), latências mais altas reduzirão o throughput geral. Existem abordagens para corrigir isso com ajuste de TCP e protocolos de transferência otimizados (algumas abordagens usam UDP (protocolo de datagrama de usuário)).

 O protocolo [SRD (datagrama confiável escalável)](https://ieeexplore.ieee.org/document/9167399) é um protocolo de transporte de rede criado pela AWS para Elastic Fabric Adapters que oferecem a entrega de datagramas confiáveis. Ao contrário do protocolo TCP, o SRD pode reordenar os pacotes e entregá-los fora de ordem. Esse mecanismo de entrega fora de ordem de SRD entrega pacotes em paralelo sobre caminhos alternativos, aumentando o throughput. 

 **Antipadrões comuns:** 
+  Usar o TCP para todas as workloads, independentemente dos requisitos de desempenho. 

 **Benefícios do estabelecimento desta prática recomendada:** 
+  Selecionar o protocolo apropriado para comunicação entre os componentes da carga de trabalho garante que você esteja obtendo a melhor performance para essa carga de trabalho. 
+  Verificar se um protocolo apropriado é usado para comunicação entre usuários e componentes da workload ajuda a melhorar a experiência geral do usuário para as aplicações. Por exemplo, ao usar os protocolos TCP e UDP, as workloads de VDI podem aproveitar a confiabilidade de TCP para dados críticos e a velocidade da UDP para dados em tempo real. 

 **Nível de risco exposto caso essa prática recomendada não seja estabelecida:** médio (usar um protocolo de rede pode resultar em um desempenho insatisfatório, como tempo de resposta lento, alta latência e escalabilidade insatisfatória) 

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

Uma consideração primária para melhorar o desempenho da workload é entender os requisitos de latência e throughput e escolher os protocolos de rede que otimizam o desempenho. 

 **Quando considerar o uso do TCP** 

 O TCP oferece entrega de dados confiável e pode ser usado para comunicação entre componentes da workload em que a confiabilidade e a entrega garantida de dados é importante. Muitas aplicações baseadas na web dependem de protocolos baseados em TCP, como HTTP e HTTPS, para abrir soquetes TCP para comunicação com servidores na AWS. E-mail e transferência de dados de arquivo são aplicações que também utilizam o TCP devido à capacidade dele de controlar a taxa de troca de dados e congestionamento de rede. Usar TLS com TCP pode adicionar uma sobrecarga à comunicação, o que pode resultar em maior latência e menor throughput. A sobrecarga vem principalmente da sobrecarga adicionada do processo de handshake, que pode levar várias idas e voltas para ser concluído. Quando o handshake for concluído, a sobrecarga da criptografia e descriptografia de dados será relativamente pequena. 

 **Quando considerar o uso do UDP** 

 O UDP é um protocolo sem conexão e, portanto, é adequado para aplicações que precisam de uma transmissão rápida e eficiente, como log, monitoramento e dados de VoIP. Além disso, considere usar UDP se você tiver componentes da workload que respondam a pequenas consultas de grandes números de clientes para garantir um desempenho ideal da workload. DTLS (Segurança da camada de transporte do datagrama) é o UDP equivalente do TLS. Ao usar DTLS com UDP, a sobrecarga vem da criptografia e descriptografia de dados, já que o processo de handshake é simplificado. O DTLS também adiciona uma pequena quantidade de sobrecarga aos pacotes de UDP, já que inclui campos adicionais para indicar os parâmetros de segurança e detectar violações. 

 **Quando considerar o uso do SRD** 

 O SRD (datagrama confiável escalável) é um protocolo de transporte de rede otimizado para workloads de alto throughput devido à sua capacidade de fazer o balanceamento de carga do tráfego em vários caminhos e de se recuperar rapidamente de quedas de pacote ou falhas no link. Assim, o SRD é melhor nos casos de workloads de computação de alta performance (HPC) que exigem comunicação de alto throughput e baixa latência entre os nós de computação. Isso pode incluir tarefas de processamento paralelas, como simulação, modelagem e análise de dados que envolvem uma grande quantidade de transferência de dados entre os nós. 

 **Etapas da implementação** 

1.  Use os serviços [AWS Global Accelerator](https://aws.amazon.com/global-accelerator/) e [AWS Transfer Family](https://aws.amazon.com/aws-transfer-family/) para melhorar o throughput de suas aplicações de transferência de arquivos online. O serviço AWS Global Accelerator ajuda você a obter baixa latência entre os dispositivos cliente e a workload na AWS. Com o AWS Transfer Family, é possível usar protocolos baseados em TCP como SFTP (Protocolo de transferência de arquivos de shell seguro) e FTPS (Protocolo de transferência de arquivos por SSL) para escalar e gerenciar com segurança as transferências de arquivo para os serviços de armazenamento da AWS. 

1.  Use a latência de rede para determinar se o TCP é adequado para comunicação entre os componentes da workload. Se a latência de rede entre a aplicação cliente e o servidor for alta, o handshake de três vias do TCP pode levar um tempo, afetando, assim, a capacidade de resposta da aplicação. Métricas como tempo até o primeiro byte (TTFB) e tempo de ida e volta (RTT) podem ser usadas para medir a latência da rede. Se a workload fornecer conteúdo dinâmico aos usuários, considere usar o [Amazon CloudFront](https://aws.amazon.com/cloudfront/), que estabelece uma conexão persistente com cada origem para conteúdo dinâmico visando eliminar o tempo de configuração da conexão que, de outra forma, atrasaria cada solicitação de cliente. 

1.  Usar TLS com TCP ou UDP pode resultar em maior latência e menor throughput para a workload devido ao impacto da criptografia e descriptografia. Para essas workloads, considere o descarregamento de SSL/TLS no [Elastic Load Balancing](https://aws.amazon.com/elasticloadbalancing/) para melhorar o desempenho da workload, permitindo que o balanceador de carga lide com o processo de criptografia e descriptografia de SSL/TLS em vez de deixar que as instâncias de back-end façam isso. Isso pode ajudar a reduzir a utilização da CPU nas instâncias de back-end, o que pode melhorar o desempenho e aumentar a capacidade. 

1.  Use o [Network Load Balancer (NLB)](https://aws.amazon.com/elasticloadbalancing/network-load-balancer/) para implantar serviços que dependem do protocolo UDP, como autenticação e autorização, registro, DNS, IoT e streaming de mídia, visando a melhorar o desempenho e a confiabilidade da workload. O NLB distribui o tráfego de UDP de entrada em vários destinos, permitindo escalar a workload horizontalmente, aumentar a capacidade e reduzir a sobrecarga a um único destino. 

1.  Para workloads de computação de alta performance (HPC), considere usar a funcionalidade [Adaptador de Rede Elástica (ENA) Expresso](https://aws.amazon.com/about-aws/whats-new/2022/11/elastic-network-adapter-ena-express-amazon-ec2-instances/) que usa o protocolo SRD para melhorar o desempenho da rede fornecendo uma largura de banda maior de fluxo único (25 Gbps) e menor latência da cauda (99,9%) para o tráfego de rede entre as instâncias do EC2. 

1.  Use o [Application Load Balancer (ALB)](https://docs.aws.amazon.com/elasticloadbalancing/latest/application/introduction.html) para rotear e balancear a carga do tráfego de gRPC (Chamadas de procedimento remoto) entre os componentes da workload ou entre os serviços e clientes com gRPC habilitadas. As gRPC usam o protocolo HTTP/2 baseado em TCP para transporte e oferece benefícios de desempenho como pegada de rede mais leve, compactação, serialização binária eficiente, suporte para várias linguagens e streaming bidirecional. 

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

 **Documentos relacionados:** 
+  [Instâncias otimizadas para Amazon EBS](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-optimized.html) 
+  [Application Load Balancer](https://docs.aws.amazon.com/elasticloadbalancing/latest/application/introduction.html) 
+  [Rede avançada do EC2 no Linux](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/enhanced-networking.html) 
+  [Rede avançada do EC2 no Windows](https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/enhanced-networking.html) 
+  [Grupos de posicionamento do EC2](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/placement-groups.html) 
+  [Como habilitar a rede avançada com o Elastic Network Adapter (ENA) em instâncias Linux](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/enhanced-networking-ena.html) 
+  [Network Load Balancer](https://docs.aws.amazon.com/elasticloadbalancing/latest/network/introduction.html) 
+  [Produtos de redes com a AWS](https://aws.amazon.com/products/networking/) 
+  [Transit Gateway](https://docs.aws.amazon.com/vpc/latest/tgw) 
+  [Fazer a transição para o encaminhamento por latência no Amazon Route 53](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/TutorialTransitionToLBR.html) 
+  [VPC Endpoints](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-endpoints.html) 
+  [Logs de fluxo da VPC](https://docs.aws.amazon.com/vpc/latest/userguide/flow-logs.html) 

 **Vídeos relacionados:** 
+  [Conectividade com a AWS e arquiteturas de rede híbrida da AWS (NET317-R1)](https://www.youtube.com/watch?v=eqW6CPb58gs) 
+  [Otimização do desempenho da rede para instâncias do Amazon EC2 (CMP308-R1)](https://www.youtube.com/watch?v=DWiwuYtIgu0) 
+ [ Ajuste da nuvem: melhore o desempenho da rede global para aplicações ](https://www.youtube.com/watch?v=00ukhVcgWrs)
+ [ Escalabilidade de aplicações com EFA e SRD ](https://pages.awscloud.com/HPC-Application-Scaling-with-Elastic-Fabric-Adapter-EFA-and-Scalable-Reliable-Datagram-SRD_2020_0004-CMP_OD.html)

 **Exemplos relacionados:** 
+  [AWS Transit Gateway e soluções de segurança escaláveis](https://github.com/aws-samples/aws-transit-gateway-and-scalable-security-solutions) 
+  [AWS Networking Workshops](https://networking.workshop.aws/) (Workshops de redes da AWS) 

# PERF05-BP06 Escolher o local da workload com base nos requisitos de rede
<a name="perf_select_network_location"></a>

Avalie as opções para o posicionamento de recursos visando reduzir a latência da rede e melhorar o throughput, proporcionando uma ótima experiência do usuário ao reduzir os tempos de carregamento da página e de transferência de dados.

 **Nível de exposição a riscos quando esta prática recomendada não for estabelecida:** Médio 

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

Recursos, como instâncias do Amazon EC2, são colocados em zonas de disponibilidade em [Regiões da AWS](https://aws.amazon.com/about-aws/global-infrastructure/regions_az/), [zonas locais da AWS](https://aws.amazon.com/about-aws/global-infrastructure/localzones/), [AWS Outposts](https://aws.amazon.com/outposts/) ou zonas do [AWS Wavelength](https://aws.amazon.com/wavelength/). A escolha desse local influencia o throughput e a latência da rede de determinado local do usuário. Os serviços de borda, como o [Amazon CloudFront](https://aws.amazon.com/cloudfront/) e o [AWS Global Accelerator](https://aws.amazon.com/global-accelerator/), também podem ser usados para melhorar o desempenho da rede, seja armazenando o conteúdo em cache nos locais da borda ou oferecendo aos usuários um ótimo caminho para a workload por meio da rede global da AWS.

 **Etapas da implementação** 

1.  Escolha uma Região da AWS ou mais que sejam adequadas para sua implantação com base nos seguintes elementos fundamentais: 

   1.  **A localização de seus usuários:** a escolha de uma região próxima dos usuários da workload garante baixa latência quando eles usam a workload. 

   1.  **A localização de seus dados:** para aplicações com uso intenso de dados, o maior gargalo na transferência de dados é a latência. O código do aplicativo deve ser executado o mais perto possível dos dados. 

   1.  **Outras restrições:** considere restrições como segurança e conformidade (por exemplo, requisitos de residência de dados). 

1.  Para determinada workload, se um componente consiste em um grupo de instâncias do Amazon EC2 interdependentes que exigem baixa latência, considere o uso de [grupos com posicionamento em cluster](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/placement-groups.html) para influenciar o posicionamento dessas instâncias visando atender aos requisitos da workload. As instâncias no mesmo grupo com posicionamento em cluster aproveitam um limite de throughput mais alto por fluxo para o tráfego TCP/IP e são posicionadas no mesmo segmento de largura de banda de alta bisseção da rede. Os grupos com posicionamento em cluster são recomendados para aplicações que se beneficiam de baixa latência da rede, alto throughput da rede ou de ambos os fatores. 

1.  Para uma workload sensível à localização, por exemplo, com requisitos de baixa latência ou de residência de dados, consulte [Zonas locais da AWS](https://aws.amazon.com/about-aws/global-infrastructure/localzones/) ou [AWS Outposts](https://aws.amazon.com/outposts/). 

   1.  As zonas locais da AWS são um tipo de implantação de infraestrutura que coloca computação, armazenamento, banco de dados e outros serviços selecionados da AWS próximos aos grandes centros industriais e populacionais. 

   1.  O AWS Outposts é uma família de soluções totalmente gerenciadas que oferecem serviços e infraestrutura da AWS a praticamente qualquer local da borda ou on-premises para uma experiência híbrida totalmente consistente. 

1.  Aplicações como streaming de vídeo ao vivo em alta resolução, áudio de alta fidelidade e realidade aumentada/realidade virtual (RA/RV) exigem latência ultrabaixa para dispositivos 5G. Para essas aplicações, considere o [AWS Wavelength](https://aws.amazon.com/wavelength/). O AWS Wavelength incorpora serviços de armazenamento e computação da AWS em redes 5G, fornecendo a infraestrutura móvel de computação de borda para desenvolver, implantar e escalar aplicações de latência ultrabaixa. 

1.  Se você tiver usuários distribuídos geograficamente, poderá usar uma rede de distribuição de conteúdo (CDN) para acelerar a distribuição de conteúdo da web estático e dinâmico ao entregar dados por meio de pontos de presença (POPs) distribuídos globalmente. As CDNs geralmente também fornecem recursos de computação de borda, realizando operações sensíveis à latência, como manipulações de cabeçalho HTTP, reescrita de URL e redirecionamento em grande escala na borda. O [Amazon CloudFront](https://aws.amazon.com/cloudfront/) é um serviço da web que acelera a distribuição de conteúdo da web estático e dinâmico. Os casos de uso para o CloudFront incluem acelerar a entrega de conteúdo de site estático e fornecer vídeo sob demanda ou streaming de vídeo ao vivo. O CloudFront também pode ser usado para personalizar o conteúdo e a experiência dos visualizadores com latência reduzida. 

1.  Algumas aplicações exigem pontos de entrada fixos ou maior desempenho ao reduzir a tremulação e a latência de primeiro byte, além de aumentar o throughput. Essas aplicações podem se beneficiar dos serviços de rede que fornecem endereços IP anycast e terminação TCP em locais da borda. O [AWS Global Accelerator](https://aws.amazon.com/global-accelerator/) pode melhorar o desempenho das aplicações em até 60% e fornecer failover rápido para arquiteturas de várias regiões. O AWS Global Accelerator fornece endereços IP anycast estáticos que funcionam como um ponto de entrada fixo para as aplicações hospedadas em uma ou mais Regiões da AWS. Esses endereços IP permitem que o tráfego entre na rede global da AWS o mais próximo possível dos usuários. O AWS Global Accelerator reduz o tempo de configuração da conexão inicial ao estabelecer uma conexão TCP entre o cliente e o local da borda da AWS mais próximo ao cliente. Analise o uso do AWS Global Accelerator para melhorar o desempenho das workloads de TCP/UDP e forneça failover rápido para arquiteturas de várias regiões. 

1.  Se você tiver aplicações ou usuários on-premises, poderá se beneficiar de uma conexão de rede dedicada entre a rede e a nuvem. Uma conexão de rede dedicada pode reduzir a chance de congestionamento ou aumentos inesperados na latência. O [AWS Direct Connect](https://aws.amazon.com/directconnect/) pode melhorar o desempenho da aplicação conectando a rede diretamente à AWS e ignorando a internet pública. Ao criar uma conexão, é possível escolher uma conexão hospedada fornecida por um parceiro de entrega do AWS Direct Connect ou optar por uma conexão dedicada da AWS e implantar em mais de 100 locais do AWS Direct Connect em todo o mundo. Também é possível reduzir os custos de rede com taxas baixas de transferência de dados fora da AWS e, se você desejar, configurar um Site-to-Site VPN para failover. 

1.  Se você configurar um [Site-to-Site VPN](https://aws.amazon.com/vpn/site-to-site-vpn/) para se conectar aos seus recursos com o AWS, se preferir, poderá habilitar a aceleração. Uma conexão acelerada do Site-to-Site VPN usa o AWS Global Accelerator para rotear o tráfego da rede on-premises para um local da borda da AWS que esteja o mais próximo do dispositivo de gateway do cliente. 

1.  Identifique qual opção de roteamento de DNS otimizaria o desempenho da workload analisando o tráfego da workload e o local do usuário. O [Amazon Route 53](https://aws.amazon.com/route53) oferece opções de [roteamento baseado em latência](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/routing-policy-latency.html), [roteamento por geolocalização](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/routing-policy-geo.html), [roteamento por geoproximidade](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/routing-policy-geoproximity.html) e [roteamento baseado em IP](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/routing-policy-ipbased.html) para ajudar a melhorar o desempenho da workload para o público global. 

   1.  O Route 53 também oferece baixa latência de consulta para os usuários finais. Usando uma rede anycast global de servidores DNS em todo o mundo, o Route 53 foi desenvolvido para responder automaticamente as consultas do local ideal, dependendo das condições de rede. 

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

 **Práticas recomendadas relacionadas:** 
+ [COST07-BP02 Implementar regiões com base nos custos](https://docs.aws.amazon.com/wellarchitected/latest/framework/cost_pricing_model_region_cost.html)
+ [ COST08-BP03 Implantar serviços para reduzir custos de transferência de dados ](https://docs.aws.amazon.com/wellarchitected/latest/framework/cost_data_transfer_implement_services.html)
+ [ REL10-BP01 Implantar a workload em vários locais ](https://docs.aws.amazon.com/wellarchitected/latest/framework/rel_fault_isolation_multiaz_region_system.html)
+ [ REL10-BP02 Escolher os locais apropriados para sua implantação de vários locais ](https://docs.aws.amazon.com/wellarchitected/latest/framework/rel_fault_isolation_select_location.html)
+ [ SUS01-BP01 Escolher regiões próximas aos projetos de energia renovável da Amazon e regiões onde a rede tem uma pegada de carbono publicada menor que em outros locais (ou regiões) ](https://docs.aws.amazon.com/wellarchitected/latest/framework/sus_sus_region_a2.html)
+ [SUS02-BP04 Otimizar a localização geográfica de workloads para locais dos usuários](https://docs.aws.amazon.com/wellarchitected/latest/framework/sus_sus_user_a5.html)
+ [ SUS04-BP07 Minimizar a movimentação de dados entre redes ](https://docs.aws.amazon.com/wellarchitected/latest/framework/sus_sus_data_a8.html)

 **Documentos relacionados:** 
+ [ Infraestrutura global da AWS](https://aws.amazon.com/about-aws/global-infrastructure/)
+ [AWS Local Zones and AWS Outposts, choosing the right technology for your edge workload ](https://aws.amazon.com/blogs/compute/aws-local-zones-and-aws-outposts-choosing-the-right-technology-for-your-edge-workload/)(Zonas locais da AWS e AWS Outposts: como escolher a tecnologia certa para sua workload de borda)
+  [Grupos de posicionamento](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/placement-groups.html) 
+  [AWS Local Zones](https://aws.amazon.com/about-aws/global-infrastructure/localzones/) 
+  [AWS Outposts](https://aws.amazon.com/outposts/) 
+  [AWS Wavelength](https://aws.amazon.com/wavelength/) 
+  [Amazon CloudFront](https://aws.amazon.com/cloudfront/) 
+  [AWS Global Accelerator](https://aws.amazon.com/global-accelerator/) 
+  [AWS Direct Connect](https://aws.amazon.com/directconnect/) 
+  [Site-to-Site VPN](https://aws.amazon.com/vpn/site-to-site-vpn/) 
+  [Amazon Route 53](https://aws.amazon.com/route53) 

 **Vídeos relacionados:** 
+ [AWS Local Zones Explainer Video ](https://www.youtube.com/watch?v=JHt-D4_zh7w)(Vídeo de explicação sobre as zonas locais da AWS)
+ [AWS Outposts: Overview and How It Works ](https://www.youtube.com/watch?v=ppG2FFB0mMQ)(AWS Outposts: visão geral e funcionamento)
+ [AWS re:Invent 2021 - AWS Outposts: Bringing the AWS experience on premises ](https://www.youtube.com/watch?v=FxVF6A22498)(AWS re:Invent 2021 – AWS Outposts: traga a experiência da AWS para o ambiente on-premises)
+ [AWS re:Invent 2020: AWS Wavelength: Run apps with ultra-low latency at 5G edge ](https://www.youtube.com/watch?v=AQ-GbAFDvpM)(AWS re:Invent 2020: AWS Wavelength: execute aplicações com latência ultrabaixa a borda 5G)
+ [AWS re:Invent 2022 - AWS Local Zones: Building applications for a distributed edge ](https://www.youtube.com/watch?v=bDnh_d-slhw)(AWS re:Invent 2022 – Zonas locais da AWS: criar aplicações para uma borda distribuída)
+ [AWS re:Invent 2021 - Building low-latency websites with Amazon CloudFront ](https://www.youtube.com/watch?v=9npcOZ1PP_c)(AWS re:Invent 2021: criar sites de baixa latência com o Amazon CloudFront)
+ [AWS re:Invent 2022 - Improve performance and availability with AWS Global Accelerator](https://www.youtube.com/watch?v=s5sjsdDC0Lg)(AWS re:Invent 2022: melhore o desempenho e a disponibilidade com o AWS Global Accelerator)
+ [AWS re:Invent 2022 - Build your global wide area network using AWS](https://www.youtube.com/watch?v=flBieylTwvI)(AWS re:Invent 2022: crie sua rede de longa distância global usando a AWS)
+ [AWS re:Invent 2020: Global traffic management with Amazon Route 53 ](https://www.youtube.com/watch?v=E33dA6n9O7I)(AWS re:Invent 2020: gerenciamento de tráfego global com o Amazon Route 53)

 **Exemplos relacionados:** 
+ [Workshop sobre o AWS Global Accelerator](https://catalog.us-east-1.prod.workshops.aws/workshops/effb1517-b193-4c59-8da5-ce2abdb0b656/en-US)
+ [ Handling Rewrites and Redirects using Edge Functions ](https://catalog.us-east-1.prod.workshops.aws/workshops/814dcdac-c2ad-4386-98d5-27d37bb77766/en-US)(Lidar com reescritas e redirecionamentos usando funções da borda)

# PERF05-BP07 Otimizar a configuração da rede com base em métricas
<a name="perf_select_network_optimize"></a>

Uma configuração incorreta da rede geralmente afeta o desempenho, a eficiência e o custo da rede. Em ambientes de rede comuns, para concluir rapidamente a implantação em um estágio inicial, a configuração correta de rede não é totalmente considerada em termos do desempenho da rede. Para otimizar a configuração da rede, é necessário primeiro ter visibilidade e dados sobre o ambiente de rede.

Para entender como está o desempenho dos recursos da rede, colete e analise dados para tomar decisões embasadas sobre como otimizar a configuração da rede. Meça o impacto dessas mudanças e use as medições de impacto para tomar decisões futuras. 

 **Resultado desejado:** use ferramentas de monitoramento de rede e métricas para otimizar a configuração da rede à medida que as workloads evoluem. É possível otimizar as redes baseadas na nuvem rapidamente, portanto, é necessário evoluir sua arquitetura de rede ao longo do tempo para manter a eficiência do desempenho. 

 **Antipadrões comuns:** 
+  Você pressupõe que todos os problemas relacionados à performance são relacionados ao aplicativo. 
+  Você só testa a performance da rede a partir de um local próximo ao local em que implantou a carga de trabalho. 
+  Você usa configurações-padrão para todos os serviços de rede. 
+  Você provisiona em excesso recursos de rede para fornecer capacidade suficiente. 

 **Benefícios do estabelecimento dessa prática recomendada:** coletar as métricas necessárias da rede da AWS e implementar ferramentas de monitoramento de rede permite entender o desempenho da rede e otimizar as configurações dela. 

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

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

 Monitorar o tráfego de entrada e saída das VPCs, sub-redes ou interfaces de rede é fundamental para entender como utilizar os recursos de rede da AWS e como é possível otimizar as configurações da rede. Ao usar as ferramentas a seguir, é possível verificar mais informações sobre o uso do tráfego, o acesso à rede e os logs. 

 **Etapas da implementação** 

1.  Use o [Amazon VPC IP Address Manager](https://docs.aws.amazon.com/vpc/latest/ipam/what-it-is-ipam.html). É possível usar o IPAM para planejar, rastrear e monitorar endereços IP para workloads da AWS e on-premises. Essa é a prática recomendada para otimizar o uso e a alocação de endereços IP. 

1.  Ative os [logs de fluxo da VPC](https://docs.aws.amazon.com/vpc/latest/userguide/flow-logs.html). Use os logs de fluxo da VPC para obter informações detalhadas sobre o tráfego de entrada e saída das interfaces de rede nas VPCs. Com os logs de fluxo da VPC, é possível diagnosticar regras extremamente restritivas ou permissivas do grupo de segurança e determinar a direção do tráfego de entrada e saída das interfaces de rede. Cobranças por ingestão e arquivamento de dados de logs vendidos incorrem quando você publica logs de fluxo. 

1.  Ative o [registro de consultas ao DNS](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/query-logs.html). É possível configurar o Amazon Route 53 para registrar informações sobre consultas ao DNS públicas ou privadas que o Route 53 recebe. Com os logs de DNS, é possível otimizar as configurações de DNS entendendo o domínio ou subdomínio solicitado ou os locais da borda do Route 53 que responderam às consultas ao DNS. 

1.  Use o [Reachability Analyzer](https://docs.aws.amazon.com/vpc/latest/reachability/what-is-reachability-analyzer.html) para analisar e depurar a capacidade de alcance da rede. O Reachability Analyzer é uma ferramenta de análise de configuração que permite realizar testes de conectividade entre um recurso da origem e um do destino nas VPCs. Essa ferramenta ajuda a verificar se a configuração da rede corresponde à conectividade pretendida. 

1.  Use o [Analisador de Acesso à Rede](https://docs.aws.amazon.com/vpc/latest/network-access-analyzer/what-is-network-access-analyzer.html) para entender o acesso à rede para seus recursos. É possível usar o Analisador de Acesso à Rede para especificar os requisitos de acesso à rede e identificar possíveis caminhos de rede que não atendem aos requisitos especificados. Ao otimizar a configuração da rede correspondente, é possível entender e verificar o estado da rede e demonstrar se a rede na AWS atende aos seus requisitos de conformidade. 

1.  Use o [Amazon CloudWatch](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/WhatIsCloudWatch.html) e habilite as métricas apropriadas para opções de rede. Escolha a métrica certa para sua workload. Por exemplo, é possível habilitar métricas para o uso do endereço de rede da VPC, o gateway NAT da VPC, o AWS Transit Gateway, o túnel da VPC, o AWS Network Firewall, o Elastic Load Balancing e o AWS Direct Connect. Monitorar continuamente as métricas é uma prática recomendada para observar e entender o status e o uso da rede, e ajuda a otimizar a configuração da rede com base em suas observações. 

 **Nível de esforço do plano de implementação:** médio 

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

 **Documentos relacionados:** 
+  [Logs de fluxo da VPC](https://docs.aws.amazon.com/vpc/latest/userguide/flow-logs.html) 
+ [ Log de consultas de DNS pública ](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/query-logs.html)
+ [ O que é o IPAM? ](https://docs.aws.amazon.com/vpc/latest/ipam/what-it-is-ipam.html)
+  [O que é o Reachability Analyzer?](https://docs.aws.amazon.com/vpc/latest/reachability/what-is-reachability-analyzer.html) 
+ [ What is Network Access Analyzer? ](https://docs.aws.amazon.com/vpc/latest/network-access-analyzer/what-is-network-access-analyzer.html)(O que é o Analisador de Acesso à Rede?)
+ [ Métricas do CloudWatch para suas VPCs ](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-cloudwatch.html)
+ [ Optimize performance and reduce costs for network analytics with VPC Flow Logs in Apache Parquet format ](https://aws.amazon.com/blogs/big-data/optimize-performance-and-reduce-costs-for-network-analytics-with-vpc-flow-logs-in-apache-parquet-format/)(Otimize o desempenho e reduza os custos de análise da rede com os logs de fluxo da VPC no formato Apache Parquet)
+  [Monitoring your global and core networks with Amazon Cloudwatch metrics](https://docs.aws.amazon.com/vpc/latest/tgwnm/monitoring-cloudwatch-metrics.html) (Monitoramento de suas redes globais e principais com as métricas do Amazon CloudWatch) 
+  [Continuously monitor network traffic and resources](https://docs.aws.amazon.com/whitepapers/latest/security-best-practices-for-manufacturing-ot/continuously-monitor-network-traffic-and-resources.html) (Monitore continuamente o tráfego e os recursos da rede) 

 **Vídeos relacionados:** 
+ [ Networking best practices and tips with the Well-Architected Framework ](https://www.youtube.com/watch?v=wOMNpG49BeM)(Práticas recomendadas e dicas de redes com o Well-Architected Framework)
+ [ Monitoring and troubleshooting network traffic ](https://www.youtube.com/watch?v=Ed09ReWRQXc)(Monitoramento e resolução de problemas de tráfego de rede)

 **Exemplos relacionados:** 
+  [AWS Networking Workshops](https://networking.workshop.aws/) (Workshops de redes da AWS) 
+  [Monitoramento de rede da AWS](https://github.com/aws-samples/monitor-vpc-network-patterns) 