.NET-Workloads in AWS App Runner

MODUL 2

Modul 2: Grundlagen von AWS App Runner

 LERNMODUL

Lernziele

In diesem Modul werden Sie:

  • die Grundlagen von AWS App Runner kennenlernen, einschließlich der Vorteile, Anwendungsfälle, Features und des Preismodells.
  • erfahren, wo Sie Dokumentation und andere Ressourcen finden.
  • sich mit AWS App Runner in der AWS-Managementkonsole vertraut machen und erfahren, wie Sie einen Service erstellen, verwalten und löschen.

AWS App Runner ist ein vollständig verwalteter Service, der es Entwicklern erleichtert, schnell containerisierte Webanwendungen und APIs in großem Maßstab und ohne vorherige Infrastrukturerfahrung bereitzustellen. Beginnen Sie mit Ihrem Quellcode oder einem Container-Image. App Runner erstellt und stellt Ihre Webanwendung automatisch bereit, gleicht den Datenverkehr mit Verschlüsselung aus, skaliert, um Ihre Datenverkehrsanforderungen zu erfüllen und erleichtert Ihren Services die Kommunikation mit anderen AWS-Services und -Anwendungen, die in einer privaten Amazon VPC ausgeführt werden. Mit App Runner müssen Sie nicht mehr über Server oder Skalierung nachdenken, sondern haben mehr Zeit, sich auf Ihre Anwendungen zu konzentrieren. 

 Veranschlagte Zeit

60 Minuten 

Einführung in AWS App Runner

AWS App Runner (im Foglenden „App Runner“) ist ein vollständig verwalteter Service, der es Entwicklern erleichtert, schnell containerisierte Webanwendungen und APIs in großem Maßstab und ohne vorherige Infrastrukturerfahrung bereitzustellen. Wenn Sie eine Webanwendung oder einen Webservice haben, z. B. eine Website, eine API oder einen Microservice, können Sie App Runner verwenden.

App Runner ist ein Limousinenservice für containerisierte Web-Apps. Wenn AWS App Runner als „vollständig verwaltet“ beschreibt, ist der Name Programm: Wenn Sie möchten, dass jedes Detail für Sie erledigt wird, ist App Runner der richtige Service für Sie. Wie bei AWS Lambda besteht auch hier Ihre einzige Verantwortung darin, Ihren Code bereitzustellen. Wie bei AWS Lambda haben (oder benötigen) Sie keinen Einblick in die zugrunde liegenden EC2-Instances und die Infrastruktur, auf der Ihr Service ausgeführt wird.

Wenn Sie sich nicht mit Containern auskennen, brauchen Sie sich darüber keine Sorgen zu machen: Der Bereitstellungsprozess kann automatisch einen Container für Ihren Code erstellen. Wenn Sie bereits Container verwenden, können Sie Ihre vorhandenen Container mitbringen. App Runner erledigt alles andere, verwaltet TLS, einen Load Balancer, Zustandsprüfungen und automatische Skalierung für Sie. Wenn man es genau betrachtet, betreibt App Runner Ihren Container mit AWS Fargate in Amazon ECS, aber Sie werden niemals direkt mit diesen Services interagieren.

Vorteile

App Runner ist benutzerfreundlich, skaliert automatisch, spart Zeit und bietet eine konforme Umgebung.

Einfache Nutzung

Mit AWS App Runner können Sie mit nur wenigen Klicks sichere Webanwendungen erstellen und ausführen. Sie benötigen keine Erfahrung mit Containern, Infrastruktur, Serverkonfiguration, Netzwerken, Load Balancing oder Bereitstellungspipelines.

Skaliert mit dem Datenverkehr

App Runner skaliert Ressourcen als Reaktion auf den Web-Datenverkehr nahtlos hoch und runter. Sie können eine Mindestanzahl von Container-Instances konfigurieren, um Kaltstarts zu vermeiden und eine geringe Latenz sicherzustellen.

Zeitersparnis

Mit App Runner müssen Sie keine Zeit dafür aufwenden, Ressourcen und Infrastruktur zuzuweisen, zu konfigurieren oder zu verwalten. Ressourcen und Infrastrukturkomponenten werden vollständig von AWS verwaltet und profitieren von bewährten Methoden für Sicherheit und Betrieb. Sie können sich voll und ganz auf Ihre Anwendung konzentrieren

Sicherstellen einer konformen Umgebung

Ihre App-Runner-Anwendung kann über Amazon VPC eine Verbindung zu AWS-Services wie Datenbank-, Cache- und Nachrichtenwarteschlangen-Services herstellen. Es sind keine öffentlichen Subnetze erforderlich – das hilft Ihnen, Ihre Ressourcen zu schützen.

