View a markdown version of this page

AWS App Runner Änderung der Verfügbarkeit - AWS App Runner

AWS App Runner wird ab dem 30. April 2026 nicht mehr für Neukunden geöffnet sein. Wenn Sie App Runner verwenden möchten, melden Sie sich vor diesem Datum an. Bestandskunden können den Service weiterhin wie gewohnt nutzen. Weitere Informationen finden Sie unter Änderung der AWS App Runner Verfügbarkeit.

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.

AWS App Runner Änderung der Verfügbarkeit

Nach reiflicher Überlegung haben wir beschlossen, ab AWS App Runner dem 30. April 2026 den Betrieb neuer Kunden einzustellen. AWS App Runner Bestandskunden können den Service weiterhin wie gewohnt nutzen, einschließlich der Schaffung neuer Ressourcen und Dienste. AWS investiert weiterhin in Sicherheit und Verfügbarkeit für AWS App Runner, aber wir planen nicht, neue Funktionen einzuführen.

Wir empfehlen Kunden, bei der Migration von Amazon Elastic Container Service (Amazon ECS) den Express-Modus zu testen. AWS App Runner Der Amazon ECS Express-Modus bewahrt die einfache Bedienung von App Runner und bietet gleichzeitig Zugriff auf den breiteren Funktionsumfang von Amazon ECS. Mit einem einzigen API-Aufruf stellen Sie ein Container-Image und zwei IAM-Rollen bereit, und Amazon ECS stellt einen kompletten Anwendungsstapel in Ihrem AWS Konto bereit, einschließlich eines ECS-Service auf Fargate, eines Application Load Balancer, Auto Scaling und Netzwerke. Für die Nutzung des Amazon ECS Express-Modus fallen keine zusätzlichen Gebühren an. Sie zahlen nur für die zugrunde liegenden AWS Ressourcen, die für die Ausführung Ihrer Anwendung erstellt wurden.

In diesem Handbuch wird beschrieben, wie Sie einen vorhandenen App Runner-Dienst in den ECS Express-Modus migrieren und den Datenverkehr mithilfe von DNS-Routing schrittweise verlagern.

Überblick über die Migration

In diesem Handbuch wird ein blue/green Bereitstellungsansatz mit DNS-gewichtetem Routing verwendet, um den Datenverkehr vom App Runner in den ECS Express-Modus zu migrieren. Beide Dienste werden während der Migration gleichzeitig ausgeführt. Sie verwenden Amazon Route 53 (oder Ihren DNS-Anbieter), um den Datenverkehr schrittweise vom App Runner-Service zum ECS Express Mode-Service zu verlagern, wobei Sie mit einem kleinen Prozentsatz beginnen und mit der Zeit steigen. Dieser Ansatz minimiert Ausfallzeiten und ermöglicht Ihnen ein Rollback, indem Sie die DNS-Gewichtung anpassen, falls Probleme auftreten.

Eine typische Migration umfasst die folgenden Schritte:

  1. Überprüfen Sie die Konfiguration des vorhandenen App Runner-Dienstes

  2. Erstellen Sie einen ECS Express Mode-Dienst mit demselben Container-Image

  3. Konfigurieren Sie dieselbe benutzerdefinierte Domäne für den ECS Express Mode-Dienst, wenn Sie eine benutzerdefinierte Domäne verwenden

  4. Verlagern Sie den Verkehr mithilfe von DNS-Routing von App Runner in den ECS Express-Modus

  5. Schließen Sie die Migration ab und löschen Sie den App Runner-Dienst, wenn er nicht mehr benötigt wird

Voraussetzungen

Bevor Sie beginnen, stellen Sie sicher, dass Sie über Folgendes verfügen:

  • Ein AWS Konto mit entsprechenden AWS Identity and Access Management Berechtigungen zum Erstellen und Verwalten von Amazon ECS- AWS App Runner, Amazon Route 53- und Application Load Balancer Balancer-Ressourcen

  • AWS CLI installiert und konfiguriert mit Anmeldeinformationen für Ihr Konto AWS

  • Ein Container-Image, das in Amazon Elastic Container Registry (oder einer anderen Container-Registry) gespeichert ist und im ECS Express-Modus bereitgestellt werden soll

  • Die für den ECS Express-Modus erforderlichen IAM-Rollen: ecsTaskExecutionRole für die Ausführung von Amazon ECS-Aufgaben und ecsInfrastructureRoleForExpressServices für die Bereitstellung der Infrastruktur im ECS Express-Modus

