Tenho três clientes que usam MariaDB para seus aplicativos.
Por questão de segurança, criei uma VM para cada um deles que possui 2vCPU e 4GB de RAM.
Mas eu queria saber se fundir seus servidores seria uma má ideia, já que eles se beneficiariam de um servidor MUITO mais poderoso e isso me custaria um pouco menos em taxas de nuvem.
Quais seriam os benefícios em termos de potência versus segurança?
Primeiro, você quer ter recursos separados entre usuários ou não? Realmente não há como limitar o consumo de recursos por usuário ou por esquema no MySQL. Existem algumas coisas como o número de conexões, mas geralmente é irrelevante no grande esquema das coisas. Se você precisar garantir que nenhum dos usuários possa impactar outros, sua opção é separá-los usando VMs.
Algum tipo de alternativa seria executar processos separados do MySQL em uma única VM. Então você pode usar limites de recursos baseados no sistema (cgroups, por exemplo) para impor algumas limitações. Não é o mesmo que separar VMs, mas é melhor que um único processo MySQL. Por outro lado, configurar e gerenciar múltiplos processos MySQL é muito mais complexo e irritante no longo prazo do que ter um único MySQL rodando em uma única VM.
Então falamos de privilégios. Os usuários precisam de privilégios elevados ou não? Se sim, você não pode usar um único MySQL para isso. Se os usuários precisarem ter acesso aos logs ou gerenciar a replicação, isso também será impossível. Nesse caso você deve criar um único MySQL para cada um de seus clientes.
Resumindo, existem muitas maneiras de executar o MySQL ou o MariaDB, dependendo dos requisitos que você possui. Lembre-se de que a complexidade das operações também é algo que você precisa levar em consideração. Não é apenas a VM que tem seu preço; o tempo gasto no gerenciamento e na depuração de problemas de desempenho também tem seu preço.