Anwendungsfälle

Zu den Anwendungsfällen für AWS App Runner gehören Frontend- und Backend-Webanwendungen, Microservices, Web-APIs und schnelle Bereitstellung.

Frontend- und Backend-Webanwendungen

Sie können Websites, Web-Services und APIs in App Runner hosten.

Microservices and APIs

Sie Tausende Microservices gleichzeitig in App Runner ausführen. Dadurch haben Sie eine lose Verkoppelung und jeder Microservice kann unabhängig skalieren. 

Schnelle Bereitstellung

App Runner nutzt die bewährten Methoden und Technologien von AWS für die Bereitstellung und Ausführung Ihrer Container in großem Maßstab. Dies trägt zu einer schnelleren Markteinführung neuer Anwendungen und Features bei.

Funktionen

Kommen wir nun zu den Funktionen des AWS-App-Runner-Services:

VPC-Connector

App-Runner-Services können über einen VPC-Connector mit anderen AWS-Services kommunizieren, die in einer privaten Amazon Virtual Private Cloud (VPC) laufen. Auf diese Weise können Sie Unterstützung für andere Services hinzufügen, die von einer Amazon VPC gesteuert werden.

Auto Scaling

App Runner skaliert Container-Instances automatisch hoch oder herunter, um dem Datenverkehr gerecht zu werden, und zwar mit den von Ihnen konfigurierten Einschränkungen.

Automatische Bereitstellungen

App Runner kann Ihre Anwendung automatisch erstellen und bereitstellen, wenn sie sich ändert. Sie können App Runner mit Ihrem Code-Repository oder mit einer Container-Image-Registry wie ECR verbinden. 

Zertifikatverwaltung

App Runner beinhaltet Transport Layer Security (TLS) automatisch. Es ist keine Einrichtung erforderlich und Zertifikate werden automatisch erneuert.

Kostenverwaltung

Sie können die Kosten kontrollieren, indem Sie Anwendungen einfach über die AWS-Managementkonsole, die AWS CLI oder das AWS SDK anhalten oder wieder starten.

Lastausgleich

App Runner verteilt den Datenverkehr automatisch und sorgt so für Zuverlässigkeit und hohe Verfügbarkeit.

Protokolle und Metriken

Um die Überwachung und Optimierung Ihrer containerisierten Anwendungen zu ermöglichen, stellt App Runner detaillierte Erstellungs-, Bereitstellungs- und Laufzeitprotokolle bereit. Durch die integrierte Integration in Amazon CloudWatch wird zudem ein vollständiger Satz von Compute-Metriken bereitgestellt.

Einschränkungen

App Runner ist nur in ausgewählten Regionen verfügbar, die Sie auf der Seite „Endpunkte und Kontingente von AWS App Runner“ finden. Wenn Sie App Runner zusammen mit anderen AWS-Services wie einem Datenbank- oder Speicherservice verwenden, sollten Sie Regionen verwenden, die alle Ihre Zielservices unterstützen, damit sie aus Effizienzgründen an einem Ort platziert werden können. Sie sollten auch die Empfehlungen von AWS für die Auswahl einer Region berücksichtigen, z. B. die Einhaltung lokaler Vorschriften und die Nähe zu Ihrer Benutzerbasis.

Nicht in allen Regionen verfügbar

AWS App Runner ist nicht in allen AWS-Regionen verfügbar. Die derzeit unterstützten Regionen finden Sie auf der Seite „Endpunkte und Kontingente von AWS App Runner“.

Ein Container pro Service

In App Runner ist ein Service einem Container zugeordnet, und zwar nur einem Container. Sie können mehrere Instances dieses Containers entsprechend dem Datenverkehr ausführen, aber es gibt keine Möglichkeit, einen Service aus mehreren Containern zusammenzustellen, wie es mit ECS oder EKS möglich ist.

Regionale Kontingente

Standardmäßig können Sie maximal 10 Auto-Scaling-Konfigurationen, 10 Verbindungen zu Ressourcen von Drittanbietern, 10 Beobachtbarkeitskonfigurationen, 10 Services und 10 VPC-Connectors pro Region erstellen. Diese Kontingente sind alle anpassbar. Sie können eine Erhöhung des Servicekontingents über die AWS Service Quotas und das AWS Support Center beantragen.

Preismodell

