Alura > Cursos de DevOps > Cursos de AWS > Conteúdos de AWS > Primeiras aulas do curso Banco de dados na AWS: gerencie RDS e DynamoDB

Banco de dados na AWS: gerencie RDS e DynamoDB

Bancos de dados na AWS - Apresentação

Boas-vindas à Alura. Sou Vinícius Dias e guiarei vocês nesse curso sobre bancos de dados na AWS. Vamos conhecer um pouco do que a AWS nos fornece quando o assunto é armazenamento.

Vinicius Dias é uma pessoa de pele clara, olhos escuros e cabelos pretos. Usa bigode e cavanhaque, e tem cabelo curto. Está usando uma camiseta azul escrito "Alura - Escola de Programação & DevOps", e está sentado em uma cadeira preta. Ao fundo, há uma parede lisa com iluminação lilás.

O que vamos aprender?

Começaremos entendendo o conceito de banco de dados como serviço. A Amazon disponibiliza serviços diferentes para tipos de bancos de dados diferentes. Alguns deles com mais facilidades, outros com mais controle. Então, passaremos por uma lista de nomes de serviços fornecidos pela AWS.

Citaremos alguns mais especificamente. Primeiramente, faremos uma menção honrosa ao Redshift, entendendo sobre data warehouse. Depois nos aprofundaremos em dois tipos de serviços de banco de dados que a Amazon nos fornece: o RDS e o DynamoDB.

O RDS é uma opção para banco de dados relacionais, que é o tipo de banco de dados mais comum de se aprender inicialmente em cursos de programação. Os bancos de dados relacionais (como MySQL, PostgresSQL, SQL Server e Oracle) estão disponíveis através da AWS com o serviço RDS.

Aprenderemos a criar um banco de dados nesse serviço, configurar back-ups, tirar snapshots e criar réplicas de leitura, bem como comentar sobre implantação em várias zonas de disponibilidade.

O DynamoDB é um banco de dados NoSQL da AWS. Estudaremos o propósito desse banco, como criar tabelas, atributos e índices, entre outros assuntos. Vamos aprender na prática, por meio do console da AWS como gerenciar isso tudo.

Cada etapa será explicada detalhadamente e, a partir desse curso, você estará apto para se aprofundar em cada serviço de banco de dados e realizar essa implantação em seu sistema.

A ideia desse curso é introduzir o conceito básicos de banco de dados na AWS. Não vamos entrar em detalhes sobre SQL, por exemplo, ou como modelar um DynamoDB.

Quais são os pré-requisitos?

Espera-se que você tenha conhecimentos de SQL ou algum banco de dados relacional para acompanhar os conceitos usados na explicação sobre RDS. Além disso, é preciso que você tenha noções do que é um banco de dados NoSQL para entender a explicação sobre o DynamoDB.

Não é necessário ser experiente nesses assuntos, apenas saber de que se tratam para que os serviços da AWS façam sentido para você.

Bancos de dados na AWS - Bancos como serviços

Antes de conhecer alguns bancos de dados na AWS, vamos imaginar um cenário. Eu trabalho em uma plataforma de marketing com divulgação e gestão de redes sociais. Nessa plataforma, há dados que precisam ser armazenados de forma relacional, pois possuem regras bem definidas e relacionamentos com outras entidades. Ou seja, um banco de dados relacional faz muito sentido nesse cenário.

Nesse sistema, precisamos de performance, então é necessária uma camada de cache para ter acesso a esses dados. Sendo assim, também usaremos um banco de dados em memória.

Uma parte da nossa aplicação é muito intensa tanto em tráfego quanto em volume de dados — muitos dados trafegando com muita frequência. Nesse cenário, é interessante um banco de dados não relacional.

Além disso, como trabalhamos com uma arquitetura de microsserviços, temos diversos serviços gerando informações e precisamos agregá-las para que a equipe de dados consiga gerar relatórios e métricas internamente e para clientes. Tudo isso precisa ser centralizado em outro banco de dados, focado em armazenar uma quantidade grande de dados com possibilidades interessantes para diferentes relatórios — talvez um banco de dados focado em *data warehouse.

