BANCO DE DADOS
Existem 08 tipos de bancos de dados na 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
IBM db2
MySQL
MariaDB
PostgreSQL
Oracle
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
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
Baseado em SSD e usa indexação limitada em atributos para desempenho.
Usa HTTP sobre SSL (HTTPS) como transporte e JSON como formato de serialização de mensagem.
Armazena três réplicas geograficamente distribuídas de cada tabela para alta disponibilidade e durabilidade de dados.
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).
Cenários Típicos de Uso para ElastiCache:
CASOS DE USO | BENEFÍCIOS |
Armazenamento de Sessão Web | Em casos com servidores web equilibrados, armazene informações de sessão na Redis, para que, se um servidor for perdido, as informações da sessão não sejam perdidas e outro servidor web possa recuperá-las. |
Cache de Banco de Dados | Use o Memcached na frente do AWS RDS para armazenar consultas populares para aliviar o trabalho do RDS e retornar resultados mais rapidamente aos usuários. |
Quadros de Classificação | Use o Redis para fornecer um quadro de classificação ao vivo para milhões de usuários do seu aplicativo móvel. |
Dashboards de Dados em Tempo Real | Forneça um local para dados de sensores em tempo real no chão de fábrica, fornecendo displays de painel ao vivo 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:
- 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.
- Redis: modelo mais complexo, suporta criptografia, replicação mestre/escravo, cross-AZ (alta disponibilidade), failover automático e backup/restauração.