Todas as notas

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.