Balanceamento de carga RDS (na AWS)

5

Sou novo na AWS em geral, por isso pode ser uma questão noob. Eu configurei uma instância do RDS com uma readreplica & conectei minhas VMs ao DB principal por enquanto via AWS Opsworks. O ideal é que eu queira que as leituras sejam balanceadas entre mestre e escravo e que as gravações sigam somente para o mestre.

É claro que faço isso no código, mas isso será confuso, especialmente se eu quiser adicionar mais RDS Slaves ou se eu excluir uma ou mais das minhas instâncias.

Então, há algo que perdi? Existe alguma configuração que a AWS fornece e que eu ainda não encontrei para fazer isso perfeitamente?

    
por Ram G Athreya 11.09.2014 / 09:15

1 resposta

4

A AWS não suporta (atualmente) o balanceamento de carga de instâncias do RDS dessa maneira, portanto você precisaria implementar esse tipo de coisa sozinho. Há várias abordagens diferentes que você pode seguir para criar algo assim:

  1. Como você afirmou, você poderia fazer isso em seu próprio código, o que seria um pouco confuso.

  2. Você pode tentar usar o DNS round-robin para implementar uma forma básica de balanceamento de carga. Se você não está familiarizado com o DNS round-robin, é basicamente uma maneira de usar o DNS para retornar diferentes endereços IP para cada consulta. Consulte a documentação da Amazon no roteamento ponderado para obter mais informações sobre configurando isso no Route53.

  3. Você pode incorporar um balanceador simples de proxy / carga como HAProxy ou balance ou em um de seus servidores de aplicativos existentes ou em uma pequena instância separada e permita gerenciar o balanceamento de carga entre as instâncias do RDS.

Provavelmente, há outras opções (incluindo outros aplicativos de balanceamento de carga), mas uma delas provavelmente será a solução mais simples para suas necessidades.

    
por 12.09.2014 / 16:04