AWS App Runner mudança de disponibilidade - AWS App Runner

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:

  1. Revise a configuração do serviço App Runner existente

  2. Crie um serviço ECS Express Mode usando a mesma imagem de contêiner

  3. Configure o mesmo domínio personalizado para o serviço ECS Express Mode, se você usar um domínio personalizado

  4. Mude o tráfego do App Runner para o modo ECS Express usando o roteamento DNS

  5. 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: ecsTaskExecutionRole para a execução de tarefas do Amazon ECS e ecsInfrastructureRoleForExpressServices para 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 exemploapp.example.com, usando o Amazon Route 53 ou um registrador de domínio terceirizado

  • Um 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, comoapp.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.

Diagrama de arquitetura mostrando a migração do App Runner para o modo ECS Express usando o roteamento ponderado do Route 53 para uma mudança gradual do tráfego entre os dois serviços.

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.

Captura de tela do console mostrando a regra de ouvinte do Application Load Balancer com condições de cabeçalho de host configuradas para o endpoint do serviço ECS Express Mode e o domínio personalizado.

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:

  1. Abra o console do Route 53.

  2. Escolha Zonas hospedadas e, em seguida, selecione a zona hospedada para seu domínio.

  3. Localize o registro existente do seu nome de host (por exemploapp.example.com) que atualmente aponta para o App Runner.

  4. Edite o registro e altere sua política de roteamento para Ponderada.

  5. Defina Peso como 100 (isso direciona todo o tráfego inicial para o App Runner).

  6. Em ID do registro, insira um identificador descritivo, comoapp-runner-service.

  7. Escolha Salvar alterações.

Crie um registro ponderado para o ECS Express Mode:

  1. Crie um novo registro na mesma zona hospedada.

  2. Use o mesmo nome de registro (por exemploapp.example.com).

  3. Use o mesmo tipo de registro.

  4. Defina a política de roteamento como Ponderada.

  5. Em Rotear tráfego para, escolha Alias para aplicativo e Classic Load Balancer.

  6. Escolha seu Application Load Balancer no modo ECS Express no menu suspenso.

  7. Defina Peso como 0 (nenhum fluxo de tráfego para o Modo ECS Express até que você aumente explicitamente o peso).

  8. Em ID do registro, insira um identificador descritivo, comoecs-express-service.

  9. 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-arn your-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 Service Action. GitHub

O fluxo de trabalho de migração tem três estágios:

  1. Crie a imagem do contêiner usando um Dockerfile

  2. Envie a imagem para um registro de contêiner, como o Amazon Elastic Container Registry

  3. Implante a imagem no modo ECS Express

O diagrama a seguir mostra como esse fluxo de trabalho funciona usando GitHub Ações:

Diagrama de arquitetura mostrando a migração de um serviço App Runner baseado na fonte para o modo ECS Express usando GitHub ações para criar imagens de contêiner, enviar para o Amazon Elastic Container Registry e implantar no ECS Express Mode.

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:

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.

Recursos adicionais do