pj

Guia CLF Banco de Dados

Índice

Existem 08 tipos de bancos de dados na AWS:

tipos de banco de dados aws

Amazon Relational Database Service (RDS)

O Amazon Relational Database Service (Amazon RDS) é um serviço gerenciado que facilita a configuração, operação e escalabilidade de um banco de dados relacional na nuvem.

  • Bancos de dados relacionais são conhecidos como bancos de dados Structured Query Language (SQL).
  • Bancos de dados não relacionais são conhecidos como bancos de dados NoSQL.
  • RDS é um tipo de banco de dados Online Transaction Processing (OLTP).

Recursos e Benefícios do RDS

  • Tipo de banco de dados SQL.
  • Pode ser usado para realizar consultas e junções complexas.
  • Fácil de configurar, altamente disponível, tolerante a falhas e escalável.
  • Usado quando os dados são claramente definidos.
  • Casos de uso comuns incluem lojas online e sistemas bancários.

Mecanismos de Banco de Dados Suportados no Amazon RDS

  1. IBM db2

  2. MySQL

  3. MariaDB

  4. PostgreSQL

  5. Oracle

  6. e o Microsoft SQL Server

O Amazon Aurora, apesar de estar sendo demonstrado como mecanismo no Amazon RDS, ele é um serviço de propriedade AWS, e utiliza seu próprio mecanismo para gerenciar um banco de dados relacional MySQL e PostgreSQL.

O Amazon RDS é um serviço totalmente gerenciado e você não tem acesso à instância EC2 subjacente (sem acesso ao root).

O Serviço RDS Inclui:

  • Segurança e atualização das instâncias de banco de dados.
  • Backup automático para as instâncias de banco de dados.
  • Atualizações de software para o mecanismo de banco de dados.
  • Escalonamento fácil para armazenamento e computação.
  • Opção Multi-AZ com replicação síncrona.
  • Failover automático para opção Multi-AZ.
  • Opção de réplicas de leitura para cargas de trabalho de leitura intensiva.

Criptografia

  • Você pode criptografar suas instâncias e snapshots do Amazon RDS em repouso, ativando a opção de criptografia para a instância do Amazon RDS.
  • A criptografia em repouso é suportada para todos os tipos de banco de dados e usa o AWS KMS.
  • Você não pode criptografar um banco de dados existente; você precisa criar um snapshot, copiá-lo, criptografar a cópia e, em seguida, criar um banco de dados criptografado a partir do snapshot.

Grupos de sub-redes do Banco de Dados

  • Um grupo de subnets do banco de dados é uma coleção de subnets (tipicamente privadas) que você cria em uma VPC e designa para suas instâncias de banco de dados.
  • Cada grupo de subnets do banco de dados deve ter subnets em pelo menos duas Zonas de Disponibilidade em cada região.
  • É recomendável configurar um grupo de subnets com subnets em cada AZ (mesmo para instâncias independentes).

Cobrança AWS por:

  • Horas de instância do banco de dados (horas parciais são cobradas como horas completas).
  • GB/mês de armazenamento.
  • Requisições de E/S/mês – para armazenamento magnético.
  • IOPS provisionados/mês – para SSDs IOPS provisionados do RDS.
  • Transferência de dados de saída.
  • Armazenamento de backup (backups do banco de dados e snapshots manuais).

Escalabilidade:

  • Você só pode escalar o RDS para cima (computação e armazenamento).
  • Você não pode diminuir o armazenamento alocado para uma instância do RDS.
  • Você pode escalar o armazenamento e alterar o tipo de armazenamento para todos os mecanismos de banco de dados, exceto o MS SQL.

Multi-AZ para Recuperação de Desastres:

  • Multi-AZ RDS cria uma réplica em outra AZ e replica sincronicamente para ela (apenas DR).
  • Há uma opção para escolher Multi-AZ durante o assistente de lançamento.
  • A AWS recomenda o uso de armazenamento de IOPS provisionados para instâncias de banco de dados RDS Multi-AZ.
  • Cada AZ é executada em sua própria infraestrutura fisicamente distinta e independente, projetada para ser altamente confiável.
  • Você não pode escolher qual AZ na região será escolhida para criar a instância de banco de dados de espera.

Réplicas de Leitura - Melhor Desempenho para Leituras:

  • As réplicas de leitura são usadas para bancos de dados com muitas leituras e a replicação é assíncrona.
  • Réplicas de leitura são para compartilhamento de carga de trabalho e alívio de carga.
  • Réplicas de leitura fornecem DR somente leitura.
  • As réplicas de leitura são criadas a partir de um snapshot da instância mestre.
  • Deve ter backups automáticos ativados no primário (período de retenção > 0).

Amazon DynamoDB

O Amazon DynamoDB é um serviço de banco de dados NoSQL totalmente gerenciado que oferece desempenho rápido e previsível com escalabilidade contínua.

Recursos e Benefícios do DynamoDB

  • Tipo de banco de dados NoSQL (não relacional).
  • Rápido, altamente disponível e totalmente gerenciado.
  • Usado quando os dados são fluidos e podem mudar.
  • Casos de uso comuns incluem redes sociais e análise da web.
  • Escalabilidade fácil, sem interrupções.

Características do DynamoDB

  1. Baseado em SSD e usa indexação limitada em atributos para desempenho.

  2. Usa HTTP sobre SSL (HTTPS) como transporte e JSON como formato de serialização de mensagem.

  3. Armazena três réplicas geograficamente distribuídas de cada tabela para alta disponibilidade e durabilidade de dados.

  4. Replicação síncrona em três instalações (AZs) em uma região.

