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:
Rivedi la configurazione del servizio App Runner esistente
Crea un servizio in modalità ECS Express utilizzando la stessa immagine del contenitore
Configura lo stesso dominio personalizzato per il servizio ECS Express Mode, se utilizzi un dominio personalizzato
Sposta il traffico da App Runner alla modalità ECS Express utilizzando il routing DNS
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:
ecsTaskExecutionRoleper l'esecuzione delle attività di Amazon ECS eecsInfrastructureRoleForExpressServicesper 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.comutilizzando Amazon Route 53 o un registrar di domini di terze partiUn 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 esempio
app.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.
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.comCiò 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.
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:
Apri la console Route 53.
Scegli Zone ospitate, quindi seleziona la zona ospitata per il tuo dominio.
Individua il record esistente per il tuo hostname (ad esempio
app.example.com) che attualmente punta ad App Runner.Modifica il record e modifica la sua politica di routing in Weighted.
Imposta Weight su
100(questo indirizza tutto il traffico iniziale verso App Runner).In Record ID, inserisci un identificatore descrittivo come.
app-runner-serviceScegli Save changes (Salva modifiche).
Crea un record ponderato per la modalità ECS Express:
Crea un nuovo record nella stessa zona ospitata.
Usa lo stesso nome di record (ad esempio
app.example.com).Usa lo stesso tipo di record.
Imposta la politica di routing su Weighted.
In Instrada il traffico verso, scegli Alias to Application e Classic Load Balancer.
Scegli il tuo Application Load Balancer in modalità ECS Express dal menu a discesa.
Imposta Peso su
0(nessun traffico fluisce verso la modalità ECS Express finché non aumenti esplicitamente il peso).In Record ID, inserisci un identificatore descrittivo come.
ecs-express-serviceScegli 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-arnyour-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
Il flusso di lavoro di migrazione prevede tre fasi:
Crea l'immagine del contenitore utilizzando un Dockerfile
Invia l'immagine a un registro di contenitori come Amazon Elastic Container Registry
Distribuisci l'immagine in modalità ECS Express
Il diagramma seguente mostra come funziona questo flusso di lavoro utilizzando Actions: GitHub
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:
Crea un provider OpenID Connect (OIDC)
per consentire ad GitHub Actions di assumere un ruolo IAM Crea un ruolo IAM con le autorizzazioni ECS Express Mode
e Amazon Elastic Container Registry Crea i due ruoli IAM richiesti dalla modalità ECS Express
Crea variabili di GitHub ambiente per le tue risorse ECS:
ECS_SERVICE,,ECS_CLUSTERAWS_REGION, eAWS_ACCOUNT_IDECR_REPOSITORY
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.