Alura > Cursos de DevOps > Cursos de AWS > Conteúdos de AWS > Primeiras aulas do curso Cloud: usando recursos de armazenamento na AWS

Cloud: usando recursos de armazenamento na AWS

Usando bancos de dados na AWS - Apresentação

Olá, meu nome é Gabrielle Ribeiro, sou instrutora na Alura.

Audiodescrição: Gabrielle se identifica como uma mulher parda. Tem olhos castanhos e cabelo liso com franja tingido de laranja. Usa óculos de grau de armação redonda e piercing na sobrancelha, no septo e no lábio. Está com uma blusa laranja e sentada em uma cadeira gamer preta nos estúdios da Alura. Ao fundo, uma parede com iluminação roxa e azul e, à direita, uma estante com algumas decorações.

Boas-vindas a este curso!

Para quem é esse curso?

Este curso é destinado a pessoas desenvolvedoras ou que trabalham com DevOps e desejam entender mais sobre armazenamento em nuvem utilizando a AWS.

O que vamos aprender?

Primeiramente, vamos utilizar bancos de dados, colocando nossa aplicação na AWS e vinculando-a ao serviço RDS. Também vamos armazenar objetos em buckets do S3, subindo imagens da nossa aplicação para um bucket e aprendendo a gerenciar esse bucket.

Ainda sobre os buckets, aprenderemos a gerir o acesso aos objetos, manter o versionamento dos objetos do bucket e otimizar custos no S3. Logo após, configuraremos o armazenamento persistente utilizando o volume EBS e também configuraremos um plano de backup usando o AWS Backup.

Projeto Adopet

Tudo isso será aprendido utilizando o back-end do Adopet, um portal de adoção de pets. O back-end dessa aplicação conta com uma API que se conecta e armazena dados em um banco de dados. De forma prática, utilizaremos esse projeto para gerenciar toda a questão de armazenamento e criação de bancos de dados dentro da AWS.

Pré-requisitos

Para aproveitar melhor este conteúdo, é interessante que tenha concluído os cursos anteriores da formação, Começando em Cloud Computing. Aproveite os recursos da plataforma. Além dos vídeos, temos as atividades, nosso fórum e também a comunidade do Discord.

Nos encontramos nos próximos vídeos para dar início a essa nova jornada!

Usando bancos de dados na AWS - Configurando instância EC2

Temos o projeto Adopet, um portal de adoção de pets. Nos cursos anteriores, configuramos o front-end dessa aplicação na AWS. Durante este curso, utilizaremos o back-end dessa aplicação, que é uma API conectada a um banco de dados.

Disponibilizamos esse projeto na atividade "Preparando o ambiente".

Dentro do contexto deste curso, desejamos utilizar a nuvem para construir uma solução de armazenamento segura e escalável, para guardar os dados da nossa aplicação.

O primeiro passo é pegar nosso projeto do back-end e colocá-lo na AWS. Para isso, utilizaremos uma instância EC2. Já logados na conta da AWS, criaremos nossa instância.

Criando a instância

No campo de busca na parte superior esquerda, digitamos "EC2" e clicamos no serviço EC2. Em seguida, clicamos em "Instâncias" na seção "Recursos" e, posteriormente, em "Executar instâncias", no canto superior direito, para criar uma nova instância.

Somos direcionados para uma tela intitulada "Launch an instance" ("Iniciar uma instância") com alguns campos que precisamos preencher.

O nome da instância será "adopet-backend". Utilizaremos o sistema operacional Ubuntu, mantendo a opção padrão selecionada no sistema operacional.

No "Tipo de instância", deixamos selecionado a t2.micro.

Na seção "Par de chaves (login)", precisamos criar um par de chaves para fazer login na máquina através do nosso computador. Clicamos em "Criar novo par de chaves" do lado direito do campo "Nome do par de chaves" e nomeamos como "adopet-backend-key". Mantemos o tipo RSA e o formato .pem.

Após isso, clicamos no botão "Criar par de chaves" na parte inferior direita. O download da chave será feito.

