AWS series VII: Elastic Beanstalk (EB)
Serie de artigos sobre Amazon Web Services.
Lab 6 - AWS Elastic Beanstalk
Em este lab sobre Elastic Beanstalk (EB) aprenderemos alguns conceitos importantes da camada de plataforma da AWS:
- Deploy de aplicações
- Plataformas/entornos de execução disponíveis
- Logging
- Monitoramento
Pre-reqs
git
python3
pip3
Se não tiver os pre-reqs na máquina local pular para o deploy em uma VM no EC2.
Deploy local
- Clonar o repositório:
$ git clone https://github.com/josecastillolema/fiap
-
Navegar ate o diretorio
fiap/scj/cloud/lab06-paas-eb
. O diretorio contem os seguintes arquivos:application.py
: Um serviço web escrito em Python que usa a biblioteca Flask.requirements.txt
: As dependências da aplicação. Podem ser instaladas usandopip
, o gestor de dependências do Python.
- Instalar as dependências:
$ pip3 install -r requirements.txt
- Executar a aplicacao:
$ python3 application.py Serving Flask app "application" (lazy loading) Environment: production WARNING: Do not use the development server in a production environment. Use a production WSGI server instead. Debug mode: off Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)
- Testar o acesso local:
Deploy em uma VM no EC2
Se tiver feito o deploy local pode pular esta seção.
-
Criar uma VM com a imagem
Amazon Linux
-
Logar na VM
- Atualizar os repositorios:
$ sudo yum update
- Instalar o pip3 (gestor de pacotes do python3):
$ sudo yum install -y python3-pip git
- Clonar o repositório:
$ git clone https://github.com/josecastillolema/fiap
- Navegar ate o diretorio
fiap/shift/multicloud/lab06-paas-eb
. O diretorio contem os seguintes arquivos:application.py
: Um serviço web escrito em Python que usa a biblioteca Flask.requirements.txt
: As dependências da aplicação. Podem ser instaladas usandopip
, o gestor de dependências do Python.
- Instalar as dependências:
$ sudo pip3 install -r requirements.txt --use-feature=2020-resolver
- Executar a aplicação:
$ python3 application.py Serving Flask app "application" (lazy loading) Environment: production WARNING: Do not use the development server in a production environment. Use a production WSGI server instead. Debug mode: off Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)
- Em uma nova terminal testar o acesso local:
$ curl localhost:5000 <h1>Hola FIAP!</h1>
- Testar o acesso remoto pela IP pública da VM (lembrando que é necessária a liberacão da porta 5000 no security group da VM):
Deploy na AWS
-
Acessar o serviço Elastic Beanstalk:
-
Criar um novo environment:
-
A aplicação é um serviço web:
-
Configurar o nome da apliação:
-
Escolher o entorno de execução:
- Fazer o upload da aplicação. O arquivo comprimido deve conter os seguintes arquivos:
application.py
: Um serviço web escrito em Python que usa a biblioteca Flask.requirements.txt
: As dependências da aplicação. Podem ser instaladas usandopip
, o gestor de dependências do Python.
-
Os próximos passos relativos a segurança são específicos das contas AWS Academy
a. Antes de criar a aplicaçao, mostrar as opções avançadas:
b. Editar as opções de segurança:
c. Fazer os seguintes ajustes:
- Service role:
LabRole
- EC2 key pair:
vockey
- IAM instance profile:
LabInstanceProfile
- Service role:
-
Após uns minutos, conferir o estado da aplicação:
- Accessar a URL da aplicação:
Logging e monitoramento
-
Se for necessário fazer troubleshooting da aplicação, fazer download dos logs:
-
Para monitorar a aplicação:
Comments