Implantar uma aplicação Web no AWS Elastic Beanstalk
GUIA DE CONCEITOS BÁSICOS
Módulo 1: Criar uma aplicação Web
Neste módulo, vamos criar uma aplicação Web NodeJS e executá-la no local.
Introdução
Criaremos uma aplicação não conteinerizada que implantaremos na nuvem. Neste exemplo, usaremos o NodeJS para criar uma aplicação Web.
A aplicação será um servidor simples de aplicações Web que hospedará arquivos HTML estáticos e terá um endpoint da API REST. O foco deste guia não é ensinar a criar aplicações Web, então fique à vontade para usar a aplicação de exemplo ou crie uma por conta própria. Embora usemos o NodeJS neste guia, você também pode criar uma aplicação Web semelhante com outras linguagens de programação compatíveis com o Elastic Beanstalk, como Java, .NET, NodeJS, PHP, Ruby, Python, Go e Docker.
É possível realizar a implantação em um computador local ou em um ambiente do AWS Cloud9.
O que você aprenderá
- Desenvolver uma aplicação Web NodeJS simples que hospeda um arquivo HTML e tem uma API REST simples
- Executar a aplicação no local
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
Criar a aplicação cliente
Primeiro, crie um diretório para a aplicação.
mkdir my_webapp
cd my_webapp
Depois, inicialize o projeto do NodeJS. Essa ação criará o arquivo package.json com todas as definições da aplicação NodeJS.
npm init -y
Criar a aplicação Express
Você usará o Express como o framework da aplicação Web. Para usá-lo, instale-o como uma dependência no projeto do NodeJS.
npm install express
Depois que você executar o comando anterior, a dependência aparecerá no arquivo package.json. Além disso, o diretório node_modules e o arquivo package-lock.json serão criados.
Agora você já pode criar um arquivo chamado app.js. Ele conterá a lógica de negócios do servidor Express NodeJS de hospedagem.
Agora podemos começar a adicionar o código. Primeiro, precisamos adicionar as dependências da aplicação (nesse caso, o Express) para permitir o uso do módulo instalado anteriormente e adicionar o código para iniciar o servidor Web. Definiremos a porta 8080 para que ela seja usada pelo servidor Web, que é usada pelo Elastic Beanstalk por padrão.
var express = require('express');
var app = express();
var fs = require('fs');
var port = 8080;
app.listen(port, function() {
console.log('Server running at http://127.0.0.1:', port);
});
Agora podemos iniciar a aplicação, mas ela ainda não fará nada, pois não definimos o código para processar solicitações.
Criar uma API REST
Agora adicionaremos o código para responder a uma chamada de API REST HTTP. Para criar a primeira chamada de API, adicione o código a seguir entre a definição da porta e o ponto de inicialização do servidor.
var express = require('express');
var app = express();
var fs = require('fs');
var port = 8080;
// New code
app.get('/test', function (req, res) {
res.send('the REST endpoint test run!');
});
app.listen(port, function() {
console.log('Server running at http://127.0.0.1:%s', port);
});
Esse exemplo serve para mostrar como conectar o endpoint /test ao código. Você pode adicionar outra resposta ou um código que faça algo específico, mas este guia não tratará disso.
Apresentar conteúdo HTML
A aplicação NodeJS Express também pode apresentar uma página Web estática. Precisamos criar uma página HTML para usá-la como exemplo. Vamos criar um arquivo chamado index.html.
No arquivo, adicione o HTML a seguir com um link para o endpoint REST criado anteriormente para mostrar como ele se conecta ao backend.
<html>
<head>
<title>Elastic Beanstalk App</title>
</head>
<body>
<h1>Welcome to the demo for ElasticBeanstalk</h1>
<a href="/test">Call the test API</a>
</body>
</html>
Se quisermos gerar a página HTML pelo servidor Express, precisaremos adicionar o código para gerar o / path quando ele for chamado. Para fazer isso, adicione o seguinte código acima de /test call:
app.get('/', function (req, res) {
html = fs.readFileSync('index.html');
res.writeHead(200);
res.write(html);
res.end();
});
Esse código apresentará o arquivo index.html sempre que uma solicitação for feita à raiz da aplicação (/).
Executar o código no local
Agora podemos executar a aplicação e testar se ela está funcionando no local. Para fazer isso, atualizaremos package.json com um script para facilitar a execução. No arquivo package.json, substitua a seção scripts por:
"scripts": {
"start": "node app.js"
},
Agora você pode acessar o terminal e executar:
npm start
Esse comando iniciará um servidor local com o URL http://127.0.0.1:8080 ou http://localhost:8080.
Se você colar o URL no navegador, verá o seguinte:

Para interromper o servidor, use ctrl + c e pare o processo no terminal em que você executou npm start.
Conclusão
Neste primeiro módulo, criamos uma aplicação NodeJS muito básica e a executamos no local para garantir que ela funcione. No próximo módulo, aprenderemos a criar a infraestrutura usando o AWS CDK para executá-la no AWS Elastic Beanstalk.
A seguir: Criar a infraestrutura