Wenn Sie eine bestehende benutzerdefinierte Domain während der Migration beibehalten möchten, benötigen Sie außerdem:

Bevor Sie beginnen

  • Container-Image-Anforderung — Der ECS Express-Modus stellt ein Container-Image bereit. Wenn Ihr App Runner-Service aus dem Quellcode bereitgestellt wird, fügen Sie zunächst einen Build-Schritt hinzu, der ein Container-Image erstellt und es in eine Registry wie Amazon Elastic Container Registry überträgt. Stellen Sie dieses Image dann im ECS Express-Modus bereit. Einzelheiten Migration quellenbasierter Bereitstellungen zur Migration quellenbasierter Bereitstellungen finden Sie unter.

  • Domänenverhalten — Wenn Ihr App Runner-Dienst bereits eine benutzerdefinierte Domain verwendet, können Sie z. B. app.example.com denselben Hostnamen während der Migration wiederverwenden und den Datenverkehr schrittweise zwischen App Runner und ECS Express-Modus verlagern, indem Sie DNS aktualisieren.

    Wenn Ihr App Runner-Dienst nur die standardmäßige App Runner-Dienst-URL verwendet, hat der ECS Express Mode-Dienst einen anderen Endpunkt. In diesem Fall gibt es keinen gemeinsamen Hostnamen, der für die schrittweise Verlagerung des Datenverkehrs verwendet werden kann. Sie sollten den ECS Express Mode Service erstellen und validieren und dann die Clients oder DNS aktualisieren, um den neuen Endpunkt zu verwenden.

Exemplarische Vorgehensweise zur Migration

Das folgende Diagramm zeigt, wie die Migration mithilfe von Route 53 funktioniert, um DNS-Einträge zwischen Ihrem App Runner-Dienst und Ihrem ECS Express Mode-Dienst zu verschieben.

Architekturdiagramm, das die Migration von App Runner zum ECS Express-Modus mit gewichtetem Route 53-Routing für eine schrittweise Verlagerung des Datenverkehrs zwischen den beiden Diensten zeigt.

Schritt 1: Überprüfen Sie die bestehende App Runner-Konfiguration

Überprüfen Sie in der App Runner-Konsole Ihren bestehenden Dienst und notieren Sie sich die Werte, die Sie übernehmen möchten. Beachten Sie mindestens Folgendes:

  • Container-Bild

  • Port der Anwendung

  • Umgebungsvariablen

  • Benutzerdefinierter Domainname, falls konfiguriert

  • ACM-Zertifikat, das der benutzerdefinierten Domain zugeordnet ist, falls konfiguriert

Sie können auch alle anderen Laufzeiteinstellungen überprüfen, die Sie in den neuen Dienst übernehmen möchten.

Einzelheiten zu benutzerdefinierten Domänen finden Sie unterVerwaltung benutzerdefinierter Domainnamen für einen App Runner-Dienst.

Schritt 2: Erstellen Sie den ECS Express Mode Service

Erstellen Sie einen ECS Express Mode-Dienst mit demselben Container-Image, das auch von Ihrem App Runner-Dienst verwendet wird. Sie können den Dienst entweder mit AWS-Managementkonsoleoder dem erstellen AWS CLI.

Beispiel für einen CLI-Befehl:

aws ecs create-express-gateway-service \ --execution-role-arn arn:aws:iam::123456789012:role/ecsTaskExecutionRole \ --infrastructure-role-arn arn:aws:iam::123456789012:role/ecsInfrastructureRoleForExpressServices \ --primary-container '{ "image": "123456789012.dkr.ecr.us-east-1.amazonaws.com/my-app:latest", "containerPort": 8080, "environment": [{ "name": "ENV_VAR_NAME", "value": "value" }] }' \ --service-name "my-application" \ --health-check-path "/" \ --scaling-target '{"minTaskCount":1,"maxTaskCount":4}' \ --monitor-resources

Ersetzen Sie das Bild, den Port, die Umgebungsvariablen und die Skalierungswerte durch die Werte Ihres App Runner-Dienstes.

Dieser Befehl stellt einen vollständigen Anwendungsstapel in Ihrem AWS Konto bereit, einschließlich eines ECS-Service auf Fargate, eines Application Load Balancer mit Zielgruppen und Zustandsprüfungen, Richtlinien zur auto-scaling, Sicherheitsgruppen und Netzwerkkonfiguration sowie einer Standard-URL.

