Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Erstellt von Raghavender Madamshitti (AWS)
Übersicht
Dieses Muster beschreibt, wie eine auf Microsoft Azure App Service gehostete .NET-Webanwendung zu AWS Elastic Beanstalk migriert wird. Es gibt zwei Möglichkeiten, Anwendungen zu Elastic Beanstalk zu migrieren:
Verwenden Sie AWS Toolkit for Visual Studio — Dieses Plugin für die Microsoft Visual Studio IDE bietet die einfachste und unkomplizierteste Möglichkeit, benutzerdefinierte.NET-Anwendungen in AWS bereitzustellen. Sie können diesen Ansatz verwenden, um .NET-Code direkt in AWS bereitzustellen und unterstützende Ressourcen wie Amazon Relational Database Service (Amazon RDS) für SQL Server-Datenbanken direkt aus Visual Studio zu erstellen.
Upload und Bereitstellung auf Elastic Beanstalk — Jeder Azure App Service umfasst einen Hintergrunddienst namens Kudu, der für die Erfassung von Speicherabbildern und Bereitstellungsprotokollen, die Anzeige von Konfigurationsparametern und den Zugriff auf Bereitstellungspakete nützlich ist. Sie können die Kudu-Konsole verwenden, um auf Azure App Service-Inhalte zuzugreifen, das Bereitstellungspaket zu extrahieren und das Paket dann mithilfe der Upload- und Bereitstellungsoption in der Elastic Beanstalk-Konsole auf Elastic Beanstalk hochzuladen.
Dieses Muster beschreibt den zweiten Ansatz (Hochladen Ihrer Anwendung auf Elastic Beanstalk über Kudu). Das Muster verwendet auch die folgenden AWS-Services: AWS Elastic Beanstalk, Amazon Virtual Private Cloud (Amazon VPC), Amazon CloudWatch, Amazon Elastic Compute Cloud (Amazon EC2) Auto Scaling, Amazon Simple Storage Service (Amazon S3) und Amazon Route 53
Die.NET-Webanwendung wird auf AWS Elastic Beanstalk bereitgestellt, das in einer Amazon EC2 Auto Scaling Scaling-Gruppe ausgeführt wird. Sie können eine Skalierungsrichtlinie einrichten, die auf CloudWatch Amazon-Metriken wie der CPU-Auslastung basiert. Für eine Datenbank können Sie je nach Anwendung und Geschäftsanforderungen Amazon RDS in einer Multi-AZ-Umgebung oder Amazon DynamoDB verwenden.
Voraussetzungen und Einschränkungen
Voraussetzungen
Ein aktives AWS-Konto
Eine .NET-Webanwendung, die in Azure App Service ausgeführt wird
Erlaubnis zur Verwendung der Azure App Service Kudu-Konsole
Produktversionen
.NET Core (x64) 1.0.1, 2.0.0 oder höher oder.NET Framework 4.x, 3.5 (siehe Plattformhistorie von.NET auf Windows Server)
Internetinformationsdienste (IIS) Version 8.0 oder höher, ausgeführt auf Windows Server 2012 oder höher
.NET 2.0 oder 4.0 Runtime.
Architektur
Quelltechnologie-Stack
Anwendung, die mit.NET Framework 3.5 oder höher oder .NET Core 1.0.1, 2.0.0 oder höher entwickelt und auf Azure App Service (Web-App oder API-App) gehostet wird
Zieltechnologie-Stack
AWS Elastic Beanstalk wird in einer Amazon EC2 Auto Scaling Scaling-Gruppe ausgeführt
Migrationsarchitektur

Arbeitsablauf bei der Bereitstellung

