Cara, eu gosto do Cloud Run pela facilidade. Mas ele pode ficar potencialmente caro. Uma pessoa com um socket ativado mantém a conexão 100% ativa. Se várias pessoas se conectarem, oncloud run vai subir novos containers pra dar conta das requisições. O grande problema é que os sockets, como seguram a conexão aberta, mesmo se nao estiver precisando de vários containers abertos, estes ainda continuarão abertos devido ao socket. Pq isso acontece?
Acontece pq geralmente servidores serverless não aceitam sockets, justamente por essa questão. O socket é uma conexão biderecional aberta especificamente com uma máquina. E o serverless precisa ter a liberdade de subir e remover máquinas o tempo todo pra manter seu sistema respondendo rápido e sem gargalo. A forma como o cloud run resolveu isso foi mantendo a conexão amarrada em um container específico. Ou seja, ele mantém a máquina ligada mesmo sem necessidade.
Aí no cloud run, você paga por requisições em múltiplos de 100ms. Se você segura uma máquina ligada 24h pq está conectada ao socket, é como que você estivesse com ela conectada o tempo todo e isso vai gerar custo. Vai ser um custo baixo se for só uma máquina, mas na escala pode ficar muito cara.
Se você vai usar sockets, recomendo que você alugue uma máquina no compute engine. Pelo menos ela ja fica ligada o tempo todo mesmo e você já sabe quanto vai gastar.
Na Google cloud você pode ter uma instância do E2-micro gratuita. Normalmente ela é suficiente pra cargas baixas. Se seu sistema aumentar, você aumenta ela também. Mas aí você já estará ganhando dinheiro e fica tudo certo.
Lá na aws tem o Amazon lightsail que dá máquinas bem parrudas grátis por 3 meses. Você pode começar por lá tbm.