Movendo meu aplicativo ASP.NET MVC para o Amazon AWS

8

Criei um aplicativo ASP.NET MVC e agora quero movê-lo para o Amazon AWS do meu servidor de desenvolvimento. Minha pergunta é: como migrar um aplicativo ASP.NET para o Amazon AWS? Aqui está o que eu pesquisei / encontrei até agora:

  • As sessões não funcionam entre instâncias, portanto, preciso usar o DynamoDB ou o memcached para armazenar o estado. Examinei vários clientes como o Enyim como uma possível solução para o problema do estado da sessão usando o Amazon ElastiCloud .
  • A Amazon possui um serviço da web para emails SMTP. Portanto, precisarei refazer o código que envia os emails SMTP para enviar pelo Amazon SES e redirecionar os emails recebidos para um servidor de email separado, alterando os registros DNS.
  • Há um SDK para gerenciar a identidade do usuário ( Amazon IAM ). Vou precisar alterar o código de autenticação para usar este serviço da web.

Talvez haja mais pontos que eu desconheço. Então, como migrar um aplicativo MVC para a AWS?

arao6
fonte
1
Compartilhar sua pesquisa ajuda a todos . Conte-nos o que você tentou e por que ele não atendeu às suas necessidades. Isso demonstra que você dedicou um tempo para tentar ajudar a si mesmo, evita reiterar respostas óbvias e, acima de tudo, ajuda a obter uma resposta mais específica e relevante. Veja também Como perguntar
gnat

Respostas:

4

Em primeiro lugar, as coisas que você está investigando atualmente seriam as mesmas, independentemente de levar o site de uma máquina para vários servidores (no local), para o Azure, para o Rackspace etc.

Quando se trata do estado da sessão, agora é provável que o site de produção seja executado em várias instâncias, por isso será necessário persistir os dados da sessão em um armazenamento compartilhado para que as sessões do usuário possam ser carregadas, independentemente do terminal do servidor que eles acabam acessando.

O Dynamo pode muito bem permitir que você lide com uma escala colossal, mas é provável que seja relativamente caro. Dependendo das cargas de trabalho de tráfego esperadas (e eventualmente reais), é possível que você consiga se livrar de uma forma mais barata de armazenamento, como o AWS Elasticache (principalmente porque as sessões do usuário podem ser transitórias).

Modificar seus manipuladores SMTP deve ser bastante trivial.

O IAM é mais sobre como controlar o acesso dos usuários aos serviços da AWS.

O que você descreveu é querer gerenciar seu próprio armazenamento e acesso de contas de usuário (via associação do ASP.NET?) - para isso, um mecanismo de armazenamento relacional persistente como o Amazon RDS.

Existem muitos exemplos de outras pessoas que fizeram a maior parte disso - apenas o GoogleBing.

Outras coisas a considerar:

  1. Espero que seu site não exija sessões complicadas: isso pode tornar o balanceamento de carga um pouco complicado.
  2. Você testou seu aplicativo em algumas instâncias locais, com um simples balanceador de carga / proxy? É mais fácil depurar essas coisas localmente ou na nuvem.
  3. Você não mencionou nenhuma forma de banco de dados back-end ... Suponho que você já tenha sua migração de banco de dados organizada?
Richard Turner
fonte
Obrigado, bem a tempo! Na verdade, estou prestes a mudar o aplicativo para a AWS nas próximas duas semanas (criei a pergunta durante o estágio de planejamento). É um aplicativo ASP.NET com um back-end MySQL. Ele usa o SignalR para praticamente tudo, então acho que o Elasticache é exatamente o que eu preciso, pois o SingalR suporta o Redis para um backplane. Obrigado novamente!
Arao6