Replicação entre regiões para replicar em várias regiões:

    • Amazon DynamoDB Global Tables fornece uma solução totalmente gerenciada para implantar um banco de dados multi-região e multi-mestre.
    • Ao criar uma tabela global, você especifica as regiões da AWS onde deseja que a tabela esteja disponível.
    • O DynamoDB realiza todas as tarefas necessárias para criar tabelas idênticas nessas regiões e propagar alterações contínuas de dados para todas elas.
    • Fornece baixa latência de leitura e gravação.

Outras Características do DynamoDB

  • Escala armazenamento e throughput para cima ou para baixo conforme necessário sem alterações de código ou tempo de inatividade.

  • Sem esquema.

  • Pode ser usado para armazenar o estado da sessão.

Fornece dois modelos de leitura:

    • Leituras eventualmente consistentes (padrão):

      • A opção de consistência eventual maximiza seu throughput de leitura (melhor desempenho de leitura).
      • Uma leitura eventualmente consistente pode não refletir os resultados de uma gravação concluída recentemente.
      • Consistência em todas as cópias alcançada dentro de 1 segundo.
    • Leituras fortemente consistentes:

      • Uma leitura fortemente consistente retorna um resultado que reflete todas as gravações que receberam uma resposta bem-sucedida antes da leitura (consistência mais rápida).

Amazon DynamoDB Accelerator (DAX)

Totalmente gerenciado, altamente disponível, cache em memória para o DynamoDB que oferece até 10x de melhoria de desempenho – de milissegundos para microssegundos – mesmo em milhões de solicitações por segundo.

Amazon RedShift

Amazon Redshift é um data warehouse rápido e totalmente gerenciado que simplifica e torna econômica a análise de todos os seus dados usando SQL padrão e ferramentas de Business Intelligence (BI) existentes.

 

  • Data warehouse SQL usado para aplicações de análise.
  • Banco de dados relacional usado para casos de uso de Processamento Analítico Online (OLAP).
  • Ideal para executar consultas analíticas complexas em petabytes de dados estruturados, usando otimização avançada de consultas, armazenamento colunar em discos locais de alta performance e execução de consultas em paralelo maciço.
  • Ideal para processar grandes quantidades de dados para inteligência de negócios.
  • 10x mais rápido do que um banco de dados SQL tradicional.
  • Usa armazenamento de dados colunar.
  • Fornece compressão avançada para melhor desempenho e economia de espaço.
  • Mantém sempre três cópias dos seus dados (original, réplica nos nós de computação, cópia de backup no S3).
  • Oferece backups contínuos/incrementais.
  • Tolerante a falhas em caso de falhas de disco, nós, rede ou desastres em nível de AZ/região.

Amazon Neptune

  • Amazon Neptune é um serviço de banco de dados de gráficos totalmente gerenciado, rápido e confiável, que facilita a construção e execução de aplicativos que trabalham com conjuntos de dados altamente conectados.
  • Com o Amazon Neptune, é possível criar aplicativos de gráficos sofisticados e interativos que podem consultar bilhões de relações em milissegundos.
  • Consultas SQL para dados altamente conectados são complexas e difíceis de ajustar para o desempenho. Em vez disso, o Amazon Neptune permite o uso das linguagens de consulta de gráficos populares Apache TinkerPop Gremlin e SPARQL da W3C para executar consultas poderosas que são fáceis de escrever e têm bom desempenho em dados conectados.

Amazon ElastiCache

ElastiCache é um serviço web que facilita a implantação e execução de nós de servidor compatíveis com os protocolos Memcached ou Redis na nuvem.

  • Cache em memória que melhora significativamente a latência e o throughput para muitas cargas de trabalho de aplicativos voltadas para leitura ou cargas de trabalho intensivas de computação.
  • Melhor para cenários em que a carga do banco de dados é baseada em transações de Processamento Analítico Online (OLAP).
Casos de uso Benefícios
Armazenamento de sessões web Em ambientes com vários servidores web atrás de um balanceador de carga, o Amazon ElastiCache para Redis OSS pode centralizar os dados das sessões. Se um servidor ficar indisponível, outro poderá recuperar essas informações.
Cache de banco de dados O Amazon ElastiCache para Memcached pode armazenar resultados de consultas frequentes, reduzindo a carga sobre o Amazon RDS e diminuindo o tempo de resposta aos usuários.
Quadros de classificação O Amazon ElastiCache para Redis OSS pode armazenar e atualizar quadros de classificação em tempo real para aplicações com grande quantidade de usuários.
Painéis de dados em tempo real O Amazon ElastiCache pode armazenar e disponibilizar dados de sensores com baixa latência, permitindo a atualização de painéis de monitoramento em tempo real.
  • Os nós EC2 ElastiCache não podem ser acessados pela Internet, nem podem ser acessados por instâncias EC2 em outras VPCs.

  • Pode ser em instâncias sob demanda ou reservadas (mas não em instâncias Spot).

  • Pode ser usado para armazenar o estado da sessão.

Existem dois tipos de mecanismos do ElastiCache:

  1. Memcached: modelo mais simples, pode executar grandes nós com vários núcleos/tarefas, pode ser dimensionado para cima e para baixo, pode armazenar objetos como bancos de dados.
  2. Redis: modelo mais complexo, suporta criptografia, replicação mestre/escravo, cross-AZ (alta disponibilidade), failover automático e backup/restauração.