Atenção: É importante armazenar a chave em um local seguro, pois após o download, não será possível acessá-la novamente.

Na "Configuração de redes", deixamos marcado a opção "Criar um novo grupo de segurança". Na parte de rede, habilitamos todo tipo de tráfego: SSH, HTTPS e HTTP.

Na seção "Configurar armazenamento", mantemos o padrão e clicamos em "Executar instância", na parte inferior direita, para criar a instância.

Lembrando que, ao utilizar serviços da AWS, pode haver cobrança de custos. O modelo de instância selecionado é gratuito no primeiro ano de uso.

Deixaremos uma atividade para saber mais sobre custos na AWS.

Voltamos ao menu de instâncias, selecionando "Instâncias" na parte superior esquerda.

Na página que lista todas as instâncias, procuramos pela instância recém-criada. Pode ser necessário atualizar a página para que ela apareça. A instância adopet-backend está em execução, mas a verificação de status ainda está inicializando.

Enquanto isso, faremos mais algumas configurações necessárias para rodar a API.

Nossa aplicação é executada na porta 3000, então precisamos abri-la para acessar a API pelo navegador. Selecionamos a instância deixando-a marcada com um check na parte esquerda.

Será exibido um menu inferior, vamos à aba de "Segurança", acessamos grupos de segurança e selecionamos o link do grupo de segurança da instância. No caso da instrutora, o link é: sg-08a526f932e4fd943 (launch-wizard-20).

Na página seguinte, clicamos em "Editar regras de entrada" descendo um pouco a página e depois em "Adicionar regra" na parte inferior esquerda. Mantemos o TCP personalizado no campo "Tipo", com intervalo de portas 3000. Em "Tipo de origem", deixamos "Personalizado” e em "Origem" colocamos 0.0.0.0/0.

Clicamos em "Salvar regras" na parte inferior direita para habilitar a porta 3000.

Antes de instalar as dependências necessárias para rodar a aplicação na instância, precisamos esperar a verificação de status finalizar. Isso pode levar algum tempo.

Após a verificação de status finalizar com sucesso, selecionamos a instância e clicamos em "Conectar" na parte superior. Na página seguinte, intitulada "Conectar-se à instância", descemos até o final da página e selecionamos o botão "Conectar".

Interagindo com a máquina via console

No console da AWS, um terminal será aberto, permitindo interagir com a máquina. Limpamos a tela com "Ctrl + L" e atualizamos os pacotes do Ubuntu com o comando:

sudo apt update

Após aguardar, rodamos o comando:

sudo apt upgrade

Confirmamos que desejamos continuar teclando "Y" e "Enter". É importante atualizar os pacotes, pois não temos garantia de que estão atualizados ao criar a instância. Isso garante que as instalações das dependências do projeto estejam na versão mais recente.

Instalando o Node e NPM

Após a atualização dos pacotes, instalamos o Node e o NPM. Limpamos a tela e rodamos o comando:

sudo apt install nodejs

Confirmamos novamente com "Y" e "Enter". Em seguida, instalamos o NPM com:

sudo apt install npm

Após a instalação, verificamos se deu certo com os comandos:

node -v
npm -v

v18.19.1

9.2.0

Esses comandos mostram a versão instalada do Node e do NPM, que pode variar dependendo do momento em que o curso é realizado.

Próximo passo

Agora, vamos enviar nosso projeto para a instância, que está preparada e configurada para recebê-lo. Aprenderemos como fazer isso na sequência!

Usando bancos de dados na AWS - Inserindo o backend na AWS

Configuramos nossa instância na EC2, instalamos as dependências necessárias, abrimos a porta que precisamos para rodar nossa aplicação, e agora vamos para o terminal da WSL para enviar nosso projeto para a EC2.

Abrimos o terminal do WSL no computador, e estamos na pasta do projeto (adopet-backend-cloud). Vamos sair dessa pasta com o comando cd, e estamos com a chave já nesse diretório. Podemos usar o comando ls, e temos o arquivo adopete-backend-key.pem.

cd
ls

adopete-backend-key.pem