Em pouco tempo, apresentamos um cenário de um sistema que pode nem ser tão complexo, mas já demos exemplos de quatro tipos diferentes de bancos de dados que seriam usados nessa aplicação. No mundo real, nos deparamos muito comumente com esse tipo de situação em que, para cada parte de uma aplicação, é interessante usar um tipo de banco de dados diferente.

Nessas situações, caso você tenha a possibilidade de estar em um ambiente de nuvem, você terá uma grande vantagem. A AWS, por exemplo, fornece diversos serviços ou bancos de dados como serviços para que você tenha todos esses tipos de bancos de dados de forma gerenciada pela Amazon.

Banco de dados como serviço

Basicamente, ter um banco de dados como serviço (ou banco de dados gerenciado pela AWS) é delegar a responsabilidade da gestão de infraestrutura de um banco de dados para a infraestrutura de nuvem — no caso, a AWS.

Vamos imaginar que queremos colocar um MySQL em produção. Poderíamos acessar uma máquina virtual através do EC2 e instalar o MySQL. Contudo, a AWS fornece um serviço que traz facilidades no gerenciamento de um banco de dados relacional.

Se precisássemos de um banco de dados para data warehouse, poderíamos provisionar toda a infraestrutura dentro do EC2 também, instalando um banco de dados focado em data warehouse e configurando à nossa necessidade. Contudo, a AWS já fornece um banco de dados de data warehouse. O mesmo serve para banco de dados em memória, banco de dados de documentos e vários outros tipos.

Em resumo, a ideia de um banco de dados como serviço é a AWS fornecer o serviço de gestão da infraestrutura. Nós informamos as necessidades do sistema e ela provisionará e gerenciará um banco de dados para nós.

A AWS nos fornece algumas opções. Pensando no cenário que criamos no início dessa aula, precisaríamos de:

Para conferir a lista de serviços de bancos de dados fornecidos pela Amazon, vamos acessar aws.amazon.com/pt/products/databases/. No início da tela, já temos o seguinte título:

Bancos de dados na nuvem da AWS

Modernize sua infraestrutura de dados com bancos de dados de propósito específico totalmente gerenciados

Repare na expressão "totalmente gerenciados", esse é o ponto que queremos enfatizar. Nós poderíamos provisionar nossa infraestrutura no EC2, criando as máquinas virtuais e instalando um servidor de banco de dados. Porém, seria necessário sempre cuidar da infraestrutura, do seu escalonamento, de sua disponibilidade. Ao delegar essa responsabilidade para a AWS, temos várias facilidades, especialmente quando já sabemos que tipo de banco de dados precisamos.

Descendo nessa tela, abaixo do título "Serviços de banco de dados", temos uma tabela que nos informa o tipo de banco de dados, o propósito e os serviços fornecidos pela AWS:

Tipo de banco de dadosCasos de usoServiço da AWS
RelacionalAplicações tradicionais, planejamento de recursos empresariais (ERP), gerenciamento de relacionamento com o cliente (CRM), comércio eletrônicoAmazon Aurora, Amazon RDS, Amazon Redshift
Chave-valorAplicativos da Web de alto tráfego, sistemas de comércio eletrônico, aplicações de jogosAmazon DynamoDB
Em memóriaArmazenamento em cache, gerenciamento de sessões, tabelas de classificação de jogos, aplicações geoespaciaisAmazon ElastiCache, Amazon MemoryDB for Redis
.........

Por exemplo, vamos supor que precisamos de um banco de dados relacional para armazenar dados da aplicação ou para data warehouse em que queremos poder ter consultas em SQL e várias entidades diferentes. Nesse caso, temos serviços como o Amazon RDS e o Amazon Aurora (que estudaremos no curso) e o Amazon Redshift (que apenas comentaremos no curso), este último focado em data warehouse.

Já se precisássemos de um banco de dados chave-valor para um cenário de muito tráfego e grande volume de dados, temos o DynamoDB, que exploraremos nesse curso também.

