AWS App Runner não estará mais aberto a novos clientes a partir de 30 de abril de 2026. Se você quiser usar o App Runner, inscreva-se antes dessa data. Os clientes atuais podem continuar usando o serviço normalmente. Para obter mais informações, consulte Mudança de disponibilidade do AWS App Runner.
As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
AWS App Runner mudança de disponibilidade
Após uma análise cuidadosa, decidimos fechar novos clientes AWS App Runner a partir de 30 de abril de 2026. AWS App Runner Os clientes existentes podem continuar usando o serviço normalmente, incluindo a criação de novos recursos e serviços. AWS continua investindo em segurança e disponibilidade para AWS App Runner, mas não planejamos introduzir novos recursos.
Recomendamos que os clientes explorem o modo expresso do Amazon Elastic Container Service (Amazon ECS) ao migrar do. AWS App Runner O Amazon ECS Express Mode preserva a simplicidade operacional do App Runner enquanto fornece acesso ao conjunto mais amplo de recursos do Amazon ECS. Com uma única chamada de API, você fornece uma imagem de contêiner e duas funções do IAM, e o Amazon ECS provisiona uma pilha completa de aplicativos em sua AWS conta, incluindo um serviço ECS no Fargate, um Application Load Balancer, auto scaling e rede. Não há cobrança adicional pelo uso do Amazon ECS Express Mode. Você paga somente pelos AWS recursos subjacentes criados para executar seu aplicativo.
Este guia descreve como migrar um serviço App Runner existente para o modo ECS Express e mudar gradualmente o tráfego usando o roteamento DNS.
Visão geral da migração
Este guia usa uma abordagem de blue/green implantação com roteamento ponderado de DNS para migrar o tráfego do App Runner para o modo ECS Express. Ambos os serviços são executados simultaneamente durante a migração. Você usa o Amazon Route 53 (ou seu provedor de DNS) para transferir gradualmente o tráfego do serviço App Runner para o serviço ECS Express Mode, começando com uma pequena porcentagem e aumentando com o tempo. Essa abordagem minimiza o tempo de inatividade e permite reverter ajustando os pesos do DNS se surgirem problemas.
Uma migração típica inclui as seguintes etapas:
Revise a configuração do serviço App Runner existente
Crie um serviço ECS Express Mode usando a mesma imagem de contêiner
Configure o mesmo domínio personalizado para o serviço ECS Express Mode, se você usar um domínio personalizado
Mude o tráfego do App Runner para o modo ECS Express usando o roteamento DNS
Conclua a migração e exclua o serviço App Runner quando ele não for mais necessário
Pré-requisitos
Antes de começar, verifique se você tem o seguinte:
Uma AWS conta com AWS Identity and Access Management permissões apropriadas para criar e gerenciar recursos do Amazon ECS AWS App Runner, Amazon Route 53 e Application Load Balancer
AWS CLI instalado e configurado com credenciais para sua conta AWS
Uma imagem de contêiner armazenada no Amazon Elastic Container Registry (ou outro registro de contêiner) para ser implantada no ECS Express Mode
As funções do IAM exigidas pelo ECS Express Mode:
ecsTaskExecutionRolepara a execução de tarefas do Amazon ECS eecsInfrastructureRoleForExpressServicespara o provisionamento da infraestrutura do ECS Express Mode
Se você quiser preservar um domínio personalizado existente durante a migração, você também precisará:
Um nome de domínio registrado que você controla, como, por exemplo
app.example.com, usando o Amazon Route 53 ou um registrador de domínio terceirizadoUm SSL/TLS certificado em AWS Certificate Manager(ACM) que corresponde ao seu domínio personalizado. Solicite um certificado público do ACM no mesmo Região da AWS local em que você está implantando seus recursos. Tanto o App Runner quanto o Amazon ECS Express Mode exigem um certificado ACM para permitir o acesso HTTPS com domínios personalizados.
Antes de começar
-
Requisito de imagem de contêiner — o ECS Express Mode implanta uma imagem de contêiner. Se seu serviço App Runner for implantado a partir do código-fonte, primeiro adicione uma etapa de criação que cria uma imagem de contêiner e a envia para um registro, como o Amazon Elastic Container Registry. Em seguida, implante essa imagem no modo ECS Express. Consulte Migração de implantações baseadas na origem para obter detalhes sobre a migração de implantações baseadas na fonte.
-
Comportamento do domínio — Se seu serviço App Runner já usa um domínio personalizado, como
app.example.com, você pode reutilizar esse mesmo nome de host durante a migração e mudar gradualmente o tráfego entre o App Runner e o ECS Express Mode atualizando o DNS.Se seu serviço App Runner usar somente a URL padrão do serviço App Runner, o serviço ECS Express Mode terá um endpoint diferente. Nesse caso, não há um nome de host compartilhado que possa ser usado para uma mudança gradual do tráfego. Você deve criar e validar o serviço ECS Express Mode e, em seguida, atualizar os clientes ou o DNS para usar o novo endpoint.
Passo a passo da migração
O diagrama a seguir mostra como a migração funciona usando o Route 53 para transferir registros DNS entre o serviço App Runner e o serviço ECS Express Mode.
Etapa 1: revisar a configuração existente do App Runner
No console do App Runner, revise seu serviço existente e anote os valores que você deseja transferir. No mínimo, observe o seguinte:
Imagem do contêiner
Porta do aplicativo
Variáveis de ambiente
Nome de domínio personalizado, se configurado
Certificado ACM associado ao domínio personalizado, se configurado
Você também pode revisar qualquer outra configuração de tempo de execução que queira transferir para o novo serviço.
Para obter detalhes de domínio personalizados, consulteGerenciando nomes de domínio personalizados para um serviço App Runner.
Etapa 2: Criar o serviço ECS Express Mode
Crie um serviço ECS Express Mode usando a mesma imagem de contêiner usada pelo seu serviço App Runner. Você pode criar o serviço usando o Console de gerenciamento da AWSou AWS CLIo.
Exemplo de comando da 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
Substitua a imagem, a porta, as variáveis de ambiente e os valores de escala pelos do seu serviço App Runner.
Esse comando provisiona uma pilha completa de aplicativos em sua AWS conta, incluindo um serviço ECS no Fargate, um Application Load Balancer com grupos-alvo e verificações de integridade, políticas de auto-scaling, grupos de segurança e configuração de rede e uma URL padrão.
O provisionamento normalmente leva de 3 a 5 minutos. Você pode acompanhar o progresso no console do Amazon ECS na guia Recursos.
Depois de concluído, teste seu serviço ECS Express Mode usando a URL padrão mostrada no console. Verifique se seu aplicativo funciona corretamente antes de prosseguir com a mudança de tráfego.
Etapa 3: Configurar o domínio personalizado para o ECS Express Mode
Se seu serviço App Runner usa um domínio personalizado, configure o mesmo domínio personalizado para o serviço ECS Express Mode antes de mudar o tráfego. Essa etapa configura o Application Load Balancer criado para o serviço ECS Express Mode para que ele aceite tráfego para seu domínio e use o certificado ACM para HTTPS.
Adicione seu domínio personalizado como condição de cabeçalho do host na regra de ouvinte do Application Load Balancer. Use o mesmo nome de domínio que você associou ao seu serviço App Runner (por exemplo,
app.example.com). Isso instrui o Application Load Balancer a rotear o tráfego do seu domínio para o grupo-alvo do ECS Express Mode.Adicione o certificado SSL ao ouvinte HTTPS do Application Load Balancer. Adicione o certificado ACM anotado na Etapa 1 ao ouvinte HTTPS.
Para obter instruções detalhadas, consulte Adicionar um domínio personalizado ao seu serviço no Amazon ECS Developer Guide.
A imagem a seguir mostra um exemplo de configuração da condição do cabeçalho do host na regra de ouvinte do Application Load Balancer.
Etapa 4: Mude o tráfego usando o roteamento ponderado do Route 53
Se seu serviço App Runner já usa um domínio personalizado, você pode transferir gradualmente o tráfego para o serviço ECS Express Mode usando o roteamento ponderado do Route 53. O roteamento ponderado permite rotear o tráfego do mesmo nome de host para vários endpoints. Cada endpoint é definido como um registro DNS separado com seu próprio peso, e o Route 53 distribui as solicitações de acordo com esses pesos.
nota
Este guia usa o Route 53 como exemplo. Se você usa outro provedor de DNS, faça alterações equivalentes no DNS usando os recursos de gerenciamento de tráfego do seu provedor.
Converta o registro existente do App Runner em um registro ponderado:
Abra o console do Route 53.
Escolha Zonas hospedadas e, em seguida, selecione a zona hospedada para seu domínio.
Localize o registro existente do seu nome de host (por exemplo
app.example.com) que atualmente aponta para o App Runner.Edite o registro e altere sua política de roteamento para Ponderada.
Defina Peso como
100(isso direciona todo o tráfego inicial para o App Runner).Em ID do registro, insira um identificador descritivo, como
app-runner-service.Escolha Salvar alterações.
Crie um registro ponderado para o ECS Express Mode:
Crie um novo registro na mesma zona hospedada.
Use o mesmo nome de registro (por exemplo
app.example.com).Use o mesmo tipo de registro.
Defina a política de roteamento como Ponderada.
Em Rotear tráfego para, escolha Alias para aplicativo e Classic Load Balancer.
Escolha seu Application Load Balancer no modo ECS Express no menu suspenso.
Defina Peso como
0(nenhum fluxo de tráfego para o Modo ECS Express até que você aumente explicitamente o peso).Em ID do registro, insira um identificador descritivo, como
ecs-express-service.Escolha Criar registros.
Mude gradualmente o tráfego:
Depois que os registros DNS estiverem configurados, comece a transferir o tráfego aumentando o peso do ECS Express Mode e diminuindo proporcionalmente o peso do App Runner. Uma abordagem recomendada:
Defina o modo ECS Express para 10 /App Runner para 90
Monitore e valide se o serviço lida com as solicitações com sucesso
Aumentar para 25/ 75
Aumentar para 50/ 50
Aumentar para 75/ 25
Completo em 100/ 0
Em cada etapa, teste o aplicativo antes de transferir tráfego adicional. Se ocorrerem problemas em algum momento, reverta ajustando os pesos de volta aos valores anteriores.
Importante
Mantenha seu serviço App Runner funcionando por um período de validação (como 24 a 48 horas) para confirmar se as alterações de DNS se propagaram globalmente e para fornecer uma opção de reversão, se necessário. Se você encontrar problemas, poderá reverter rapidamente os pesos do Route 53 para o App Runner.
Etapa 5: Concluir a migração
Depois de verificar se o serviço ECS Express Mode gerencia o tráfego de produção corretamente e se o período de validação já passou, conclua a migração:
No Route 53, remova o registro ponderado que aponta para o App Runner (ou defina seu peso como 0).
Remova a associação de domínio personalizada do serviço App Runner.
Exclua o serviço App Runner:
aws apprunner delete-service --service-arnyour-app-runner-service-arn
Considere também remover todos os recursos que não são mais necessários:
Registros de roteamento ponderado do Route 53 para App Runner
Imagens de contêiner não utilizadas do Amazon Elastic Container Registry
Funções do IAM criadas especificamente para o App Runner, se não forem mais necessárias
nota
Não exclua o serviço ECS Express Mode, seu Application Load Balancer ou os recursos associados se o serviço estiver sendo executado em produção.
Migração de implantações baseadas na origem
Se seu serviço App Runner existente for implantado a partir do código-fonte em vez de uma imagem de contêiner, você precisará adicionar uma etapa de conteinerização antes de implantar no ECS Express Mode. Ao contrário do App Runner, o ECS Express Mode exige uma imagem de contêiner. No entanto, você pode replicar a experiência de implantação automatizada do App Runner usando CI/CD ferramentas como GitHub Actions with the Amazon ECS Deploy Express
O fluxo de trabalho de migração tem três estágios:
Crie a imagem do contêiner usando um Dockerfile
Envie a imagem para um registro de contêiner, como o Amazon Elastic Container Registry
Implante a imagem no modo ECS Express
O diagrama a seguir mostra como esse fluxo de trabalho funciona usando GitHub Ações:
Containerize seu aplicativo
Se seu aplicativo ainda não tiver um Dockerfile, crie um na raiz do repositório. O Dockerfile serve como modelo para criar e empacotar seu código-fonte em uma imagem de contêiner.
A estrutura do seu repositório deve incluir:
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
Configurar GitHub ações para implantação automatizada
Para replicar a implantação automática do App Runner no envio de código, configure GitHub as ações com o seguinte:
Crie um provedor OpenID Connect (OIDC)
para permitir que GitHub as ações assumam uma função do IAM Crie uma função do IAM com as permissões do ECS Express Mode
e do Amazon Elastic Container Registry Crie as duas funções do IAM exigidas pelo ECS Express Mode
Crie variáveis de GitHub ambiente para seus recursos do ECS:
ECS_SERVICE,ECS_CLUSTER,AWS_REGIONAWS_ACCOUNT_ID, eECR_REPOSITORY
Exemplo de fluxo de trabalho de GitHub ações
Crie um arquivo de fluxo de trabalho em.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 você envia alterações de código para sua ramificação principal, o GitHub Actions cria automaticamente uma nova imagem de contêiner, a envia para o Amazon Elastic Container Registry e a implanta em seu serviço ECS Express Mode. Isso replica a experiência de implantação automatizada que você teve com o App Runner.
Depois que o serviço ECS Express Mode estiver em execução, siga as etapas 3 a 5 no passo a passo da migração para configurar o domínio personalizado, mudar o tráfego usando o roteamento DNS e concluir a migração.