Die Bereitstellung dauert in der Regel 3—5 Minuten. Sie können den Fortschritt in der Amazon ECS-Konsole unter dem Tab Ressourcen verfolgen.

Wenn Sie fertig sind, testen Sie Ihren ECS Express Mode-Service mit der Standard-URL, die in der Konsole angezeigt wird. Stellen Sie sicher, dass Ihre Anwendung ordnungsgemäß funktioniert, bevor Sie mit der Verkehrsverlagerung fortfahren.

Schritt 3: Konfigurieren Sie die benutzerdefinierte Domäne für den ECS Express-Modus

Wenn Ihr App Runner-Dienst eine benutzerdefinierte Domain verwendet, konfigurieren Sie dieselbe benutzerdefinierte Domain für den ECS Express Mode-Dienst, bevor Sie den Datenverkehr verlagern. In diesem Schritt wird der Application Load Balancer, der für den ECS Express Mode Service erstellt wurde, so konfiguriert, dass er Traffic für Ihre Domain akzeptiert und das ACM-Zertifikat für HTTPS verwendet.

  • Fügen Sie Ihre benutzerdefinierte Domain als Host-Header-Bedingung zur Application Load Balancer Balancer-Listener-Regel hinzu. Verwenden Sie denselben Domainnamen, den Sie mit Ihrem App Runner-Dienst verknüpft haben (z. B.app.example.com). Dadurch wird der Application Load Balancer angewiesen, den Verkehr von Ihrer Domain an die Zielgruppe des ECS Express-Modus weiterzuleiten.

  • Fügen Sie das SSL-Zertifikat dem Application Load Balancer HTTPS-Listener hinzu. Fügen Sie das in Schritt 1 angegebene ACM-Zertifikat dem HTTPS-Listener hinzu.

Eine ausführliche Anleitung finden Sie unter Hinzufügen einer benutzerdefinierten Domain zu Ihrem Service im Amazon ECS Developer Guide.

Die folgende Abbildung zeigt ein Beispiel für die Konfiguration der Host-Header-Bedingung in der Application Load Balancer Balancer-Listener-Regel.

Konsolen-Screenshot, der die Application Load Balancer Balancer-Listener-Regel mit Host-Header-Bedingungen zeigt, die für den ECS Express-Modus-Dienstendpunkt und die benutzerdefinierte Domain konfiguriert sind.

Schritt 4: Verlagern Sie den Verkehr mithilfe des gewichteten Routing nach Route 53

Wenn Ihr App Runner-Dienst bereits eine benutzerdefinierte Domain verwendet, können Sie den Datenverkehr mithilfe des gewichteten Route 53-Routing schrittweise auf den ECS Express-Modus-Dienst verlagern. Gewichtetes Routing ermöglicht es Ihnen, den Datenverkehr für denselben Hostnamen an mehrere Endpunkte weiterzuleiten. Jeder Endpunkt ist als separater DNS-Eintrag mit eigener Gewichtung definiert, und Route 53 verteilt Anfragen entsprechend dieser Gewichtung.

Anmerkung

In diesem Handbuch wird Route 53 als Beispiel verwendet. Wenn Sie einen anderen DNS-Anbieter verwenden, nehmen Sie die entsprechenden DNS-Änderungen mithilfe der Traffic-Verwaltungsfunktionen Ihres Anbieters vor.

Konvertieren Sie den vorhandenen App Runner-Datensatz in einen gewichteten Datensatz:

  1. Öffnen Sie die Route 53-Konsole.

  2. Wählen Sie Gehostete Zonen und dann die Hosting-Zone für Ihre Domain aus.

  3. Suchen Sie den vorhandenen Datensatz für Ihren Hostnamen (z. B.app.example.com), der derzeit auf App Runner verweist.

  4. Bearbeiten Sie den Datensatz und ändern Sie seine Routing-Richtlinie auf Gewichtet.

  5. Stellen Sie Weight auf ein 100 (dadurch wird der gesamte anfängliche Traffic an App Runner weitergeleitet).

  6. Geben Sie unter Datensatz-ID eine aussagekräftige Kennung ein, z. B. app-runner-service

  7. Wählen Sie Änderungen speichern aus.