App Runner berechnet Gebühren für Rechen- und Speicherressourcen. Darüber hinaus können Ihnen die automatische Bereitstellung und Erstellung anhand des Quellcodes in Rechnung gestellt werden, wenn Sie sich für die Nutzung dieser Features entscheiden. Hinweis: Die hier beschriebenen Tarife und Preisbeispiele basieren auf den US-Tarifen vom Mai 2022. Schauen Sie sich unbedingt die Preisseite an, um die Tarife und andere Preismodelldetails zu bestätigen. Beachten Sie, dass die Preise je nach Region unterschiedlich sein können.

Wenn Sie Ihre Anwendung in App Runner erstellen, konfigurieren Sie die erforderliche Menge an Arbeitsspeicher und virtueller CPU. Eine virtuelle CPU (vCPU) ist eine CPU-Einheit, die einem Thread eines CPU-Kerns entspricht. Sie geben auch Nebenläufigkeit an, die die maximale Anzahl gleichzeitiger Anfragen bestimmt, die Ihre aktiven Container-Instances unterstützen müssen. Wenn Ihre Anwendung inaktiv ist, zahlen Sie nur für den bereitgestellten Container-Instance-Speicher, der Ihre Anwendung warm hält, damit er schnell auf die nächste Anfrage antworten kann. Wenn Anfragen eingehen, zahlen Sie für vCPU und Arbeitsspeicher, die von aktiven Container-Instances bei der Verarbeitung von Anfragen durch Ihre Anwendung verbraucht werden. Sie erhalten nur dann eine Rechnung, wenn Ihre Anwendung ausgeführt wird, und Sie können Ihre Anwendung über die AWS-Konsole anhalten und fortsetzen. 

Bereitgestellte Container-Instances

Sobald Sie eine Anwendung bereitgestellt haben, wird Ihnen der in jeder Container-Instance bereitgestellte Speicher in Rechnung gestellt. App Runner stellt sicher, dass der Speicher auch dort bereitgestellt wird, wo kein Datenverkehr herrscht, und stellt so sicher, dass es mit geringer Latenz auf die nächste Anfrage antworten kann.

Zum Zeitpunkt der Verfassung dieses Artikels kosteten bereitgestellte Container-Instances in den USA und Europa 0,007 USD/GB-Stunde.

Preisbeispiel: Angenommen, Sie haben eine bereitgestellte Container-Instance bereitgestellt, die 2 GB Arbeitsspeicher benötigt und noch keinen Datenverkehr hat. Diese eine bereitgestellte Container-Instance mit 2 GB kostet 1 x 2 GB x 0,007 USD = 0,34 USD pro Tag.

Aktive Container-Instances

Wenn Ihre Anwendung Anfragen verarbeitet, werden nicht mehr die Gebühren von bereitgestellten Container-Instances, sondern die von aktiven Container-Instances berechnet. Aktive Container-Instances berechnen Ihnen Rechenressourcen und jeglichen Speicher, der über die bereitgestellten Container-Instances hinausgeht.

Für aktive Container-Instances wird eine Gebühr von 0,064 USD/vCPU-Stunde berechnet. Die Gebühren für Container-Instances werden pro Sekunde abgerechnet, wobei für vCPU-Ressourcen ein Minimum von einer Minute gilt, sobald eine bereitgestellte Container-Instance mit der Verarbeitung von Anfragen beginnt.

Automatische Bereitstellungen

Wenn Sie sich für automatische Bereitstellungen entscheiden, erstellen Quellcodeänderungen an einem Bereitstellungszweig Container-Images und lösen eine Bereitstellung aus. Automatische Bereitstellungen werden mit 1 USD pro Anwendung und Monat in Rechnung gestellt.

Erstellungsgebühr

Sie zahlen eine Erstellungsgebühr, wenn App Runner Ihre Anwendung aus dem Quellcode erstellt. Der Preis beträgt 0,005 USD/Erstellungsminute.

Preisbeispiel 1: App-Test

Sie testen Ihre Anwendung täglich 2 Stunden lang. Während sie aktiv ist, erhält Ihre App 2 Anfragen pro Sekunde für einen Zeitraum von 2 Stunden. Ihre App benötigt 2 GB Arbeitsspeicher pro Container-Instance. Sie unterbrechen den Service 22 Stunden an jedem Tag.

Ihre tägliche Gebühr für bereitgestellte Container-Instances beträgt 2 Stunden x 1 bereitgestellte Container-Instance x (2 GB x 0,007 USD GB-Stunde) oder 0,03 USD. Ihnen werden nur 2 Stunden pro Tag berechnet, da Sie die App für die anderen 22 Stunden eines jeden Tages pausieren.