Tools
Tools
.NET Core oder.NET Framework
C#
IIS
Kudu-Konsole
AWS-Services und -Funktionen
AWS Elastic Beanstalk — Elastic Beanstalk ist ein easy-to-use Service für die Bereitstellung und Skalierung von.NET-Webanwendungen. Elastic Beanstalk verwaltet automatisch die Kapazitätsbereitstellung, den Lastenausgleich und die auto Skalierung.
Amazon EC2 Auto Scaling Scaling-Gruppe — Elastic Beanstalk umfasst eine Auto Scaling Scaling-Gruppe, die die EC2 Amazon-Instances in der Umgebung verwaltet. In einer Umgebung mit nur einer Instance stellt die Auto Scaling-Gruppe sicher, dass immer eine Instance ausgeführt wird. In einer Umgebung mit Lastenausgleich können Sie die Gruppe mit einer Reihe von Instances konfigurieren, die ausgeführt werden sollen, und Amazon EC2 Auto Scaling fügt Instances je nach Bedarf hinzu oder entfernt sie, je nach Auslastung.
Elastic Load Balancing — Wenn Sie Load Balancing in AWS Elastic Beanstalk aktivieren, wird ein Load Balancer erstellt, der den Traffic auf die EC2 Instances in der Umgebung verteilt.
Amazon CloudWatch — Elastic Beanstalk verwendet Amazon automatisch CloudWatch , um Informationen über Ihre Anwendungs- und Umgebungsressourcen bereitzustellen. Amazon CloudWatch unterstützt Standardmetriken, benutzerdefinierte Metriken und Alarme.
Amazon Route 53 — Amazon Route 53 ist ein hochverfügbarer und skalierbarer Cloud-Webservice für das Domain Name System (DNS). Sie können Route 53-Aliaseinträge verwenden, um benutzerdefinierte Domainnamen AWS Elastic Beanstalk-Umgebungen zuzuordnen.
Epen
Aufgabe | Beschreibung | Erforderliche Fähigkeiten |
---|---|---|
Richten Sie eine virtuelle private Cloud (VPC) ein. | Erstellen Sie in Ihrem AWS-Konto eine VPC mit den erforderlichen Informationen. | Systemadministrator |
Erstellen Sie Subnetze. | Erstellen Sie zwei oder mehr Subnetze in Ihrer VPC. | Systemadministrator |
Erstellen Sie eine Routing-Tabelle. | Erstellen Sie eine Routentabelle, die Ihren Anforderungen entspricht. | Systemadministrator |
Aufgabe | Beschreibung | Erforderliche Fähigkeiten |
---|---|---|
Greifen Sie auf die Azure App Service Kudu-Konsole zu. | Greifen Sie über das Azure-Portal auf Kudu zu, indem Sie zum App Service-Dashboard navigieren und dann Advanced Tools, Go auswählen. Oder Sie können die Azure App Service-URL wie folgt ändern:. | App-Entwickler, Systemadministrator |
Laden Sie das Bereitstellungspaket von Kudu herunter. | Navigieren Sie zu Windows, PowerShell indem Sie die DebugConsoleOption auswählen. Dadurch wird die Kudo-Konsole geöffnet. Gehe zum | App-Entwickler, Systemadministrator |
Erstellen Sie ein Paket für Elastic Beanstalk. | Entpacken Sie das Bereitstellungspaket, das Sie von Azure App Service heruntergeladen haben. Erstellen Sie eine JSON-Datei mit dem Namen | App-Entwickler, Systemadministrator |
Erstellen Sie eine neue Elastic Beanstalk Beanstalk-Anwendung. | In der Elastic-Beanstalk-Konsole öffnen. Wählen Sie eine bestehende Anwendung oder erstellen Sie eine neue Anwendung. | App-Entwickler, Systemadministrator |
Erstellen Sie die Umgebung. | Wählen Sie im Aktionsmenü der Elastic Beanstalk Beanstalk-Konsole die Option Umgebung erstellen aus. Wählen Sie die Webserver-Umgebung und die .NET/IIS-Plattform aus. Wählen Sie für Anwendungscode Upload aus. Laden Sie die ZIP-Datei hoch, die Sie für Elastic Beanstalk vorbereitet haben, und wählen Sie dann Create Environment. | App-Entwickler, Systemadministrator |
Konfigurieren Sie Amazon CloudWatch. | Standardmäßig ist die grundlegende CloudWatch Überwachung aktiviert. Wenn Sie die Konfiguration ändern möchten, wählen Sie im Elastic Beanstalk-Assistenten die veröffentlichte Anwendung und dann Monitoring aus. | Systemadministrator |
Stellen Sie sicher, dass sich das Bereitstellungspaket in Amazon S3 befindet. | Wenn die Anwendungsumgebung erstellt wurde, finden Sie das Bereitstellungspaket im S3-Bucket. | App-Entwickler, Systemadministrator |
Testen Sie die Anwendung. | Wenn die Umgebung erstellt wurde, verwenden Sie die in der Elastic Beanstalk Beanstalk-Konsole angegebene URL, um die Anwendung zu testen. | Systemadministrator |
Zugehörige Ressourcen
Konzepte von AWS Elastic Beanstack (Elastic Beanstalk Beanstalk-Dokumentation)
Erste Schritte mit.NET auf Elastic Beanstalk (Elastic Beanstalk Beanstalk-Dokumentation)
Kudu-Konsole ()
GitHub Verwendung von „Kudu“ zur Verwaltung von Azure Web Apps
(GS Lab-Artikel) Benutzerdefinierte ASP.NET Core Elastic Beanstalk Beanstalk-Bereitstellungen (AWS Toolkit for Visual Studio Studio-Benutzerhandbuch)
Von AWS Elastic Beanstalk unterstützte Plattformen
(Elastic Beanstalk Beanstalk-Dokumentation) Bereitstellen einer Webanwendung in AWS
(C# Corner-Artikel) Skalierung der Größe Ihrer Auto Scaling Scaling-Gruppe ( EC2 Amazon-Dokumentation)
Hochverfügbarkeit (Multi-AZ) für Amazon RDS (Amazon RDS-Dokumentation)
Zusätzliche Informationen
Hinweise
Wenn Sie eine lokale Datenbank oder eine Azure SQL Server-Datenbank zu Amazon RDS migrieren, müssen Sie auch die Datenbankverbindungsdetails aktualisieren.
Zu Testzwecken ist eine Beispiel-Demoanwendung beigefügt.