As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
HA e escalabilidade automática para aplicativos ASP.NET Web Forms em AWS
Quando você migra seus aplicativos herdados do ASP.NET Web Forms para AWS, alcançar alta disponibilidade é uma consideração fundamental. Você pode usar grupos e balanceadores de carga do Amazon EC2 Auto Scaling para distribuir o tráfego em várias instâncias. EC2 No entanto, muitos aplicativos ASP.NET Web Forms dependem muito do estado da sessão, o que os torna inerentemente monitorados. Por padrão, o servidor armazena a sessão gerada IDs na memória e envia o ID de volta ao cliente por meio de um cookie. Essa abordagem se torna problemática quando você tenta executar o mesmo aplicativo em várias EC2 instâncias, porque cada instância mantém seu próprio estado de sessão, levando a experiências de usuário inconsistentes e à possível perda de dados.
Para enfrentar esse desafio e garantir que seu aplicativo ASP.NET Web Forms migrado possa ser escalado perfeitamente em várias instâncias enquanto mantém o estado da sessão, você tem duas opções principais: habilitar sessões fixas ou usar armazenamento de backup compartilhado.
Habilitar sessões fixas para o &ALB
Ativado AWS, você pode configurar os Application Load Balancers para usar sessões fixas, também conhecidas como afinidade de sessão. Quando você ativa sessões fixas, o Application Load Balancer encaminha as solicitações subsequentes do mesmo cliente para a EC2 mesma instância. Isso garante que o estado da sessão do usuário seja preservado em todas as interações com o aplicativo.
Essa abordagem fornece uma solução simples, mas tem limitações em termos de escalabilidade e tolerância a falhas. Se uma EC2 instância falhar ou ficar indisponível, a sessão fixa será interrompida e o estado da sessão do usuário será perdido. Além disso, sessões permanentes podem levar a uma distribuição desigual da carga entre as instâncias e, potencialmente, causar contenção ou subutilização de recursos, o que limita a capacidade do aplicativo de escalar com eficiência. Por esses motivos, recomendamos que você use um armazenamento de apoio compartilhado para armazenamento de sessões.
Use um armazenamento de apoio compartilhado para armazenamento de sessões
A abordagem recomendada para migrar aplicativos ASP.NET Web Forms com estado AWS é usar um armazenamento de apoio compartilhado para armazenamento de sessões. Em vez de depender do estado da sessão na memória em EC2 instâncias individuais, o aplicativo pode armazenar dados da sessão em uma solução de armazenamento altamente disponível e escalável, como Amazon DynamoDB, Amazon Relational
Ao usar um armazenamento de apoio compartilhado, você separa o estado da sessão das EC2 instâncias individuais para que o aplicativo possa ser escalado perfeitamente em várias instâncias sem perder os dados da sessão. Essa abordagem também melhora a tolerância a falhas, pois os dados da sessão persistem independentemente das instâncias do aplicativo, o que garante que as sessões do usuário não sejam perdidas mesmo se a instância falhar ou durante eventos de escalabilidade.
Para configurar seu aplicativo ASP.NET Web Forms para usar o Redis como um armazenamento de apoio compartilhado para armazenamento de sessões:
Crie um novo grupo de segurança para o cluster. O grupo de segurança deve permitir solicitações de entrada para o Redis, que usa a porta TCP 6379.
Inicie um novo cluster Redis. Certifique-se de especificar o grupo de segurança que você criou na primeira etapa.
Obtenha o endereço do endpoint da instância que você acabou de criar. Você deve esperar alguns minutos para que o cluster seja iniciado antes que o endereço fique disponível.
Modifique o
web.config
arquivo e adicione a seguinte configuração:<sessionState mode="Custom" customProvider="RedisStateStore"> <providers> <add name="RedisStateStore" type="Microsoft.Web.Redis.RedisSessionStateProvider" host="[YourRedisClusterEndpoint]" accessKey="" ssl="true" /> </providers> </sessionState>
[YourRedisClusterEndpoint]
Substitua pelo valor apropriado para seu cluster ElastiCache (Redis OSS).
Ao implementar um armazenamento de apoio compartilhado para armazenamento de sessões, você pode fornecer ao seu aplicativo ASP.NET Web Forms migrado alta disponibilidade, escalabilidade e tolerância a falhas ativadas. AWS Essa abordagem se alinha às melhores práticas nativas da nuvem e garante uma experiência de usuário perfeita, mesmo quando seu aplicativo se expande em várias EC2 instâncias ou zonas de disponibilidade. Além disso, ele fornece uma solução mais robusta e confiável do que as sessões fixas e permite que seu aplicativo aproveite ao máximo a escalabilidade e a resiliência oferecidas pela infraestrutura. AWS