AWS Certified Cloud Practitioner

Bancos de dados na AWS

Entenda como os bancos de dados funcionam na AWS, a diferença entre um serviço gerenciado e autogerenciar um banco no EC2, dados relacionais e não relacionais, e a ideia de bancos de propósito específico.

Iniciante 14 minutos 4 Objetivos de aprendizado
  1. Explicar o que é um serviço de banco de dados gerenciado e como ele difere de rodar um banco no Amazon EC2
  2. Comparar bancos de dados relacionais e não relacionais
  3. Descrever a ideia de bancos de dados de propósito específico
  4. Identificar as principais categorias de banco que a AWS oferece e para que serve cada uma

Por que bancos de dados importam no exame

Quase toda aplicação precisa guardar dados em algum lugar, e o banco de dados é onde esses dados vivem. No exame CLF-C02 você não precisa desenhar schemas nem escrever queries. Você precisa reconhecer os serviços de banco da AWS, saber se um serviço é relacional ou não relacional, e ligar uma necessidade descrita ao serviço certo.

Esta lição prepara o resto do tópico. Ela cobre o que é um serviço de banco gerenciado, como ele difere de rodar um banco por conta própria, a divisão entre dados relacionais e não relacionais, e a ideia de bancos de propósito específico. As próximas lições entram nos serviços específicos.

Serviço gerenciado x autogerenciar

Você pode rodar um banco de dados na AWS de duas formas gerais.

A primeira é subir uma instância Amazon EC2, instalar o software do banco você mesmo e gerenciar tudo: o sistema operacional, os patches, os backups, o escalonamento e a recuperação. Isso dá controle total, mas todo o trabalho operacional fica com você, e pequenos erros durante um patch ou upgrade manual podem causar indisponibilidade.

A segunda é usar um serviço gerenciado, como o Amazon RDS. A AWS provisiona o banco, aplica os patches, faz backups automatizados, detecta falhas e cuida da recuperação. Você foca nos seus dados e na sua aplicação em vez da infraestrutura por baixo. A AWS recomenda um serviço gerenciado como padrão para a maioria das cargas de trabalho.

A tabela abaixo mostra quem cuida do quê em três opções.

TarefaOn-premisesBanco no EC2Serviço gerenciado (RDS)
Ajuste da aplicação e das queriesVocêVocêVocê
Instalação e patching do software de bancoVocêVocêAWS
Patching do sistema operacionalVocêVocêAWS
Backups e recuperaçãoVocêVocêAWS
Manutenção de servidor e hardwareVocêAWSAWS
Energia, rede e refrigeraçãoVocêAWSAWS

Repare no padrão: conforme você caminha para um serviço gerenciado, a AWS assume mais do trabalho de rotina. Uma coisa nunca muda. O ajuste das suas próprias queries fica com você em todos os modelos, porque depende dos seus dados e de como a aplicação os usa.

Bancos relacionais e não relacionais

Os bancos de dados se dividem em dois grandes grupos, e o exame espera que você saiba diferenciá-los.

Um banco relacional (muitas vezes chamado de SQL) guarda dados em tabelas feitas de linhas e colunas, com um schema definido. Você pode ligar, ou juntar (join), tabelas para responder perguntas que cruzam dados relacionados, como casar clientes com seus pedidos. Bancos relacionais combinam com dados estruturados e transações onde a precisão importa, como finanças, pedidos e estoque.

Um banco não relacional (muitas vezes chamado de NoSQL) usa outros modelos de dados que abrem mão de parte da estrutura rígida em troca de escala, velocidade e flexibilidade. Em vez de tabelas fixas, ele pode guardar pares chave-valor, documentos parecidos com JSON, grafos ou pontos com marca de tempo. Esses modelos brilham quando você precisa de throughput muito alto, latência baixa ou um schema flexível que muda com frequência.

Nenhum grupo é "melhor". Eles resolvem problemas diferentes, e é exatamente por isso que a AWS oferece os dois.

Bancos de propósito específico

A AWS não empurra um único banco para todo trabalho. Em vez disso, oferece uma variedade de bancos de propósito específico, cada um otimizado para um modelo de dados e uma carga de trabalho. A ideia é simples: escolher a ferramenta certa para cada tarefa. Uma mesma aplicação pode usar vários ao mesmo tempo, como um banco relacional para cobrança e um banco chave-valor para o carrinho de compras.

CategoriaPara que serveServiço AWS
RelacionalDados estruturados em tabelas, transações, joinsAmazon RDS, Amazon Aurora
Chave-valorApps web de alto tráfego, em qualquer escalaAmazon DynamoDB
Em memóriaCache e respostas em microssegundosAmazon ElastiCache, Amazon MemoryDB
DocumentoDocumentos parecidos com JSON, com campos flexíveisAmazon DocumentDB
GrafoDados muito conectados e relacionamentosAmazon Neptune
Wide-columnCargas Apache Cassandra em larga escalaAmazon Keyspaces
Séries temporaisDados que mudam ao longo do tempo, como IoTAmazon Timestream

Você não precisa de detalhe profundo sobre cada serviço para o exame. Precisa reconhecer o nome, saber a que categoria ele pertence e ligar um cenário a ele. As próximas três lições cobrem os serviços mais cobrados de cada grupo, começando pelos bancos relacionais.

Pontos para a prova

  • Um serviço gerenciado (como o Amazon RDS) significa que a AWS cuida de patching, backups, failover e hardware. Rodar um banco no EC2 significa que tudo isso é seu.
  • O ajuste de queries é sempre tarefa sua, mesmo com um serviço gerenciado.
  • Relacional (SQL) = tabelas, linhas, colunas, joins, schema fixo. Não relacional (NoSQL) = chave-valor, documento, grafo e outros modelos flexíveis feitos para escala.
  • Propósito específico significa que a AWS oferece um banco para cada tipo de carga, e você escolhe o certo em vez de forçar tudo em um banco só.
  • Aprenda a mapear cada categoria ao seu serviço: relacional para RDS e Aurora, chave-valor para DynamoDB, em memória para ElastiCache, grafo para Neptune, documento para DocumentDB.