DynamoDB para Sessões de Usuários na AWS

DynamoDB para Sessões de Usuários na AWS

Um dos grandes desafios dos ambientes web escaláveis é exatamente o gerenciamento das sessões de usuários. Por padrão os servidores web armazenam as sessões dos usuários no disco local, uma medida simples e funcional. Porém, quando existe mais de um servidor web atendendo aos usuários da aplicação, o modelo padrão de armazenamento de sessão no disco dificulta o processo de escalonamento de servidores, uma vez que, por exemplo, o servidor número 2 não consegue acessar os dados de sessão do usuário no disco do servidor número 1.

A imagem deste post (acima) é um caso típico deste cenário: utilizamos o autoscaling da Amazon Web Services para escalar dinamicamente novos servidores web, paralelamente para atender aos usuários da aplicação.

Repare que sempre existe um Elastic Load Balancing à frete da camada de servidores web, responsável por distribuir o tráfego dos usuários entre os servidores internos.

 

Usando o Stickiness do Elastic Load Balancing

A solução mais simples (no entanto longe de ser a melhor) para este caso é utilizar a função Stickiness (sticky) do Elastic Load Balancing, que é bastante similar aos load balancers tradicionais, fora da nuvem.

Neste modelo, o loadbalancer “mapeia” as conexões dos usuários sempre para o mesmo servidor web, impedindo que o usuário “troque” de servidor web enquanto a sua sessão durar. O problema é que esta medida impede que um balanceamento de carga perfeito ocorra. Além disso, caso um servidor interno seja removido, as sessões dos usuários que ali estavam é perdida.

Para maiores informações sobre como opera o stickiness do ELB, confira a documentação da AWS.

 

Usando o DynamoDB para armazenar as sessões

A solução mais recomendada na AWS para gerenciamento de sessões de usuários, para os casos onde é possível customizar a aplicação, é usar o DynamoDB.

Trata-se de um banco de dados não relacional (NoSQL) extremamente rápido (a base de servidores usa discos SSD), altamente disponível (utiliza múltiplas Availability Zones da AWS), e totalmente gerenciado pela AWS. Como todos os serviços da AWS, para usar o DynamoDB você paga somente o que precisa usar, com um custo reduzido.

Basicamente, é preciso criar uma tabela no DynamoDB e utilizar o respectivo SDK da AWS para integrar de maneira quase transparente a iniciação de sessões da aplicação no DynamoDB.

Veja o detalhamento da documentação da AWS:

DynamoDB para aplicações PHP

DynamoDB para aplicações no Tomcat

DynamoDB para aplicação .NET

[contact-form-7 id=”2002″ title=”Newsletter (fimdepost)”]

 

 

 

Compartilhe esta publicação:

Artigos Populares

Entre em
CONTATO

Para descobrir como nossos serviços auxiliam os seus negócios, entre em contato conosco.

Tem alguma dúvida?
LIGUE PRA NÓS!

Olá!

Gostaria de receber uma ligação?

NÓS TE LIGAMOS
Informe seu telefone que entraremos em contato o mais rápido possível.
Gostaria de agendar e receber uma chamada em outro horário?
Deixe sua mensagem! Entraremos em contato o mais rápido possível.