PERF05-BP05 Escolher os protocolos de rede para melhorar o desempenho
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)
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
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
-
Use os serviços AWS Global Accelerator
e 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. -
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
, 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. -
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
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. -
Use o Network Load Balancer (NLB)
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. -
Para workloads de computação de alta performance (HPC), considere usar a funcionalidade Adaptador de Rede Elástica (ENA) Expresso
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. -
Use o Application Load Balancer (ALB) 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
Documentos relacionados:
Vídeos relacionados:
Exemplos relacionados:
-
AWS Networking Workshops
(Workshops de redes da AWS)