Verschieben meiner ASP.NET MVC-Anwendung nach Amazon AWS

8

Ich habe eine ASP.NET MVC-Anwendung erstellt und möchte sie jetzt von meinem Entwicklungsserver auf Amazon AWS verschieben. Meine Frage lautet: Wie migriert man eine ASP.NET-Anwendung zu Amazon AWS? Folgendes habe ich bisher recherchiert / gefunden:

  • Sitzungen funktionieren nicht instanzübergreifend, daher muss ich DynamoDB oder Memcached verwenden, um den Status zu speichern. Ich habe verschiedene Clients wie Enyim als mögliche Lösung für das Sitzungsstatusproblem mit Amazon ElastiCloud untersucht .
  • Amazon hat einen Webdienst für SMTP-E-Mails. Daher muss ich den Code, der SMTP-E-Mails zum Senden über Amazon SES sendet, überarbeiten und eingehende E-Mails durch Ändern der DNS-Einträge an einen separaten Mailserver umleiten.
  • Es gibt ein SDK zum Verwalten der Benutzeridentität ( Amazon IAM ). Ich muss den Authentifizierungscode ändern, um diesen Webdienst nutzen zu können.

Vielleicht gibt es noch mehr Punkte, die mir nicht bekannt sind. Wie migriert man eine MVC-App zu AWS?

arao6
quelle
1
Das Teilen Ihrer Forschung hilft allen . Sagen Sie uns, was Sie versucht haben und warum es Ihren Anforderungen nicht entsprach. Dies zeigt, dass Sie sich die Zeit genommen haben, um sich selbst zu helfen, es erspart uns, offensichtliche Antworten zu wiederholen, und vor allem hilft es Ihnen, eine spezifischere und relevantere Antwort zu erhalten. Siehe auch Wie man fragt
Mücke

Antworten:

4

Erstens sind die Dinge, die Sie derzeit untersuchen, weitgehend gleich, unabhängig davon, ob Sie Ihre Site von einem Computer auf mehrere (In-Site-) Server, auf Azure, auf Rackspace usw. übertragen.

Wenn es um den Sitzungsstatus geht, wird Ihre Produktionssite jetzt wahrscheinlich über mehrere Instanzen ausgeführt. Daher müssen Sitzungsdaten in einem gemeinsam genutzten Speicher beibehalten werden, damit Benutzersitzungen geladen werden können, unabhängig davon, welchen Serverendpunkt sie letztendlich erreichen.

Mit Dynamo können Sie zwar mit kolossalen Maßstäben umgehen, dies ist jedoch wahrscheinlich relativ kostspielig. Abhängig von Ihrer erwarteten (und eventuell tatsächlichen) Verkehrsauslastung können Sie möglicherweise mit einer günstigeren Speicherform wie AWS Elasticache davonkommen (insbesondere, da Benutzersitzungen vorübergehend sein können).

Das Ändern Ihrer SMTP-Handler sollte ziemlich trivial sein.

Bei IAM geht es mehr darum, den Zugriff der Benutzer auf AWS-Services zu steuern.

Was Sie beschrieben haben, ist die Verwaltung des Speichers und Zugriffs Ihrer eigenen Benutzerkonten (über die ASP.NET-Mitgliedschaft?) - dafür ein dauerhafter relationaler Speichermechanismus wie Amazon RDS.

Es gibt viele Beispiele von anderen, die das meiste getan haben - nur GoogleBing.

Andere Dinge zu beachten:

  1. Ich hoffe, für Ihre Website sind keine Sticky-Sessions erforderlich. Dies kann den Lastausgleich etwas schwierig machen.
  2. Haben Sie Ihre App getestet, die auf mehreren lokalen Instanzen mit einem einfachen Load-Balancer / Proxy ausgeführt wird? Es ist einfacher, diese Dinge lokal als in der Cloud zu debuggen.
  3. Sie haben keine Form von Back-End-Datenbank erwähnt ... Ich nehme an, Sie haben Ihre DB-Migration bereits organisiert?
Richard Turner
quelle
Danke, gerade noch rechtzeitig! Tatsächlich bin ich gerade dabei, die App in den nächsten zwei Wochen auf AWS zu verschieben (ich habe die Frage in der Planungsphase erstellt). Es ist eine ASP.NET-App mit einem MySQL-Backend. Es verwendet SignalR für so ziemlich alles, daher denke ich, dass Elasticache genau das ist, was ich brauche, da SingalR Redis für eine Rückwandplatine unterstützt. Danke noch einmal!
Arao6