Erstellen Sie einen gewichteten Datensatz für den ECS Express-Modus:

  1. Erstellen Sie einen neuen Datensatz in derselben Hosting-Zone.

  2. Verwenden Sie denselben Datensatznamen (zum Beispielapp.example.com).

  3. Verwenden Sie denselben Datensatztyp.

  4. Stellen Sie die Routing-Richtlinie auf Gewichtet ein.

  5. Wählen Sie unter Traffic weiterleiten an die Option Alias to Application und Classic Load Balancer aus.

  6. Wählen Sie Ihren ECS Express Mode Application Load Balancer aus der Dropdownliste aus.

  7. Stellen Sie Gewicht auf ein 0 (kein Datenverkehr fließt in den ECS Express-Modus, bis Sie die Gewichtung explizit erhöhen).

  8. Geben Sie unter Datensatz-ID eine aussagekräftige Kennung ein, z. B. ecs-express-service

  9. Wählen Sie Create records (Datensätze erstellen).

Den Verkehr schrittweise verlagern:

Sobald die DNS-Einträge konfiguriert sind, beginnen Sie mit der Verlagerung des Datenverkehrs, indem Sie die Gewichtung im ECS Express-Modus erhöhen und gleichzeitig die Gewichtung von App Runner proportional verringern. Ein empfohlener Ansatz:

  • Stellen Sie den ECS Express-Modus auf 10/App Runner auf 90 ein

  • Überwachen und validieren Sie, dass der Service Anfragen erfolgreich verarbeitet

  • Auf 25/75 erhöhen

  • Auf 50/50 erhöhen

  • Auf 75/ 25 erhöhen

  • Vollständig bei 100/0

Testen Sie bei jedem Schritt die Anwendung, bevor Sie zusätzlichen Verkehr verlagern. Wenn zu irgendeinem Zeitpunkt Probleme auftreten, führen Sie ein Rollback durch, indem Sie die Gewichtungen auf ihre vorherigen Werte zurücksetzen.

Wichtig

Lassen Sie Ihren App Runner-Dienst für einen Gültigkeitszeitraum (z. B. 24—48 Stunden) laufen, um sicherzustellen, dass sich DNS-Änderungen weltweit verbreitet haben, und um bei Bedarf eine Rollback-Option bereitzustellen. Wenn Sie auf Probleme stoßen, können Sie die Route 53-Gewichtungen schnell wieder auf App Runner zurücksetzen.

Schritt 5: Schließen Sie die Migration ab

Nachdem Sie überprüft haben, ob der ECS Express Mode Service den Produktionsverkehr korrekt verarbeitet und der Validierungszeitraum abgelaufen ist, schließen Sie die Migration ab:

  • Entfernen Sie in Route 53 den gewichteten Datensatz, der auf App Runner verweist (oder setzen Sie seine Gewichtung auf 0).

  • Entfernen Sie die benutzerdefinierte Domänenzuweisung aus dem App Runner-Dienst.

Löschen Sie den App Runner-Dienst:

aws apprunner delete-service --service-arn your-app-runner-service-arn

Erwägen Sie auch, alle Ressourcen zu entfernen, die nicht mehr benötigt werden:

  • Route 53 gewichtete Routing-Datensätze für App Runner

  • Unbenutzte Container-Images aus Amazon Elastic Container Registry

  • Speziell für App Runner erstellte IAM-Rollen, sofern sie nicht mehr benötigt werden

Anmerkung

Löschen Sie nicht den ECS Express Mode-Dienst, seinen Application Load Balancer oder die zugehörigen Ressourcen, wenn der Dienst in der Produktion läuft.

Migration quellenbasierter Bereitstellungen

Wenn Ihr vorhandener App Runner-Dienst aus dem Quellcode und nicht aus einem Container-Image bereitgestellt wird, müssen Sie vor der Bereitstellung im ECS Express-Modus einen Schritt zur Containerisierung hinzufügen. Im Gegensatz zu App Runner erfordert der ECS Express-Modus ein Container-Image. Sie können das automatisierte Bereitstellungserlebnis von App Runner jedoch mithilfe von CI/CD Tools wie GitHub Aktionen mit der Amazon ECS Deploy Express Service GitHub Action replizieren.

Der Migrations-Workflow besteht aus drei Phasen:

  1. Erstellen Sie das Container-Image mit einer Docker-Datei

  2. Push das Image in eine Container-Registry wie Amazon Elastic Container Registry

  3. Stellen Sie das Image im ECS Express-Modus bereit

Das folgende Diagramm zeigt, wie dieser Workflow mithilfe von GitHub Aktionen funktioniert:

Architekturdiagramm, das die Migration eines quellenbasierten App Runner-Service in den ECS Express-Modus mithilfe von GitHub Aktionen für die Erstellung von Container-Images, das Pushen in Amazon Elastic Container Registry und die Bereitstellung im ECS Express-Modus zeigt.

