View a markdown version of this page

AWS App Runner modifica della disponibilità - AWS App Runner

AWS App Runner non sarà più aperto a nuovi clienti a partire dal 30 aprile 2026. Se desideri utilizzare App Runner, registrati prima di tale data. I clienti esistenti possono continuare a utilizzare il servizio normalmente. Per ulteriori informazioni, consulta AWS App Runner la pagina Modifica della disponibilità.

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

AWS App Runner modifica della disponibilità

Dopo un'attenta valutazione, abbiamo deciso di chiudere AWS App Runner a nuovi clienti a partire dal 30 aprile 2026. AWS App Runner I clienti esistenti possono continuare a utilizzare il servizio normalmente, inclusa la creazione di nuove risorse e servizi. AWS continua a investire in sicurezza e disponibilità per AWS App Runner, ma non abbiamo intenzione di introdurre nuove funzionalità.

Consigliamo ai clienti di esplorare la modalità Express di Amazon Elastic Container Service (Amazon ECS) durante la migrazione da. AWS App Runner La modalità Amazon ECS Express preserva la semplicità operativa di App Runner fornendo al contempo l'accesso al più ampio set di funzionalità di Amazon ECS. Con una singola chiamata API, fornisci un'immagine del contenitore e due ruoli IAM e Amazon ECS fornisce uno stack di applicazioni completo nel tuo AWS account, incluso un servizio ECS su Fargate, un Application Load Balancer, auto scaling e networking. Non sono previsti costi aggiuntivi per l'utilizzo della modalità Amazon ECS Express. Paghi solo per le AWS risorse sottostanti create per eseguire l'applicazione.

Questa guida descrive come migrare un servizio App Runner esistente alla modalità ECS Express e spostare gradualmente il traffico utilizzando il routing DNS.

Panoramica sulla migrazione

Questa guida utilizza un approccio di blue/green implementazione con routing DNS ponderato per migrare il traffico da App Runner alla modalità ECS Express. Entrambi i servizi vengono eseguiti contemporaneamente durante la migrazione. Utilizzi Amazon Route 53 (o il tuo provider DNS) per spostare gradualmente il traffico dal servizio App Runner al servizio ECS Express Mode, iniziando con una piccola percentuale e aumentando nel tempo. Questo approccio riduce al minimo i tempi di inattività e consente di ripristinare i pesi del DNS in caso di problemi.

Una migrazione tipica include i seguenti passaggi:

  1. Rivedi la configurazione del servizio App Runner esistente

  2. Crea un servizio in modalità ECS Express utilizzando la stessa immagine del contenitore

  3. Configura lo stesso dominio personalizzato per il servizio ECS Express Mode, se utilizzi un dominio personalizzato

  4. Sposta il traffico da App Runner alla modalità ECS Express utilizzando il routing DNS

  5. Completa la migrazione ed elimina il servizio App Runner quando non è più necessario

Prerequisiti

Prima di iniziare, assicurati di disporre di quanto segue:

  • Un AWS account con AWS Identity and Access Management le autorizzazioni appropriate per creare e gestire le risorse Amazon ECS, AWS App Runner Amazon Route 53 e Application Load Balancer

  • AWS CLI installato e configurato con le credenziali del tuo account AWS

  • Un'immagine del contenitore archiviata in Amazon Elastic Container Registry (o in un altro registro di container) da distribuire in modalità ECS Express

  • I ruoli IAM richiesti dalla modalità ECS Express: ecsTaskExecutionRole per l'esecuzione delle attività di Amazon ECS e ecsInfrastructureRoleForExpressServices per il provisioning dell'infrastruttura in modalità ECS Express

Se desideri preservare un dominio personalizzato esistente durante la migrazione, devi anche:

  • Un nome di dominio registrato che controlli, ad esempio app.example.com utilizzando Amazon Route 53 o un registrar di domini di terze parti

  • Un SSL/TLS certificato in AWS Certificate Manager(ACM) che corrisponde al tuo dominio personalizzato. Richiedi un certificato ACM pubblico nello stesso Regione AWS luogo in cui distribuisci le tue risorse. Sia App Runner che Amazon ECS Express Mode richiedono un certificato ACM per abilitare l'accesso HTTPS con domini personalizzati.

Prima di iniziare

  • Requisiti relativi all'immagine del contenitore: la modalità ECS Express implementa un'immagine del contenitore. Se il servizio App Runner è distribuito dal codice sorgente, aggiungi innanzitutto una fase di compilazione che crei un'immagine del contenitore e la invii a un registro come Amazon Elastic Container Registry. Quindi distribuisci quell'immagine in modalità ECS Express. Migrazione delle distribuzioni basate sul codice sorgentePer ulteriori dettagli sulla migrazione delle distribuzioni basate sui sorgenti, consulta.

  • Comportamento del dominio: se il servizio App Runner utilizza già un dominio personalizzato, ad esempioapp.example.com, puoi riutilizzare lo stesso nome host durante la migrazione e spostare gradualmente il traffico tra App Runner e la modalità ECS Express aggiornando il DNS.

    Se il servizio App Runner utilizza solo l'URL predefinito del servizio App Runner, il servizio ECS Express Mode avrà un endpoint diverso. In questo caso non esiste un nome host condiviso che possa essere utilizzato per lo spostamento graduale del traffico. È necessario creare e convalidare il servizio ECS Express Mode e quindi aggiornare i client o il DNS per utilizzare il nuovo endpoint.

