4 minute read

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

  1. Clonar o repositório:
    $ git clone https://github.com/josecastillolema/fiap
    
  2. 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 usando pip, o gestor de dependências do Python.
  3. Instalar as dependências:
    $ pip3 install -r requirements.txt
    
  4. 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)
    
  5. Testar o acesso local:

Deploy em uma VM no EC2

Se tiver feito o deploy local pode pular esta seção.

  1. Criar uma VM com a imagem Amazon Linux

  2. Logar na VM

  3. Atualizar os repositorios:
     $ sudo yum update
    
  4. Instalar o pip3 (gestor de pacotes do python3):
     $ sudo yum install -y python3-pip git
    
  5. Clonar o repositório:
     $ git clone https://github.com/josecastillolema/fiap
    
  6. 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 usando pip, o gestor de dependências do Python.
  7. Instalar as dependências:
     $ sudo pip3 install -r requirements.txt --use-feature=2020-resolver
    
  8. 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)
    
  9. Em uma nova terminal testar o acesso local:
     $ curl localhost:5000
     <h1>Hola FIAP!</h1>
    
  10. 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

  1. Acessar o serviço Elastic Beanstalk:

  2. Criar um novo environment:

  3. A aplicação é um serviço web:

  4. Configurar o nome da apliação:

  5. Escolher o entorno de execução:

  6. 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 usando pip, o gestor de dependências do Python.

  7. 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
  8. Após uns minutos, conferir o estado da aplicação:

  9. Accessar a URL da aplicação:

Logging e monitoramento

  1. Se for necessário fazer troubleshooting da aplicação, fazer download dos logs:

  2. Para monitorar a aplicação:

Comments