Containerisieren Sie Ihre Anwendung

Wenn Ihre Anwendung noch nicht über ein Dockerfile verfügt, erstellen Sie eines in Ihrem Repository-Stammverzeichnis. Das Dockerfile dient als Blaupause für die Erstellung und Verpackung Ihres Quellcodes in ein Container-Image.

Ihre Repository-Struktur sollte Folgendes beinhalten:

your-app/ ├── src/ # Application source code ├── Dockerfile # Container build instructions ├── package.json # Dependencies and scripts └── .github/ # GitHub configuration └── workflows/ # GitHub Actions workflows └── deploy.yml # ECS Express Mode deployment workflow

Richten Sie GitHub Aktionen für die automatisierte Bereitstellung ein

Um die automatische Bereitstellung von App Runner bei Code-Push zu replizieren, konfigurieren Sie GitHub Aktionen wie folgt:

Beispiel für einen GitHub Aktionsablauf

Erstellen Sie eine Workflow-Datei unter.github/workflows/deploy.yml:

name: Build and Deploy to ECS on: push: branches: [ main ] env: AWS_REGION: ${{ vars.AWS_REGION }} AWS_ACCOUNT_ID: ${{ vars.AWS_ACCOUNT_ID }} ECR_REPOSITORY: ${{ vars.ECR_REPOSITORY }} ECS_SERVICE: ${{ vars.ECS_SERVICE }} ECS_CLUSTER: ${{ vars.ECS_CLUSTER }} jobs: deploy: name: Deploy runs-on: ubuntu-latest environment: production permissions: id-token: write contents: read steps: - name: Checkout uses: actions/checkout@v6 - name: Configure AWS credentials uses: aws-actions/configure-aws-credentials@v5 with: aws-region: ${{ env.AWS_REGION }} role-to-assume: arn:aws:iam::${{ env.AWS_ACCOUNT_ID }}:role/github-actions-ecs-role role-session-name: GitHubActionsECSDeployment - name: Login to Amazon ECR id: login-ecr uses: aws-actions/amazon-ecr-login@v2 - name: Get short commit hash run: echo "IMAGE_TAG=${GITHUB_SHA:0:7}" >> $GITHUB_ENV - name: Build, tag, and push image to Amazon ECR id: build-image env: ECR_REGISTRY: ${{ steps.login-ecr.outputs.registry }} uses: docker/build-push-action@v6 with: context: . push: true tags: ${{ env.ECR_REGISTRY }}/${{ env.ECR_REPOSITORY }}:latest,${{ env.ECR_REGISTRY }}/${{ env.ECR_REPOSITORY }}:${{ env.IMAGE_TAG }} - name: Deploy to ECS Express Mode uses: aws-actions/amazon-ecs-deploy-express-service@v1 env: ECR_REGISTRY: ${{ steps.login-ecr.outputs.registry }} with: service-name: ${{ env.ECS_SERVICE }} image: ${{ env.ECR_REGISTRY }}/${{ env.ECR_REPOSITORY }}:${{ env.IMAGE_TAG }} execution-role-arn: arn:aws:iam::${{ env.AWS_ACCOUNT_ID }}:role/ecsTaskExecutionRole infrastructure-role-arn: arn:aws:iam::${{ env.AWS_ACCOUNT_ID }}:role/ecsInfrastructureRoleForExpressServices cluster: ${{ env.ECS_CLUSTER }} container-port: 8080 environment-variables: | [ {"name": "ENV", "value": "Prod"} ] cpu: '1024' memory: '2048' health-check-path: /health min-task-count: 1 max-task-count: 4 auto-scaling-metric: AVERAGE_CPU auto-scaling-target-value: 70

Wenn Sie Codeänderungen an Ihren Hauptzweig übertragen, erstellt GitHub Actions automatisch ein neues Container-Image, überträgt es an Amazon Elastic Container Registry und stellt es für Ihren ECS Express Mode-Service bereit. Dies entspricht der Erfahrung mit automatisierter Bereitstellung, die Sie mit App Runner hatten.

Sobald der ECS Express Mode Service läuft, folgen Sie den Schritten 3—5 in der exemplarischen Migrationsanleitung, um die benutzerdefinierte Domain zu konfigurieren, den Datenverkehr mithilfe von DNS-Routing umzuleiten und die Migration abzuschließen.

Weitere Ressourcen