Postgres: Saiba como descobrir qual região da Vercel tem a melhor latência para sua aplicação

Se você já criou um banco de dados Postgres dentro da Vercel, deve ter percebido que se trata de uma integração entre a Neon (neon.tech) e a Vercel. O processo de criaçao é simples, mas você pode ter se deparado com a seguinte dúvida na hora de subir seu banco: qual região escolher?

As opções de região são as abaixo, e apesar de ser óbvio que escolher um servidor nos EUA te trará menor que latência no Brasil que escolher um em Frankfurt (Alemanha), ainda fica a dúvida: qual das três opções nos EUA seria a melhor?

Set up this new Postgres Database

Bem, foi aí começou meu processo de investigação. Fazendo uma busca rápida no Google, é possível achar neste link, onde a Neon aloca alguns de seus recursos (veja depois se quiser).

São data centers (DCs) da AWS, e apersar dos nomes dos DCs da Neon não baterem com os da AWS (lista abaixo), se você pesquisar os locais, verá que a Neon na verdade optou por nomear suas regiões usando os nomes das cidades, onde se encontram os DCs, enquanto a Amazon optou pelos estados!

AWS - US East (N. Virginia) — aws-us-east-1 ---> Neon - Washington, D.C., USA - (iad1)
AWS - US East (Ohio) — aws-us-east-2        ---> Neon - Cleveland, USA - (cle1)
AWS - US West (Oregon) — aws-us-west-2      ---> Neon - Portland, USA - (pdx1)

Feito o reconhecimento de em qual data center da AWS seu banco da Neon será levantado, o próximo passo é descobrir a latência entre sua aplicação e os DCs da AWS.

Graças ao bom Pai (e a algum bom funcionário da AWS) a Amazon mantém uma lista de endereços públicos para você testar a comunicação com seus DCs, eu até fiz uma postagem no meu blog com a relação completa deles mas vou deixar a lista para os três DCs que a Neon usa a seguir também:

Para testar, execute um PING da sua aplicação para os endereços abaixo:

Neon - Washington, D.C., USA - (iad1) ---> ping ec2.us-east-1.amazonaws.com
Neon - Cleveland, USA - (cle1)        ---> ping ec2.us-east-2.amazonaws.com 
Neon - Portland, USA - (pdx1)         ---> ping ec2.us-west-2.amazonaws.com

Aqui estão os resultados do teste a partir do servidor Linux da minha aplicação no Brasil. E já dou o spoiler que para o Brasil geralmente a menor latência é sempre de N. Virginia, que tem boas rotas para cá.

--- ec2.us-east-1.amazonaws.com ping statistics ---
10 packets transmitted, 10 received, 0% packet loss, time 9013ms
rtt min/avg/max/mdev = 148.876/194.751/239.943/29.578 ms

--- ec2.us-east-2.amazonaws.com ping statistics ---
10 packets transmitted, 10 received, 0% packet loss, time 9011ms
rtt min/avg/max/mdev = 190.361/230.291/272.651/27.946 ms

--- ec2.us-west-2.amazonaws.com ping statistics ---
10 packets transmitted, 10 received, 0% packet loss, time 9013ms
rtt min/avg/max/mdev = 227.054/280.382/315.725/33.063 ms

Dica final: caso você não tenha acesso ao terminal de comando do seu servidor, você pode tentar executar um PING através da sua aplicação.

Vi aqui que quando você cria um banco da Neon direto no site deles (e não por dentro da Vercel), por algum motivo eles listam os estados e não as cidades dos datacenters, daí fica mais fácil, é só escolher o endpoint correto olhando os estados, e testar com ping.

Neon DBs

Bacana a dica, serve inclusive para testar outras infra em cloud.