Ihre tägliche Gebühr für aktive Container-Instances beträgt 2 Stunden x 1 aktive Container-Instance x [(1 vCPU x 0,064 USD vCPU-Stunde)] — 2 Stunden x 1 bereitgestellte Container-Instance x (2 GB x 0,007 USD) = 0,13 USD. Ihre täglichen Gesamtkosten betragen 0,16 USD oder 4,8 USD/Monat.

Preisbeispiel 2: Lightweight API

Sie haben eine schlanke, latenzempfindliche Web-API für eine bereitgestellte Container-Instance mit 2 GB Arbeitsspeicher bereitgestellt. Jeden Tag erhalten Sie innerhalb von 8 Stunden 80 sporadische Anfragen.

App Runner verwaltet die bereitgestellte Container-Instance (Speicher) rund um die Uhr und kostet 2 GB x 0,007 GB-Stunde oder 0,34 USD/Tag.

App Runners skaliert 8 Stunden am Tag auf eine aktive Container-Instance, wenn Anfragen eingehen. Für aktive Container-Instances werden Rechenleistung und Arbeitsspeicher abzüglich der Gebühren für den bereitgestellten Arbeitsspeicher der Container-Instance berechnet. Die Formel finden Sie nachstehend und ergibt 0,51 USD/Tag.

8 Stunden × 1 aktive Container-Instance × [(1 vCPU × 0,064 USD vCPU-Stunde) + (2 GB × 0,007 USD GB-Stunde)] - 8 Stunden x 1 bereitgestellte Container-Instance x (2 GB × 0,007 USD GB-Stunde) = 0,51 USD

Die täglichen Gesamtkosten betragen 0,51 USD (aktive Container-Instances) + 0,34 USD (bereitgestellte Container-Instances) = 0,85 USD oder 25,50 USD/Monat.

Preisbeispiel 3: High-Volume-Produktion

Sie haben eine Webanwendung in der Produktion. Jede Container-Instance benötigt 2 GB Arbeitsspeicher und kann 80 Anfragen pro Sekunde verarbeiten. Die Seite ist tagsüber mit Anfragen stark ausgelastet , deren Höchststand 3 Stunden lang bei 800 Anfragen/Sekunde liegt. Während 12 Stunden außerhalb der Spitzenzeiten gibt es 60 Anfragen pro Sekunde. App Runner skaliert die App für Spitzenzeiten auf 10 aktive Container-Instances hoch und in Zeiten außerhalb der Spitzenzeiten auf eine aktive Container-Instance herunter. Der bereitgestellte Container-Instance-Speicher wird 24 Stunden am Tag in Rechnung gestellt.

Für die bereitgestellte Container-Instance (Speicher) werden 24 Stunden/Tag 2 GB x 0,007 GB-Stunde oder 0,34 USD/Tag berechnet.

Zu Spitzenzeiten werden 10 aktive Container-Instances benötigt, um 800 Anfragen pro Sekunde 3 Stunden lang zu verarbeiten. Das sind 10 aktive Container-Instances × 3 Stunden × [(1 vCPU × 0,064 USD vCPU-Stunde) + (2 GB × 0,007 USD GB-Stunde)] - 1 bereitgestellte Container-Instance x 3 Stunden x (2 GB × 0,007 USD GB-Stunde) = 2,30 USD.

Außerhalb der Spitzenzeiten (12 Stunden) verarbeitet eine aktive Container-Instance die 60 Anfragen pro Sekunde. Das sind 12 Stunden × 1 aktive Container-Instance × [(1 vCPU × 0,064 USD vCPU-Stunde) + (2 GB × 0,007 USD GB-Stunde)] - 12 Stunden x 1 bereitgestellte Container-Instance x (2 GB × 0,007 USD GB-Stunde) = 0,77 USD.

Zusammengenommen ergeben sich 2,30 USD (aktive Container-Instances zu Spitzenzeiten) + 0,77 USD (aktive Container-Instances außerhalb der Spitzenzeiten) + 0,45 USD (täglich bereitgestellte Container-Instances) = 3,40 USD/Tag oder 102 USD/Monat.

Referenz: AWS App Runner | Preise, virtuelle EC2-CPU

Entwickler-Workflow

In diesem Abschnitt erfahren Sie, wie Entwickler mit App Runner arbeiten. Sie folgen dem nachfolgend dargelegten Ablauf, um einen App-Runner-Service für Ihre Anwendung zu erstellen.

1. Eine Quelle hinzufügen

In diesem Schritt stellen Sie eine Verbindung zu einem Container-Image oder Ihrem Quellcode her und wählen „deployment settings“ (Bereitstellungseinstellungen) aus. Wenn Sie einen App-Runner-Service erstellen, verbinden Sie ihn mit einer Quelle. Die Quelle kann ein Container-Image oder ein Quellcode-Repository sein (siehe unten). Für ein Quellcode-Repository, z. B. ein GitHub-Repo, müssen Sie Verbindungsdetails angeben.