Para armazenar o cache da aplicação, podemos usar um banco de dados em memória, como o Amazon ElastiCache. Ele tem acesso muito rápido e configurações específicas para isso. Caso você já possua uma aplicação rodando em outro provedor de nuvem ou fora da nuvem, utilizando Redis (um banco de dados em memória muito famoso), a Amazon já possui um serviço compatível com Redis, chamado Amazon MemoryDB for Redis. Então, você poderia subir esse serviço e configurar sua aplicação para apontar para lá e tudo continuaria funcionando.

Se nossa aplicação usar PostgreSQL ou MySQL, podemos selecionar esses mecanismos no Amazon RDS. Se usamos o MongoDB como banco de dados para documentos, temos a opção do Amazon DocumentDB.

Analisando o restante da tabela, sabemos que para um banco de dados do tipo:

Para cada tipo de banco de dados ou até mesmo para alguns bancos de dados mais conhecidos, temos um serviço na AWS nos fornece isso de forma completamente gerenciada.

Para o cenário que criamos no início da aula, poderíamos usar:

Neste curso, focaremos no RDS e citaremos o Aurora, aprendendo a gerenciar bancos de dados relacionais na AWS. Também aprenderemos um pouco sobre banco de dados não relacionais com DynamoDB, entendendo a utilizá-lo e configurá-lo. Assim, estaremos bem encaminhados em nossos estudos de bancos de dados em nuvem.

No próximo vídeo, falaremos resumidamente sobre o Redshift, um banco de dados para data warehouse.

Bancos de dados na AWS - Menção honrosa: Redshift

Neste vídeo, citaremos rapidamente o Amazon Redshift, um serviço da AWS com foco em data warehouse (armazém de dados). Vou explicar o propósito do Redshift no local onde trabalho.

Nós temos diversos microsserviços. O projeto em que estou trabalhando é uma aplicação de marketing de gerenciamento de redes sociais de uma empresa com várias localidades (ou franquias, se preferir).

Para cada uma dessas localidades, podemos ter várias redes sociais cadastradas, criar publicações em várias dessas redes e essas publicações geram diversas métricas. Então, agrupamos todas as métricas em uma instância do Redshift para servir como nosso data warehouse.

Vários microsserviços diferentes mandam informações para o Redshift, que tem dois usos principais:

A ideia do Redshift é armazenar e centralizar uma quantidade enorme de dados, utilizando um formato relacional. Ao acessar a página do Redshift na Amazon, abaixo do título "Como funciona", temos a seguinte definição:

O Amazon Redshift usa SQL para analisar dados estruturados e semiestruturados em data warehouses [...]

Supondo que contratamos uma equipe de dados que conhece SQL, o uso do Redshift seria uma opção viável. Assim, não seria necessário aprender uma linguagem de consulta de um banco de dados específicos, dado que alguns bancos usam sintaxes diferenciadas.

Enquanto um banco de dados relacional comum armazena dados de forma estruturada, com regras entre relacionamentos e validações, um data warehouse suporta um volume imenso de informações para podermos consultá-las e gerar métricas.

Isso não significa que um banco de dados relacional comum não conseguiria armazenar esses dados. Eles apenas não os comprimiriam nem fariam consultas de forma tão otimizadas quanto um banco de dados de data warehouse. Então, se você pretende guardar um volume enorme de dados para gerar relatório, você pode cogitar o uso de um banco de dados específico para esse cenário.

Existem diversas ferramentas para utilizar serviços de nuvem localmente, basta pesquisar por "CLI Serverless" ou "Local Serverless".

Como o Redshift usa SQL, é bastante comum ter no seu ambiente de desenvolvimento um banco de dados relacional qualquer. A sintaxe do PostgreSQL, por exemplo, será muito semelhante à do Redshift, então podemos ter tabelas localmente com PostgreSQL e, em produção, acessar o Redshift para ter a performance e o cenário real de um data warehouse.

Já entendemos brevemente o que são bancos de dados como serviço e fizemos uma menção honrosa ao Redshift. Na sequência, vamos para o foco do nosso curso: RDS e DunamoDB. Estudaremos mais detalhamente o que são e as facilidades que trazem para nós.

Sobre o curso Banco de dados na AWS: gerencie RDS e DynamoDB

O curso Banco de dados na AWS: gerencie RDS e DynamoDB possui 142 minutos de vídeos, em um total de 39 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