Tenho um servidor cliente localizado na AWS e quero reduzir a latência entre a máquina dele e minha instância EC2. Aluguei dois servidores iguais em uma zona de disponibilidade e comecei a enviar solicitações para a API do cliente. Descobriu-se que esses servidores têm latências diferentes: os percentis 95 foram diferentes por cerca de 5 milissegundos (ou seja, cerca de 30% da latência média). E meu objetivo é reduzir a latência.
Acho que posso alugar mais servidores e repetir essas experiências, mas será o próximo passo da minha investigação. O primeiro passo para mim é entender os motivos pelos quais servidores na mesma zona apresentam diferença tão grande na latência de resposta da API e quais métricas podem ser úteis para explicar isso?
A segunda maneira de reduzir a latência é alugar um servidor bare metal em vez do EC2, mas parece ser muito caro. E temo que alugar este servidor seja ainda pior se ele ficar mais longe do servidor cliente.
Então, me diga por favor:
- Você tem algum conselho sobre como reduzir a latência?
- Como posso alugar o servidor mais próximo do meu cliente na mesma zona AWS?
Responder1
Mesmo ao iniciar na mesma AZ, suas instâncias do EC2 podem estar em data centers diferentes. Será uma merda reuni-los por tentativa e erro.
Dê uma olhada em "Grupos de canais". Eles são usados ao iniciar várias instâncias do EC2 para que sejam lançadas nos mesmos data centers, reduzindo a latência entre elas.
Se você tiver uma instância do EC2 existente que não esteja em um grupo de posicionamento, não acho que será possível adicioná-la a um grupo de posicionamento.
Responder2
Você pode começar certificando-se de que suas instâncias estejam no mesmo AZ físico, o que nem sempre significa o mesmo prédio. No Resource Access Manager (RAM), há um mapeamento do seu AZ ID lógico para o AZ ID físico. Isso é aleatório entre contas - AZ-A na sua conta pode ser AZ-C em outra conta. Isso ocorre porque a maioria das pessoas coloca a maior parte dos recursos no AZ-A, então isso equilibra as coisas.
Além disso, não acho que você possa fazer muito além de tentativa e erro para obter uma instância com baixa latência para sua máquina cliente. Eu tenho certezaGrupos de canaisconforme mencionado acima, são para uma única conta; portanto, se você precisar de latência ultrabaixa (5 ms não é ruim), talvez seja necessário estar na mesma conta.