AWS: Podemos considerar ter múltiplas instâncias EC2 e RDS para um único produto como escalabilidade horizontal?

AWS: Podemos considerar ter múltiplas instâncias EC2 e RDS para um único produto como escalabilidade horizontal?

O que li no stack overflow e em outros blogs-

https://stackoverflow.com/questions/11707879/difference-between-scaling-horizontalmente-and-vertical-for-databases/11715598#11715598

http://ht.ly/cAhY6

https://hackernoon.com/database-scaling-horizontal-and-vertical-scaling-85edd2fd9944

https://stackoverflow.com/questions/27157227/can-relational-database-scale-horizontalmente

Conceito: aplicativo web multilocatário (CRM)

Depois de resumir todos os blogs mencionados acima, fiquei confuso. Eu tenho o seguinte cenário

  • Ter várias instâncias EC2 e instâncias RDS para um único produto - Aqui planejamos que uma instância EC2 terá um RDS e planos de failover. Vamos com a figura 25, as solicitações de inquilinos serão tratadas em uma instância do EC2 e os dados serão gerenciados no RDS correspondente. Outra instância EC2 e RDS serão gerenciados para outro conjunto de 25 locatários. Cada instância do EC2 terá a mesma base de código.

Podemos dizer - é uma escala horizontal? Se não, o que deve ser feito para obter a escala horizontal exata?

Responder1

Escala horizontalnormalmente significa que você tem uma frota deservidores indiferenciadosonde cada servidor pode servirqualquersolicitar. E você aumenta ou diminui a capacidade adicionando ou removendo mais servidores iguais.

Comescala verticalvocê simplesmente atualizaria seu servidor para uma capacidade maior, por exemplo, uma instância maior com mais CPUs e mais memória.

Para escalabilidade horizontal na AWS, você normalmente teria:

  • frota deservidores sem estadoque são todos configurados da mesma maneira e não armazenam nenhumdados do usuárioe pode ser adicionado automaticamente sem configuração adicional e removido a qualquer momento sem qualquer perda de dados.
  • dados do usuário armazenados em umbase de dados(por exemplo, RDS), em umsistema de arquivos compartilhado(por exemplo, EFS) ou em umarmazenamento de objetos(por exemplo, S3), não nos servidores reais.
  • balanceador de cargadistribuindo a carga de maneira aproximadamente igual entre os servidores (por exemplo, instâncias EC2, contêineres Fargate, etc.)
  • automáticoescalonamento de capacidadeou seja, adicionar e remover servidores com base na carga real.

As definições podem variar, mas eu não chamaria sua configuração de escala horizontal, pois você simplesmente adicionou outra instância para suportar umcarga de trabalho independente(seu outro conjunto de locatários) e não adicionou mais capacidade para suportar a mesma carga de trabalho que o primeiro nó.

Espero que ajude :)

informação relacionada