Spostamento dell'applicazione MVC ASP.NET su Amazon AWS

8

Ho creato un'applicazione ASP.NET MVC e ora desidero spostarla su Amazon AWS dal mio server di sviluppo. La mia domanda è: come si fa a migrare un'applicazione ASP.NET ad Amazon AWS? Ecco cosa ho cercato / trovato finora:

  • Le sessioni non funzionano tra istanze, quindi ho bisogno di usare DynamoDB o memcached per memorizzare lo stato. Ho esaminato vari client come Enyim come una possibile soluzione al problema dello stato della sessione utilizzando Amazon ElastiCloud .
  • Amazon ha un servizio Web per e-mail SMTP. Dovrò quindi rielaborare il codice che invia email SMTP da inviare attraverso Amazon SES e reindirizzare le e-mail in arrivo su un server di posta separato cambiando i record DNS.
  • Esiste un SDK per la gestione dell'identità dell'utente ( Amazon IAM ). Dovrò modificare il codice di autenticazione per utilizzare questo servizio web.

Forse ci sono altri punti di cui non sono a conoscenza. Quindi, come si fa a migrare un'app MVC in AWS?

    
posta arao6 07.09.2014 - 18:47
fonte

1 risposta

4

In primo luogo, le cose che stai attualmente analizzando sarebbero in gran parte le stesse indipendentemente dal fatto che tu stia portando il tuo sito da una macchina a diversi (in-site) server, ad Azure, a Rackspace, ecc.

Quando si tratta dello stato della sessione, è probabile che il sito di produzione possa essere eseguito su più istanze, quindi sarà necessario conservare i dati della sessione in un archivio condiviso in modo che le sessioni utente possano essere caricate indipendentemente dall'endpoint del server che hanno colpito.

La Dynamo potrebbe benissimo consentire di gestire una scala colossale, ma è probabile che sia relativamente costosa. A seconda dei carichi di lavoro previsti (e, infine, reali), potresti essere in grado di farla franca con una forma di archiviazione meno costosa come AWS Elasticache (soprattutto perché le sessioni utente possono essere transitorie).

La modifica dei gestori SMTP dovrebbe essere piuttosto semplice.

IAM ha più a che fare con il controllo dell'accesso degli utenti ai servizi AWS.

Ciò che hai descritto sta volendo gestire la memorizzazione e l'archiviazione dei tuoi account utente; accesso (tramite Membership ASP.NET?) - per questo, un meccanismo di archiviazione relazionale persistente come Amazon RDS.

Ci sono molti esempi di altri che hanno fatto la maggior parte di questo: solo GoogleBing.

Altre cose da considerare:

  1. Spero che il tuo sito non richieda sessioni appiccicose: questo può rendere un po 'complicato il bilanciamento del carico.
  2. Hai testato l'app in esecuzione su un paio di istanze locali, con un semplice bilanciamento del carico / proxy? È più facile eseguire il debug di queste cose a livello locale o nel cloud.
  3. Non hai menzionato alcuna forma di database back-end ... presumo tu abbia già organizzato la migrazione del tuo DB?
risposta data 28.01.2015 - 02:48
fonte

Leggi altre domande sui tag