Auch wenn Ihre Anwendung nicht containerisiert ist, unterstützt App Runner die automatische Erstellung eines Container-Images. Wenn Sie Ihr vorhandenes Quellcode-Repository zuordnen und App Runner optional mit Ihren Laufzeiterstellungs- und Startbefehlen versehen, wird Ihre Webanwendung von App Runner automatisch containerisiert und eine laufende Webanwendung bereitgestellt. Die automatische Containerisierung ist für verwaltete App-Runner-Plattformen verfügbar, die unterstützte Laufzeiten und Frameworks enthalten.

Referenz: AWS App Runner | Häufig gestellte Fragen

In den Bereitstellungseinstellungen können Sie wählen, ob die Bereitstellung von Updates für Ihre Anwendung manuell oder automatisch ausgelöst werden soll. Wenn Sie die automatische Bereitstellung aktivieren, erstellt App Runner Ihre Anwendung automatisch und stellt sie bereit, wenn Sie Ihren Quellcode oder Ihr Container-Image aktualisieren.

2. Erstellungs- und Serviceeinstellungen konfigurieren

In diesem Schritt konfigurieren Sie die vCPU und den Arbeitsspeicher Ihres Containers und wählen die Optionen für automatische Skalierung und Zustandsprüfung aus. Wenn Sie sich für die Bereitstellung aus einem Quellcode-Repository und nicht aus einer Container-Registry entscheiden, konfigurieren Sie auch die Build-Einstellungen. Obwohl App Runner diese Einstellungen für Sie standardmäßig vornimmt, sollten Sie sie verstehen und Ihre Optionen zur Anpassung Ihrer Konfiguration kennen.

Sie können wählen, ob Sie die Einstellungen in der Konsole konfigurieren oder eine YAML-Konfigurationsdatei in Ihrem Quellcode-Repository bereitstellen möchten.

In den Service-Einstellungen geben Sie Ihrem Service einen Namen und legen die CPU- und Speichergröße Ihres Containers fest. Diese Einstellungen wirken sich auf Ihre Kosten aus. Sie können hier auch alle Umgebungsvariablen festlegen, die von Ihrer Anwendung benötigt werden.

Sie können die automatische Skalierung konfigurieren. Die Standardeinstellung ist nur eine Instance Ihres Containers. App Runner kann Ihren Service auf mehr Instances skalieren, wenn er mehr als 80 gleichzeitige Anfragen empfängt. Sie können die maximale Anzahl von Instances konfigurieren, wodurch Sie die Kosten kontrollieren können.

Mithilfe der Einstellungen für die Zustandsprüfung können Sie einen Webpfad identifizieren, an den App Runner Zustandsprüfungsanfragen senden kann. Wenn fünf aufeinanderfolgende Fehler bei der Zustandsprüfung auftreten, gilt die Instance standardmäßig als fehlerhaft und App Runner ersetzt sie. Sie können die Anzahl der Zustandsprüfungen, die fehlschlagen müssen, bevor App Runner entscheidet, dass der Service fehlerhaft ist, von 1 bis 20 konfigurieren.

Mithilfe der Sicherheitseinstellungen können Sie eine IAM-Rolle auswählen, die die Instance verwenden soll. Wenn Ihre Anwendung mit einem anderen AWS-Service kommunizieren muss, autorisieren Sie dies in der IAM-Rolle. Mit diesen Einstellungen können Sie optional auch einen vom Kunden verwalteten Schlüssel (CMK) für die Verschlüsselung des Quellcodes angeben. 

3. Überprüfen und erstellen

In diesem Schritt überprüfen und verifizieren Sie Ihre gesamten Einstellungen. Sobald Sie auf „Create and deploy“ (Erstellen und bereitstellen) klicken, erstellt App Runner Ihren Service und stellt Ihre Anwendung bereit.

4. Eine sichere URL erhalten

Schließlich erhalten Sie von AWS App Runner eine sichere URL Ihres laufenden, produktionsbereiten Services. HTTPS wird automatisch für Sie konfiguriert.

Schließlich können Sie Ihre Anwendung mit einer benutzerdefinierten Domain verknüpfen, falls Sie eine haben. Sie werden durch den Nachweis geführt, dass Sie Eigentümer der Domain sind.

App-Runner-Services verwalten

Sie können einen App-Runner-Service auf verschiedene Arten erstellen, bereitstellen und verwalten.

AWS-Managementkonsole

