Implantar uma aplicação Web no AWS Elastic Beanstalk

GUIA DE CONCEITOS BÁSICOS

Módulo 3: Implantar a aplicação Web

Neste módulo, implantaremos a aplicação na nuvem.

Introdução

Neste módulo, você aprenderá a empacotar a aplicação NodeJS para implantá-la. Também veremos como usar o AWS CDK para provisionar todos os recursos do AWS Elastic Beanstalk criados no Módulo 2.

O que você aprenderá

  • Empacotar a aplicação NodeJS
  • Criar e implantar a aplicação do CDK
  • Atualizar a implementação da aplicação NodeJS

 Tempo para a conclusão

10 minutos

 Pré-requisitos do módulo

  • Conta da AWS com acesso de administrador**
  • Navegador recomendado: versão mais recente do Chrome ou Firefox

[**]Talvez as contas criadas nas últimas 24 horas ainda não tenham acesso aos serviços necessários para este tutorial.

Implementação

Empacotar a aplicação NodeJS

No Módulo 2, vimos que usaremos o módulo S3Assets do AWS CDK para carregar a aplicação como um arquivo ZIP no S3.

Para isso, você precisa criar o arquivo ZIP da aplicação NodeJS e colocá-lo no diretório raiz da aplicação do AWS CDK.  Dê ao arquivo ZIP o nome “app.zip”. Para fazer isso, execute o seguinte comando:

zip -r ../app.zip ./*

Iniciar o CDK na sua conta

Caso seja a primeira vez que você está usando o AWS CDK na conta e na região, será preciso iniciá-lo. Para implantar aplicações do AWS CDK em uma conta e uma região da AWS, o CDK precisa provisionar os recursos necessários para realizar implementações. Os recursos são os seguintes: um bucket do Amazon S3 para armazenar os arquivos da implementação e IAM roles para conceder as permissões necessárias para realizar implementações. O provisionamento desses recursos iniciais é chamado de inicialização.

Para iniciar sua conta e sua região da AWS, execute

cdk bootstrap aws://ACCOUNT-NUMBER-1/REGION-1

A saída deve ter esta aparência:

cdk bootstrap aws://123456789012/us-east-1

É possível obter o número da conta pela AWS Management Console e o nome da região desta lista.

Criar e implantar a aplicação do CDK

Depois de empacotar a aplicação NodeJS, colocá-la na raiz do diretório da aplicação CDK e iniciar a conta e a região da AWS, você poderá criar e implantar a aplicação CDK.

Primeiro, crie a aplicação CDK.

node run build

Caso não haja nenhum erro na aplicação, a ação será bem-sucedida, e você poderá implantar a aplicação CDK na nuvem.

cdk deploy

Primeiro, você precisará confirmar se quer fazer alterações no nível de segurança da conta, pois criamos uma role.

Insira “y” para iniciar a implementação. Ela levará alguns minutos para ser concluída. Após a conclusão, você receberá uma mensagem do nome do recurso da Amazon (ARN) da pilha do CloudFormation que a implementação criou.

Abra a management console do CloudFormation. Você verá que há duas novas pilhas nela.

A pilha chamada CdkEbInfraStack contém todos os recursos do Elastic Beanstalk criados no módulo anterior: a aplicação, a versão da aplicação, o perfil da instância e o ambiente do Elastic Beanstalk.

A outra pilha (com a string aleatória) foi criada pelo Elastic Beanstalk e contém todos os recursos de que a aplicação precisa: grupos de auto scaling, instâncias, alarmes e métricas do Amazon CloudWatch, balanceadores de carga e grupos de segurança.

Ver a aplicação na nuvem

Caso você queira ver a aplicação implantada na nuvem, primeiro identifique o URL da aplicação Web. Para isso, acesse o serviço Elastic Beanstalk na Console AWS e procure o ambiente chamado MyWebAppEnvironment.

O URL se encontrará na lista. Clique nele para executar a aplicação.

Atualizar a implementação da aplicação NodeJS

Se você quiser fazer alterações na aplicação Web e implantá-la novamente na nuvem, siga estas etapas:

  • Faça as alterações na aplicação Web
  • Empacote-a em um arquivo app.zip
  • Coloque o arquivo app.zip no diretório raiz da aplicação CDK
  • Crie o projeto do CDK: npm run build
  • Implante o projeto do CDK: cdk deploy

Agora você pode ver que há uma nova versão da aplicação do Elastic Beanstalk implantada. Acesse o URL da aplicação Web para conferir a nova versão implantada. Esse processo leva um tempo, então fique de olho na console para saber quando ele for concluído.

Erros comuns

Compactar a aplicação

Você pode receber o erro a seguir ao carregar a aplicação NodeJS no Elastic Beanstalk.

Failed to find package.json. Node.js may have issues starting. Verify package.json is valid or place code in a file named server.js or app.js.

Talvez o problema seja o formato da compactação da aplicação. Remova o package-lock.json e o diretório node_modules e execute o comando a seguir no diretório da aplicação Web.

zip -r app.zip .

Os arquivos serão compactados corretamente para o Elastic Beanstalk.

Módulos de nós ao empacotar a aplicação

É possível empacotar o diretório node_modules com todas as dependências baixadas no arquivo ZIP da aplicação Web.

Quando esse diretório existe, o Elastic Beanstalk entende que não é necessário baixar dependências.

Leia as instruções sobre como lidar com dependências NodeJS nos pacotes do Elastic Beanstalk.

Conclusão

Neste guia, você aprendeu a empacotar uma aplicação Web NodeJS, a implantá-la com o Elastic Beanstalk e a implantar toda a infraestrutura como uma aplicação CDK.

A seguir: Limpar os recursos

Envie seus comentários.