Procedura dettagliata sulla migrazione

Il diagramma seguente mostra come funziona la migrazione utilizzando Route 53 per spostare i record DNS tra il servizio App Runner e il servizio ECS Express Mode.

Diagramma di architettura che mostra la migrazione da App Runner alla modalità ECS Express utilizzando il routing ponderato Route 53 per lo spostamento graduale del traffico tra i due servizi.

Passaggio 1: rivedi la configurazione esistente di App Runner

Nella console App Runner, esamina il servizio esistente e annota i valori che desideri trasferire. Come minimo, tieni presente quanto segue:

  • Immagine del contenitore

  • Porta dell'applicazione

  • Variabili di ambiente

  • Nome di dominio personalizzato, se configurato

  • Certificato ACM associato al dominio personalizzato, se configurato

Puoi anche rivedere tutte le altre impostazioni di runtime che desideri trasferire nel nuovo servizio.

Per dettagli personalizzati sul dominio, consultaGestione di nomi di dominio personalizzati per un servizio App Runner.

Fase 2: Creare il servizio ECS Express Mode

Crea un servizio in modalità ECS Express utilizzando la stessa immagine del contenitore utilizzata dal servizio App Runner. È possibile creare il servizio utilizzando il Console di gestione AWSo il. AWS CLI

Esempio di comando CLI:

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

Sostituisci l'immagine, la porta, le variabili di ambiente e i valori di scala con quelli del tuo servizio App Runner.

Questo comando fornisce uno stack di applicazioni completo nel tuo AWS account, incluso un servizio ECS su Fargate, un Application Load Balancer con gruppi target e controlli di integrità, politiche di auto-scaling, gruppi di sicurezza e configurazione di rete e un URL predefinito.

Il provisioning richiede in genere 3-5 minuti. Puoi monitorare i progressi nella console Amazon ECS nella scheda Risorse.

Una volta completato, testa il servizio ECS Express Mode utilizzando l'URL predefinito mostrato nella console. Verifica che l'applicazione funzioni correttamente prima di procedere con lo spostamento del traffico.

Passaggio 3: Configurare il dominio personalizzato per la modalità ECS Express

Se il servizio App Runner utilizza un dominio personalizzato, configura lo stesso dominio personalizzato per il servizio ECS Express Mode prima di spostare il traffico. Questo passaggio configura l'Application Load Balancer creato per il servizio ECS Express Mode in modo che accetti il traffico per il tuo dominio e utilizzi il certificato ACM per HTTPS.

  • Aggiungi il tuo dominio personalizzato come condizione di intestazione dell'host nella regola del listener Application Load Balancer. Utilizza lo stesso nome di dominio associato al servizio App Runner (ad esempio,). app.example.com Ciò indica all'Application Load Balancer di indirizzare il traffico dal dominio al gruppo target della modalità ECS Express.

  • Aggiungi il certificato SSL al listener HTTPS Application Load Balancer. Aggiungi il certificato ACM indicato nel passaggio 1 al listener HTTPS.

Per istruzioni dettagliate, consulta Aggiungere un dominio personalizzato al servizio nella Amazon ECS Developer Guide.

L'immagine seguente mostra un esempio di configurazione della condizione dell'intestazione dell'host nella regola del listener Application Load Balancer.

Schermata della console che mostra la regola del listener Application Load Balancer con le condizioni dell'intestazione dell'host configurate per l'endpoint del servizio ECS Express Mode e il dominio personalizzato.

Fase 4: Spostare il traffico utilizzando il routing ponderato della Route 53

Se il servizio App Runner utilizza già un dominio personalizzato, puoi spostare gradualmente il traffico verso il servizio ECS Express Mode utilizzando il routing ponderato Route 53. Il routing ponderato consente di indirizzare il traffico per lo stesso nome host verso più endpoint. Ogni endpoint è definito come un record DNS separato con un proprio peso e Route 53 distribuisce le richieste in base a tali pesi.

Nota

Questa guida utilizza Route 53 come esempio. Se utilizzi un altro provider DNS, apporta modifiche DNS equivalenti utilizzando le funzionalità di gestione del traffico del tuo provider.

Converti il record App Runner esistente in un record ponderato:

  1. Apri la console Route 53.

  2. Scegli Zone ospitate, quindi seleziona la zona ospitata per il tuo dominio.

  3. Individua il record esistente per il tuo hostname (ad esempioapp.example.com) che attualmente punta ad App Runner.

  4. Modifica il record e modifica la sua politica di routing in Weighted.

  5. Imposta Weight su 100 (questo indirizza tutto il traffico iniziale verso App Runner).

  6. In Record ID, inserisci un identificatore descrittivo come. app-runner-service

  7. Scegli Save changes (Salva modifiche).

