NOTAS DE ESTUDO
AWS - Bancos de dados
Bancos de dados da Amazon
- Armazenar dados em disco com EFS, EBS, EC2 Instance Store ou S3 tem limitações.
- Às vezes é melhor usar um banco de dados.
- É possível estruturar os dados.
- Índices permitem consultar e pesquisar os dados de forma eficiente.
- Você define os relacionamentos entre os conjuntos de dados.
- Bancos de dados são otimizados para propósitos específicos e têm recursos, formatos e restrições diferentes.
Bancos de dados relacionais
- Parecem planilhas do Excel com vínculos entre elas.
- Exemplo: uma planilha de alunos com Dept ID relacionada a uma planilha de departamentos com Dept ID.
- Permitem consultas e buscas com a linguagem SQL.
Bancos de dados NoSQL
- NoSQL: bancos não SQL, ou não relacionais.
- São construídos para modelos de dados específicos e oferecem esquemas flexíveis para aplicações modernas.
- Benefícios:
- Flexibilidade: facilita a evolução do modelo de dados.
- Escalabilidade: projetados para expansão horizontal com clusters distribuídos.
- Alto desempenho: otimizados para um modelo de dados específico.
- Alta funcionalidade: tipos otimizados para o modelo de dados.
- Exemplos: bancos de chave-valor, documentos, grafos, memória e pesquisa.
- Exemplo de dados NoSQL: JSON.
- JSON significa JavaScript Object Notation.
- É um formato comum de dados compatível com modelos NoSQL.
- Os dados podem ser aninhados.
- Os campos podem mudar ao longo do tempo.
- Há suporte a novos tipos, como arrays.
{
"name": "John",
"age": 30,
"cars": [
"Ford",
"BMW",
"Fiat"
],
"address": {
"type": "house",
"number": 23,
"street": "Dream Road"
}
}
Bancos de dados e responsabilidade compartilhada na AWS
- A AWS oferece serviços para gerenciar diferentes bancos de dados.
- Benefícios:
- Provisionamento rápido, alta disponibilidade e escalabilidade vertical e horizontal.
- Backup e restauração automáticos, operações e atualizações.
- A AWS aplica as correções do sistema operacional.
- Monitoramento e alertas.
- Muitas tecnologias de banco podem ser executadas em EC2, mas você precisa cuidar de resiliência, backup, correções, alta disponibilidade, tolerância a falhas e escalabilidade.
Visão geral do Amazon RDS
- RDS significa Relational Database Service.
- Serviço gerenciado para bancos que usam SQL como linguagem de consulta.
- Permite criar bancos na nuvem gerenciados pela AWS:
- Postgres.
- MySQL.
- MariaDB.
- Oracle.
- Microsoft SQL Server.
- IBM DB2.
- Aurora, banco de dados proprietário da AWS.
- Vantagens do RDS em relação a implantar um banco em EC2:
- Serviço gerenciado.
- Provisionamento e correções do sistema operacional automatizados.
- Backups contínuos e restauração para um instante específico, Point-in-Time Restore.
- Painéis de monitoramento.
- Réplicas de leitura para melhorar o desempenho.
- Configuração Multi-AZ para recuperação de desastres.
- Janelas de manutenção para atualizações.
- Escalabilidade vertical e horizontal.
- Armazenamento baseado em EBS.
- Não permite acesso SSH às instâncias.
Amazon Aurora
- Tecnologia proprietária da AWS, sem código aberto.
- Compatível com PostgreSQL e MySQL.
- Otimizado para a nuvem AWS, com alegação de desempenho cinco vezes maior que MySQL no RDS e mais de três vezes maior que Postgres no RDS.
- O armazenamento cresce automaticamente em incrementos de 10 GB, até 128 TB.
- Custa mais que RDS, cerca de 20%, mas é mais eficiente.
- Não faz parte do nível gratuito.
Amazon Aurora Serverless
- Criação automática do banco e escalabilidade conforme o uso real.
- Compatível com PostgreSQL e MySQL.
- Dispensa planejamento de capacidade.
- Menor esforço de gerenciamento.
- Pagamento por segundo, podendo ser mais econômico.
- Útil para cargas infrequentes, intermitentes ou imprevisíveis.
Implantações RDS: réplicas de leitura e Multi-AZ
- Réplicas de leitura:
- Escalam a carga de leitura do banco.
- Permitem criar até 15 réplicas.
- Os dados são gravados apenas no banco principal.
- Multi-AZ:
- Failover em caso de falha de uma AZ, para alta disponibilidade.
- Os dados são lidos e gravados apenas no banco principal.
Implantações RDS: várias Regiões
- Multi-Region com réplicas de leitura:
- Recuperação de desastres em caso de problema na Região.
- Desempenho local para leituras globais.
- Custo de replicação.
Amazon ElastiCache
- Assim como o RDS fornece bancos relacionais gerenciados, o ElastiCache fornece Redis ou Memcached gerenciados.
- Caches são bancos em memória com alto desempenho e baixa latência.
- Reduzem a carga dos bancos em aplicações com muitas leituras.
- A AWS cuida de manutenção e correções do sistema operacional, otimizações, instalação, configuração, monitoramento, recuperação de falhas e backups.
DynamoDB
- Totalmente gerenciado e altamente disponível, com replicação em três AZs.
- Banco NoSQL, não relacional.
- Milhões de solicitações por segundo, trilhões de linhas e centenas de TB de armazenamento.
- Desempenho rápido e consistente.
- Latência de poucos milissegundos, com recuperação de dados em baixa latência.
- Integrado ao IAM para segurança, autorização e administração.
- Baixo custo e escalabilidade automática.
- Classes de tabela Standard e Infrequent Access (IA).
DynamoDB - Tipo de dados
- DynamoDB é um banco de chave-valor.
DynamoDB Accelerator - DAX
- Cache em memória totalmente gerenciado para DynamoDB.
- Melhora o desempenho em dez vezes, passando de poucos milissegundos para microssegundos no acesso às tabelas DynamoDB.
- Seguro, altamente escalável e altamente disponível.
- Diferença para ElastiCache no nível do exame CCP: DAX é exclusivo do DynamoDB e integrado a ele, enquanto ElastiCache pode ser usado com outros bancos.
DynamoDB - Global Tables
- Disponibilizam uma tabela DynamoDB com baixa latência em várias Regiões.
Redshift
- Baseado em PostgreSQL, mas não é usado para OLTP.
- É OLAP, processamento analítico online, voltado a análises e data warehouses.
- Carregamento de dados a cada hora, não a cada segundo.
- Desempenho dez vezes maior que outros data warehouses, com escala de petabytes.
- Armazenamento colunar em vez de armazenamento por linhas.
- Execução de consultas massivamente paralela, MPP, e alta disponibilidade.
- Pagamento conforme as instâncias provisionadas.
- Interface SQL para executar consultas.
- Integra-se a ferramentas de BI como AWS QuickSight e Tableau.
Redshift Serverless
- Provisiona e escala automaticamente a capacidade subjacente dos data warehouses.
- Executa cargas analíticas sem gerenciar a infraestrutura do data warehouse.
- Pagamento apenas pelo uso, reduzindo custos.
- Casos de uso: relatórios, aplicações de painéis e análises em tempo real.
Amazon EMR
- EMR significa Elastic MapReduce.
- Ajuda a criar clusters Hadoop de Big Data para analisar e processar grandes volumes de dados.
- Os clusters podem ter centenas de instâncias EC2.
- Compatível também com Apache Spark, HBase, Presto e Flink.
- Gerencia todo o provisionamento e a configuração.
- Escalabilidade automática e integração com instâncias Spot.
- Casos de uso: processamento de dados, machine learning, indexação web e Big Data.
Amazon Athena
- Serviço serverless de consultas para analisar objetos S3.
- Usa SQL padrão para consultar arquivos.
- Compatível com CSV, JSON, ORC, Avro e Parquet, baseado em Presto.
- Preço: $5.00 por TB de dados lidos.
- Use dados comprimidos ou colunares para reduzir a leitura e economizar.
- Casos de uso: inteligência de negócios, análises, relatórios e consultas em VPC Flow Logs, logs ELB e trilhas CloudTrail.
- Dica para o exame: para analisar dados no S3 com SQL serverless, use Athena.
Amazon QuickSight
- Serviço serverless de inteligência de negócios com machine learning para criar painéis interativos.
- Rápido, com escalabilidade automática, incorporável e com preço por sessão.
- Casos de uso:
- Análises de negócios.
- Criação de visualizações.
- Análises ad hoc.
- Obtenção de informações de negócios a partir dos dados.
- Integrado a RDS, Aurora, Athena, Redshift e S3.
DocumentDB
- Aurora é uma implementação AWS de PostgreSQL/MySQL.
- DocumentDB oferece uma proposta semelhante para MongoDB, um banco NoSQL.
- MongoDB armazena, consulta e indexa dados JSON.
- Conceitos de implantação semelhantes aos do Aurora.
- Totalmente gerenciado e altamente disponível, com replicação em três AZs.
- O armazenamento cresce automaticamente em incrementos de 10 GB.
- Escala automaticamente para cargas com milhões de solicitações por segundo.
Amazon Neptune
- Banco de grafos totalmente gerenciado.
- Uma rede social é um exemplo comum de conjunto de dados em grafo:
- Usuários têm amigos.
- Publicações têm comentários.
- Comentários recebem curtidas de usuários.
- Usuários compartilham e curtem publicações.
- Alta disponibilidade em três AZs, com até 15 réplicas de leitura.
- Cria e executa aplicações com conjuntos de dados altamente conectados, otimizadas para consultas complexas.
- Armazena até bilhões de relações e consulta o grafo com latência de milissegundos.
- Alta disponibilidade com replicação entre várias AZs.
- Útil para grafos de conhecimento, como Wikipedia, detecção de fraudes, mecanismos de recomendação e redes sociais.
Amazon Timestream
- Banco de séries temporais totalmente gerenciado, rápido, escalável e serverless.
- Ajusta a capacidade automaticamente para cima ou para baixo.
- Armazena e analisa trilhões de eventos por dia.
- Milhares de vezes mais rápido e com um décimo do custo de bancos relacionais.
- Funções analíticas de séries temporais integradas ajudam a identificar padrões quase em tempo real.
Amazon QLDB
- QLDB significa Quantum Ledger Database.
- Um ledger é um livro de registro de transações financeiras.
- Totalmente gerenciado, serverless e altamente disponível, com replicação em três AZs.
- Usado para revisar o histórico de todas as alterações nos dados da aplicação ao longo do tempo.
- Sistema imutável: nenhuma entrada pode ser removida ou modificada, e há verificação criptográfica.
- Desempenho de duas a três vezes maior que frameworks comuns de ledger em blockchain, com manipulação de dados via SQL.
- Diferença para Amazon Managed Blockchain: não tem componente de descentralização, em conformidade com regras de regulamentação financeira.
Amazon Managed Blockchain
- Blockchain permite criar aplicações nas quais várias partes fazem transações sem uma autoridade central confiável.
- Serviço gerenciado para:
- Participar de redes públicas de blockchain.
- Criar sua própria rede privada escalável.
- Compatível com Hyperledger Fabric e Ethereum.
AWS Glue
- Serviço gerenciado de extração, transformação e carga, ETL.
- Prepara e transforma dados para análises.
- Totalmente serverless.
- Glue Data Catalog: catálogo dos conjuntos de dados.
- Pode ser usado por Athena, Redshift e EMR.
DMS - Database Migration Service
- Migração rápida, segura, resiliente e com recuperação automática de bancos de dados para a AWS.
- O banco de origem permanece disponível durante a migração.
- Compatível com:
- Migrações homogêneas, como Oracle para Oracle.
- Migrações heterogêneas, como Microsoft SQL Server para Aurora.