Para enviar o projeto, como são muitos arquivos, precisamos compactar essa pasta. Podemos fazer isso com o comando zip -r, para ser em modo recursivo, o nome que desejamos que a pasta compactada tenha, então digitamos adopet-backend.zip, e o nome da pasta onde está nosso projeto no computador, que é adopet-backend-cloud.

zip -r adopet-backend.zip adopet-backend-cloud/

Teclamos "Enter" para rodar.

Após compactar o projeto, podemos usar ls para verificar que temos a pasta adopet-backend.zip.

Agora utilizaremos o par de chaves que baixamos da AWS para enviar esse diretório compactado. Como copiamos a chave de um lugar para outro, é importante verificar se as permissões da chave estão corretas.

Para garantir que está tudo certo com a chave, vamos rodar o comando chmod 600 adopet-backend-key.pem, garantindo que ela está com as permissões corretas.

chmod 600 adopet-backend-key.pem

Não há retorno para o comando acima.

Agora, iremos enviar o projeto para a instância.

Enviando o projeto para a instância

Faremos isso via scp, então usamos o comando:

scp -i adopet-backend-key.pem adopet-backend.zip

Nesse mesmo comando, precisamos informar à pessoa usuária da instância, que é ubuntu, já que estamos utilizando uma instância Ubuntu, e o IP público da instância.

Na tela do terminal da instância, verificamos a informação do IP público. Copiamos esse IP, que será diferente para cada um, voltamos ao terminal e colamos o IP. Por fim, indicamos o diretório para onde desejamos enviar o arquivo compactado, que por padrão é /home/ubuntu.

scp -i adopet-backend-key.pem adopet-backend.zip ubuntu@IP_PÚBLICO:/home/ubuntu

Ao pressionar "Enter", será perguntado se desejamos continuar a conexão, já que é a primeira vez que estamos utilizando essa chave de acesso e fazendo essa conexão com a instância. Digitamos "yes" e aguardamos o envio. O envio foi rápido, e nossa pasta foi enviada.

Vamos voltar para a instância na AWS e rodamos o comando ls para verificar que a pasta compactada já está lá.

adopet-backend.zip

Precisamos descompactar essa pasta para executar o projeto.

Descompactando a pasta

Para isso, é importante garantir que o programa que faz a compactação e descompactação no Ubuntu está instalado. Rodamos o seguinte comando:

sudo apt install unzip

Após finalizar a instalação, rodamos o comando unzip adopet-backend.zip.

unzip adopet-backend.zip

O projeto foi descompactado, então vamos entrar na pasta do projeto com o comando cd adopet-backend-cloud.

cd adopet-backend-cloud/

Limpamos o terminal, e verificamos que todas as pastas do projeto são exibidas quando rodamos o comando ls.

README.md nest-cli.json package-lock.json package.json src test tsconfig.build.json tsconfig.json

Vamos instalar todos os pacotes do projeto com o comando npm install.

npm install

Esse processo pode levar algum tempo.

Após finalizar a instalação das dependências dos pacotes do projeto, podemos executar o projeto com o comando npm run start.

npm run start

O projeto está sendo inicializado, e aguardamos as informações de quando ele começar a ser executado.

No entanto, ocorreu um erro ao tentar executar o projeto. Vamos interromper com "Ctrl + C", e ao ler o erro, observamos que não foi possível conectar ao banco de dados.

Unable to connect to the database

Próximo passo

Isso acontece porque o projeto tinha essa conexão com o banco, e ainda não configuramos esse banco. Vamos utilizar a AWS para isso, e aprenderemos como fazer isso na sequência!

Sobre o curso Cloud: usando recursos de armazenamento na AWS

O curso Cloud: usando recursos de armazenamento na AWS possui 149 minutos de vídeos, em um total de 51 atividades. Gostou? Conheça nossos outros cursos de AWS em DevOps, ou leia nossos artigos de DevOps.

Matricule-se e comece a estudar com a gente hoje! Conheça outros tópicos abordados durante o curso:

Aprenda AWS acessando integralmente esse e outros cursos, comece hoje!

Conheça os Planos para Empresas