Crea un record ponderato per la modalità ECS Express:

  1. Crea un nuovo record nella stessa zona ospitata.

  2. Usa lo stesso nome di record (ad esempioapp.example.com).

  3. Usa lo stesso tipo di record.

  4. Imposta la politica di routing su Weighted.

  5. In Instrada il traffico verso, scegli Alias to Application e Classic Load Balancer.

  6. Scegli il tuo Application Load Balancer in modalità ECS Express dal menu a discesa.

  7. Imposta Peso su 0 (nessun traffico fluisce verso la modalità ECS Express finché non aumenti esplicitamente il peso).

  8. In Record ID, inserisci un identificatore descrittivo come. ecs-express-service

  9. Scegli Crea record.

Sposta gradualmente il traffico:

Una volta configurati i record DNS, inizia a spostare il traffico aumentando il peso della modalità ECS Express e diminuendo proporzionalmente il peso di App Runner. Un approccio consigliato:

  • Imposta la modalità ECS Express su 10/App Runner su 90

  • Monitora e convalida che il servizio gestisca le richieste con successo

  • Aumentare a 25/75

  • Aumentare a 50/ 50

  • Aumentare a 75/25

  • Completa a 100/0

In ogni fase, prova l'applicazione prima di spostare traffico aggiuntivo. Se in qualsiasi momento si verificano dei problemi, tornate indietro regolando i pesi sui valori precedenti.

Importante

Mantieni attivo il servizio App Runner per un periodo di convalida (ad esempio 24-48 ore) per confermare che le modifiche DNS si sono propagate a livello globale e, se necessario, per fornire un'opzione di rollback. In caso di problemi, puoi ripristinare rapidamente i pesi di Route 53 su App Runner.

Fase 5: Completare la migrazione

Dopo aver verificato che il servizio ECS Express Mode gestisca correttamente il traffico di produzione e che il periodo di convalida sia trascorso, completa la migrazione:

  • In Route 53, rimuovi il record ponderato che punta ad App Runner (o imposta il suo peso su 0).

  • Rimuovi l'associazione di dominio personalizzata dal servizio App Runner.

Elimina il servizio App Runner:

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

Valuta anche la possibilità di rimuovere tutte le risorse che non sono più necessarie:

  • Record di routing ponderati di Route 53 per App Runner

  • Immagini di container non utilizzate da Amazon Elastic Container Registry

  • Ruoli IAM creati appositamente per App Runner, se non più necessari

Nota

Non eliminare il servizio ECS Express Mode, il relativo Application Load Balancer o le risorse associate se il servizio è in esecuzione in produzione.

Migrazione delle distribuzioni basate sul codice sorgente

Se il servizio App Runner esistente viene distribuito dal codice sorgente anziché da un'immagine del contenitore, è necessario aggiungere una fase di containerizzazione prima di eseguire la distribuzione in modalità ECS Express. A differenza di App Runner, ECS Express Mode richiede un'immagine del contenitore. Tuttavia, puoi replicare l'esperienza di distribuzione automatizzata di App Runner utilizzando CI/CD strumenti come GitHub Actions with Amazon ECS Deploy Express Service Action. GitHub

Il flusso di lavoro di migrazione prevede tre fasi:

  1. Crea l'immagine del contenitore utilizzando un Dockerfile

  2. Invia l'immagine a un registro di contenitori come Amazon Elastic Container Registry

  3. Distribuisci l'immagine in modalità ECS Express

Il diagramma seguente mostra come funziona questo flusso di lavoro utilizzando Actions: GitHub

Diagramma di architettura che mostra la migrazione di un servizio App Runner basato sul codice sorgente alla modalità ECS Express utilizzando GitHub Actions per creare immagini di container, eseguire il push su Amazon Elastic Container Registry e distribuire in modalità ECS Express.

Containerizza la tua applicazione

Se l'applicazione non ha già un Dockerfile, creane uno nella radice del repository. Il Dockerfile funge da modello per creare e impacchettare il codice sorgente in un'immagine del contenitore.

La struttura del repository dovrebbe includere:

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

Imposta GitHub le azioni per la distribuzione automatizzata

Per replicare la distribuzione automatica di App Runner tramite code push, configura GitHub Actions con quanto segue:

Esempio di workflow GitHub Actions

Crea un file di workflow all'indirizzo.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

Quando invii modifiche al codice nella filiale principale, GitHub Actions crea automaticamente una nuova immagine del contenitore, la invia ad Amazon Elastic Container Registry e la distribuisce al tuo servizio ECS Express Mode. Questo replica l'esperienza di distribuzione automatizzata che hai avuto con App Runner.

Una volta che il servizio ECS Express Mode è in esecuzione, segui i passaggi 3—5 della procedura dettagliata di migrazione per configurare il dominio personalizzato, spostare il traffico utilizzando il routing DNS e completare la migrazione.

Risorse aggiuntive