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.
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.
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ê.
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.
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 dados | Casos de uso | Serviço da AWS |
---|---|---|
Relacional | Aplicações tradicionais, planejamento de recursos empresariais (ERP), gerenciamento de relacionamento com o cliente (CRM), comércio eletrônico | Amazon Aurora, Amazon RDS, Amazon Redshift |
Chave-valor | Aplicativos da Web de alto tráfego, sistemas de comércio eletrônico, aplicações de jogos | Amazon DynamoDB |
Em memória | Armazenamento em cache, gerenciamento de sessões, tabelas de classificação de jogos, aplicações geoespaciais | Amazon 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.
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.
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:
Impulsione a sua carreira com os melhores cursos e faça parte da maior comunidade tech.
1 ano de Alura
Assine o PLUS e garanta:
Formações com mais de 1500 cursos atualizados e novos lançamentos semanais, em Programação, Inteligência Artificial, Front-end, UX & Design, Data Science, Mobile, DevOps e Inovação & Gestão.
A cada curso ou formação concluído, um novo certificado para turbinar seu currículo e LinkedIn.
No Discord, você tem acesso a eventos exclusivos, grupos de estudos e mentorias com especialistas de diferentes áreas.
Faça parte da maior comunidade Dev do país e crie conexões com mais de 120 mil pessoas no Discord.
Acesso ilimitado ao catálogo de Imersões da Alura para praticar conhecimentos em diferentes áreas.
Explore um universo de possibilidades na palma da sua mão. Baixe as aulas para assistir offline, onde e quando quiser.
Acelere o seu aprendizado com a IA da Alura e prepare-se para o mercado internacional.
1 ano de Alura
Todos os benefícios do PLUS e mais vantagens exclusivas:
Luri é nossa inteligência artificial que tira dúvidas, dá exemplos práticos, corrige exercícios e ajuda a mergulhar ainda mais durante as aulas. Você pode conversar com a Luri até 100 mensagens por semana.
Aprenda um novo idioma e expanda seus horizontes profissionais. Cursos de Inglês, Espanhol e Inglês para Devs, 100% focado em tecnologia.
Transforme a sua jornada com benefícios exclusivos e evolua ainda mais na sua carreira.
1 ano de Alura
Todos os benefícios do PRO e mais vantagens exclusivas:
Mensagens ilimitadas para estudar com a Luri, a IA da Alura, disponível 24hs para tirar suas dúvidas, dar exemplos práticos, corrigir exercícios e impulsionar seus estudos.
Envie imagens para a Luri e ela te ajuda a solucionar problemas, identificar erros, esclarecer gráficos, analisar design e muito mais.
Escolha os ebooks da Casa do Código, a editora da Alura, que apoiarão a sua jornada de aprendizado para sempre.