Mover mi aplicación ASP.NET MVC a Amazon AWS

8

Creé una aplicación ASP.NET MVC, y ahora quiero moverla a Amazon AWS desde mi servidor de desarrollo. Mi pregunta es: ¿cómo se migra una aplicación ASP.NET a Amazon AWS? Esto es lo que he investigado / encontrado hasta ahora:

  • Las sesiones no funcionan en todas las instancias, por lo que necesito usar DynamoDB o memcached para almacenar el estado. Busqué en varios clientes como Enyim como una posible solución al problema del estado de la sesión usando Amazon ElastiCloud .
  • Amazon tiene un servicio web para correos electrónicos SMTP. Por lo tanto, tendré que volver a trabajar el código que envía correos electrónicos SMTP para enviarlos a través de Amazon SES , y redirigir los correos electrónicos entrantes a un servidor de correo separado cambiando los registros DNS.
  • Hay un SDK para administrar la identidad del usuario ( Amazon IAM ). Tendré que cambiar el código de autenticación para usar este servicio web.

Tal vez hay más puntos que desconozco. Entonces, ¿cómo se migra una aplicación MVC a AWS?

arao6
fuente
1
Compartir su investigación ayuda a todos . Cuéntanos qué has probado y por qué no satisfizo tus necesidades. Esto demuestra que te has tomado el tiempo para tratar de ayudarte a ti mismo, nos salva de reiterar respuestas obvias y, sobre todo, te ayuda a obtener una respuesta más específica y relevante. También vea Cómo preguntar
mosquito

Respuestas:

4

En primer lugar, las cosas que está investigando actualmente serían en gran medida las mismas independientemente de si está llevando su sitio de una máquina a varios servidores (en el sitio), a Azure, a Rackspace, etc.

Cuando se trata del estado de la sesión, es probable que su sitio de producción se ejecute en varias instancias, por lo que deberá conservar los datos de la sesión en una tienda compartida para que las sesiones de los usuarios puedan cargarse independientemente del punto final del servidor al que lleguen.

Dynamo bien podría permitirle manejar una escala colosal, pero es probable que sea relativamente costoso. Dependiendo de sus cargas de trabajo de tráfico esperadas (y eventualmente reales), es posible que pueda salirse con una forma de almacenamiento más barata, como AWS Elasticache (especialmente porque las sesiones de usuario pueden ser transitorias).

Modificar sus controladores SMTP debería ser bastante trivial.

IAM se trata más de controlar el acceso de los usuarios a los servicios de AWS.

Lo que ha descrito es querer administrar el acceso y el almacenamiento de sus propias cuentas de usuario (¿a través de la Membresía ASP.NET?), Para eso, un mecanismo de almacenamiento relacional persistente como Amazon RDS.

Hay muchos ejemplos de otros que han hecho la mayor parte de esto, solo GoogleBing.

Otras cosas a considerar:

  1. Espero que su sitio no requiera sesiones fijas: esto puede hacer que el equilibrio de carga sea un poco complicado.
  2. ¿Ha probado su aplicación en un par de instancias locales, con un simple equilibrador de carga / proxy? Es más fácil depurar estas cosas localmente que en la nube.
  3. No ha mencionado ninguna forma de base de datos de fondo ... ¿Supongo que ya tiene su migración de base de datos organizada?
Richard Turner
fuente
Gracias, justo a tiempo! De hecho, estoy a punto de trasladar la aplicación a AWS en las próximas dos semanas (creé la pregunta durante la etapa de planificación). Es una aplicación ASP.NET con un servidor MySQL. Utiliza SignalR para casi todo, así que creo que Elasticache es justo lo que necesito, ya que SingalR es compatible con Redis para un plano posterior. ¡Gracias de nuevo!
arao6