O Amazon EC2 ELB direciona o carregamento para outras instâncias e armazenamentos de sessão

2
  1. Se aumentarmos a escala (adicionar uma instância ao ELB), poderemos redirecionar algumas solicitações existentes para a nova instância. Assim, os usuários que forçamos a um novo servidor serão solicitados a efetuar login novamente

  2. Se reduzirmos a escala (remover uma instância do ELB), todos os usuários desse servidor serão redirecionados automaticamente pelo ELB para outros servidores restantes. Este usuário não deve ser solicitado a fazer login novamente.

Isso é possível (incluindo o redirecionamento da solicitação)? Como?

Todas as ideias são bem-vindas, mas presumo que isso possa ser resolvido usando um armazenamento de sessão central. Eu só não sei como implementá-lo.

E quais são as opções de usar um armazenamento de sessão central? simpledb? redis? memcached?

ATUALIZADO:

Nossa aplicação é apenas uma simples aplicação web hospedada no apache. Nós temos duas instâncias dele adicionadas ao Amazon ELB, e estamos usando PHP.

Alguma sugestão específica de ELB php? quando ocorre uma queda de escala, não é necessário mostrar nenhum sintoma visível ao usuário?

    
por Aivan Monceller 07.07.2011 / 00:55

1 resposta

2

Sim, você pode resolver todos esses problemas e muito mais com o uso de um armazenamento de sessão centralizado. Sem conhecer o seu aplicativo, é impossível apontar um guia definitivo para implementá-lo (e seria uma pergunta do Stack Overflow), mas geralmente é tão simples quanto definir uma opção (em frameworks como Rails) para escrever algumas linhas. de código de cola que é chamado pela estrutura da Web e que se conecta à loja para armazenar os detalhes ou recuperá-los.

Quanto ao que usar, recomendo o Redis. Embora o memcached pareça fazer o truque, ele tem a desvantagem desagradável de exigir que os usuários efetuem login novamente sempre que você precisar reiniciar suas instâncias do memcached. Uma boa regra a seguir em sistemas redundantes é que nenhuma alteração na sua infraestrutura deve mostrar qualquer sintomas visíveis ao usuário. O Redis, por outro lado, persiste no disco, é incrivelmente rápido tanto na atualização quanto na recuperação, e tem se mostrado incrivelmente robusto nas situações de grande escala em que eu o usei.

    
por 07.07.2011 / 01:12