Von der AWS-Managementkonsole aus können Sie App-Runner-Services erstellen, bereitstellen, konfigurieren, überwachen und beenden. Sie navigieren für diese Vorgänge zur AWS-App-Runner-Konsole.

Sobald ein Service erstellt und bereitgestellt wurde, können Sie einen Service auswählen und Servicedetails in den folgenden Bereichen anzeigen:

Übersicht über den Service

Im Abschnitt „Service overview“ (Serviceübersicht) sehen Sie den Status Ihrer App (z. B. „Running“ [Wird ausgeführt]), die Standard-Domain-URL, den Amazon-Ressourcennamen (ARN) des Services und eine „Quell“-URL. Letztere führt Sie zum Container in Amazon Elastic Container Registry (ECR) oder Ihrem Quellcode-Repository.

Protokolle

Auf dieser Registerkarte werden Ihre Bereitstellungsprotokolle und das Protokoll zur Anwendungsausführung angezeigt. App Runner sammelt die Ausgabe Ihrer Anwendungen und streamt sie an CloudWatch Logs. Sie können jede Ausgabe aufnehmen, die Sie für nützlich halten, z. B. die Details von Anfragen an einen Webservice.

Aktivität

Auf der Registerkarte „Activity“ (Aktivität) wird der Verlauf Ihres Services angezeigt. App Runner verwendet eine Liste von Vorgängen, um die Aktivitäten in Ihrem App-Runner-Service zu verfolgen. Ein Vorgang stellt einen asynchronen Aufruf einer API-Aktion dar, z. B. das Erstellen eines Services, das Aktualisieren einer Konfiguration und das Bereitstellen eines Services.

Metriken

Auf der Registerkarte „Metrics“ (Metriken) werden Ihre Servicemetriken angezeigt, einschließlich Anfragen, Antworten, Latenz und Anzahl der aktiven Instances.

Konfiguration

Auf der Registerkarte „Configuration“ (Konfiguration) werden Ihre Servicekonfigurationsdetails angezeigt, einschließlich der Anzahl der virtuellen CPUs und des Speichers, der automatischen Skalierung, der Zustandsprüfung und der Sicherheit. Klicken Sie auf „Edit“ (Bearbeiten), um Ihre Konfiguration zu ändern. Bei Bedarf können Sie die Anzahl der virtuellen CPUs und des Speichers pro Instance kontrollieren, Umgebungsvariablen festlegen, die automatische Skalierung anpassen, Zustandsprüfungen konfigurieren, eine benutzerdefinierte IAM-Rolle verwenden oder einen benutzerdefinierten Verschlüsselungsschlüssel verwenden.

Überwachung und Protokollierung

Die Überwachung Ihrer App-Runner-Anwendung ist für die Aufrechterhaltung von Zuverlässigkeit, Verfügbarkeit und Leistung unerlässlich. Das Sammeln von Überwachungsdaten aus allen Teilen Ihrer AWS-Lösung erleichtert das Debuggen im Fall eines Fehlers. App Runner sammelt Anwendungsprotokolle aus Ihrem Code. Es lässt sich auch in mehrere AWS-Services integrieren, um Servicevorfälle zu überwachen und darauf zu reagieren.

Amazon CloudWatch Alarms

Sie können Amazon CloudWatch Alarms verwenden, um eine Service-Metrik zu überwachen und Ihnen eine Benachrichtigung zu senden, wenn die von Ihnen angegebenen Bedingungen erfüllt sind. Sie können eine Servicemetrik über einen bestimmten Zeitraum beobachten und einen Schwellenwert festlegen, um eine Benachrichtigung zu erhalten, wenn die Metrik den Schwellenwert für eine bestimmte Anzahl von Zeiträumen überschreitet. Sie könnten beispielsweise benachrichtigt werden, wenn die CPU-Auslastung 60 % übersteigt.

Referenz: App-Runner-Servicemetriken anzeigen, die CloudWatch gemeldet wurden

Anwendungsprotokolle

App Runner sammelt die Ausgabe Ihres Anwendungscodes und streamt sie an Amazon CloudWatch Logs. Sie entscheiden, was in Ihrer Anwendung protokolliert werden soll, z. B. Informationen zur Anfrage an einen Webservice. Sie können diese Protokolle in der App-Runner-Konsole einsehen. Wenn Sie Visual Studio verwenden, können Sie CloudWatch-Protokolle von der IDE aus anzeigen, wenn Sie das AWS Toolkit für Visual Studio installiert haben. 

AWS-CloudTrail-Aktionsprotokolle

