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
gitpython3pip3
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