AWS CloudTrail zeichnet API-Aufrufe für AWS-Services auf und verfolgt sie als Ereignisse. Sie können Ereignisse in der AWS-Konsole anzeigen und optional Ereignisse so konfigurieren, dass sie kontinuierlich in einen Amazon-S3-Bucket geschrieben werden.

Referenz: CloudWatch-Protokolle, CloudWatch-Metriken, CloudTrail-API-Aktionen

AWS-Bereitstellungstool für .NET

 Das AWS-Bereitstellungstool für .NET ist ein interaktives Tool für die .NET CLI und das AWS Toolkit für Visual Studio, mit dem Sie .NET-Anwendungen mit minimalen AWS-Kenntnissen und mit den wenigsten Klicks oder Befehlen bereitstellen können. Das Tool führt Sie durch die Bereitstellung. Mit diesem Tool können Sie .NET-Webanwendungen mit einem einzigen Befehl, dotnet aws deploy, erstellen und in AWS App Runner veröffentlichen.

Wenn Sie Visual Studio als IDE verwenden und das AWS Toolkit für Visual Studio installiert haben, können Sie dieselbe geführte Bereitstellungsfunktion in Visual Studio nutzen. Klicken Sie im Solution Explorer mit der rechten Maustaste auf Ihr Projekt und wählen Sie „Publish to AWS“ (In AWS veröffentlichen) aus. Assistentenseiten führen Sie durch die Bereitstellung

AWS Copilot

AWS Copilot ist eine Open-Source-Befehlszeilenschnittstelle (CLI), die mit verwalteten Build-Pipelines sowohl für AWS App Runner als auch für Amazon ECS und AWS Fargate bereitgestellt werden kann. Copilot verwendet Amazon CloudFormation im Hintergrund. Copilot kann sowohl mit .NET- als auch mit Python- und Node.js-Anwendungen verwendet werden. 

Als .NET-Entwickler möchten Sie wahrscheinlich AWS-Bereitstellung für .NET CLI verwenden, um die Bereitstellung in AWS App Runner von der Befehlszeile aus durchzuführen. Sie können jedoch AWS Copilot wählen, wenn Sie auch Anwendungen bereitstellen möchten, die keine -NET-Anwendungen sind.

So sieht es aus, wenn Sie App Runner mit Copilot bereitstellen:

AWS CLI

Die AWS-Befehlszeilenschnittstelle enthält Befehle zum Anzeigen und Verwalten Ihrer AWS-App-Runner-Services. Sie können Services und verwandte Artefakte wie VPC-Connectors und benutzerdefinierte Domains erstellen, auflisten und beschreiben. Sie können die Konfigurationseinstellungen anzeigen und festlegen. Sie können Bereitstellungen starten. Sie können Anwendungen anhalten oder fortsetzen. Sie können Services löschen.

Verbindung zu anderen AWS-Services herstellen

Standardmäßig kann ein App-Runner-Service nur Nachrichten an öffentliche Endpunkte wie öffentliche Websites und Web-Services senden. Wenn Ihre Anwendung in andere AWS-Services integriert werden muss, ohne das Internet zu nutzen, wie z. B. eine Amazon RDS-Datenbank, Amazon-DynamoDB-Datenbank oder Amazon ElastiCache, können Sie einen VPC-Connector verwenden. Obwohl Sie im Allgemeinen keine Kenntnisse der AWS-Infrastruktur benötigen, um App Runner verwenden zu können, benötigen Sie ein umfassendes Verständnis von Amazon Virtual Private Cloud (VPC), Subnetzen und Sicherheit, um VPC-Connectors verwenden zu können. Ein grundlegendes Verständnis der Begriffe erhalten Sie unter Was ist Amazon VPC? und So funktioniert Amazon VPC.

VPC-Connectors

Ein VPC-Connector verknüpft Ihren App-Runner-Service mit einer VPC. Der VPC-Connector ist nur ein Teil der Verbindung. Um einen anderen AWS-Service zu erreichen, muss dieser andere Service ebenfalls über eine Verbindung zur VPC verfügen. Eine Möglichkeit, dies einzurichten, ist ein VPC-Endpunkt, eine private Verbindung, für die kein Internetzugang erforderlich ist. Das folgende Diagramm zeigt beispielsweise eine Verbindung zwischen einem App-Runner-Service und einer DynamoDB-Datenbank. Ein VPC-Connector für App Runner und ein VPC-Endpunkt für DynamoDB sind die beiden Verknüpfungen zur VPC, die die Kommunikation ermöglichen. 

Sie können einen VPC-Connector konfigurieren, wenn Sie einen App-Runner-Service erstellen. Um einen VPC-Connector zu konfigurieren, müssen Sie Folgendes angeben:

  1. Die VPC, mit der Sie eine Verbindung herstellen möchten, z. B. Ihre Standard-VPC
  2. Die auszuwählenden Subnetze. Für eine hohe Verfügbarkeit sollten Sie Subnetze in mindestens 3 Availability Zones auswählen.
  3. Ihre Standardsicherheitsgruppe.

Bei der Konfiguration von VPC-Connectors oder VPC-Endpunkten sollten Sie sich an den Sicherheitsexperten Ihres Unternehmens wenden.

VPC-Endpunkte

Ein VPC-Endpunkt ermöglicht es Ihnen, Ihre VPC privat mit unterstützten AWS-Services zu verbinden, ohne dass ein Internet-Gateway, ein NAT-Gerät oder eine VPN-Verbindung erforderlich ist. Instances in Ihrer VPC benötigen keine öffentlichen IP-Adressen, um mit Ressourcen im Service zu kommunizieren. Der Datenverkehr zwischen Ihrer VPC und dem anderen Service bleibt im Amazon-Netzwerk.

Weitere Informationen zu VPC-Endpunkten finden Sie im Handbuch zum AWS Well-Architected Framework-Handbuch und in den AWS-PrivateLink-Konzepten.

Sie können einen VPC-Endpunkt in der AWS-Konsole erstellen, indem Sie zu „VPC > Endpoints“ (VPC > Endpunkte) navigieren und auf „Create endpoint“ (Endpunkt erstellen) klicken. Um einen Endpunkt für einen AWS-Service zu erstellen, wählen Sie „category AWS services“ (AWS-Servicekategorien) aus, suchen nach dem Service, zu dem Sie eine Verbindung herstellen möchten, und wählen ihn aus.

Dokumentation und Ressourcen

Setzen Sie ein Lesezeichen für diese Ressourcen, die Sie zum Nachschlagen und Lernen verwenden können:

Die Produktdetailseiten von AWS App Runner bieten eine Serviceübersicht, Features, Preise, Ressourcen und häufig gestellte Fragen.

Die Seite mit der Dokumentation zu AWS App Runner enthält Links zu Ressourcen für Entwickler, darunter das App-Runner-Entwicklerhandbuch, die AWS-CLI-Referenz, Tutorials, Videos und Blogs.

Das Entwicklerhandbuch zu AWS App Runner beschreibt Architektur, Bereitstellung und Beobachtbarkeit.

Die AWS-CLI-Befehlsreferenz apprunner. Über die AWS CLI können Sie Services erstellen, manuelle Bereitstellungen durchführen und den Servicestatus auflisten.

Der Workshop Erstellen und Bereitstellen einer Web-API-Anwendung von Microsoft.NET Core für AWS App Runner mithilfe von CloudFormation zeigt, wie Sie mit App Runner eine Microsoft.NET-Web-API-Anwendung mit Amazon-Aurora-Datenbank erstellen.

Das Webinar-Video AWS App Runner: Deep Dive ist eine technische Diskussion und eine Demo.

AWS App Runner: Vom Code zu einer skalierbaren, sicheren Webanwendung in wenigen Minuten ist ein ausführlicher Blogbeitrag von Martin Beeby.

Die wichtigsten Erkenntnisse

Sie sollten jetzt in der Lage sein, die Vorteile, Anwendungsfälle, Features und das Preismodell von AWS App Runner zu erläutern.

Sie haben die 4 Schritte des Entwickler-Workflows gelernt.

Sie haben gelernt, App Runner-Instances in der AWS-Konsole, Überwachungs- und Protokollierungsoptionen und verschiedene Befehlszeilentools zu verwalten.

Sie haben gelernt, wie VPC-Connectors und VPC-Endpunkte zusammenarbeiten, um AWS App Runner mit anderen AWS-Services zu verbinden.

.NET-Workloads verwenden Sie am einfachsten mit App Runner, indem Sie Container-Images als Quelle verwenden. Wenn Sie Code-Repository-Quellen verwenden, sind weitere Schritte erforderlich, um .NET auf Instances zu installieren.

Zusammenfassung

In diesem Modul haben Sie die Grundlagen von AWS App Runner gelernt. In der Einführung zum Service haben wir über die Vorteile, Anwendungsfälle, Features, Einschränkungen und das Preismodell von App Runner gesprochen. Sie haben etwas über den Entwickler-Workflow gelernt und erfahren, was Sie konfigurieren können. Sie haben mehr über die AWS-Managementkonsole und eine Vielzahl von Tools erfahren, mit denen Sie einen App Runner-Service verwalten können.

War diese Seite hilfreich?

Praktische Übung