Ir para o conteúdo
  • Empresa
    • SOBRE NÓS
    • TRABALHE CONOSCO
  • Soluções
    CONSULTORIA CLOUD
    • GET STARTED
    • DESIGN
    • IMPLANTAÇÃO
    MIGRAÇÃO
    SQUAD AS A SERVICE
    WELL ARCHITECTED
    SEGURANÇA E COMPLIANCE
    • ASSESSMENT DE VULNERABILIDADE
    • CENTRO DE OPERAÇÕES DE SEGURANÇA (SOC)
    • ASSESSMENT LGPD
    • UTM - GERENCIAMENTO UNIFICADO DE AMEAÇAS
    BIG DATA & MACHINE LEARNING
    • Analytics
    • AI/ML
    SERVIÇOS GERENCIADOS
    • MONITORAMENTO E SUPORTE 24X7
    • DAREDE MSP
    • GERENCIAMENTO DEVOPS
    • GERENCIAMENTO DEVSECOPS
    • GERENCIAMENTO FINOPS
    • GERENCIAMENTO DE BANCO DE DADOS
    • GERENCIAMENTO DE PABX IP
    • LICENCIAMENTO DE SOFTWARE
    COMPETÊNCIAS AWS
    • AWS CLOUD FRONT
    • AWS AURORA
    • AMAZON RDS
    • DEVOPS
    • MICROSOFT WORKLOADS
    • MIGRATION
    • PUBLIC SECTOR
    • PUBLIC SECTOR NPO
    • PUBLIC SECTOR EDUCATION
    • WELL ARCHITECTED
    • VMWARE CLOUD ON AWS
    • API GATEWAY
    • LAMBDA
    • NETWORKING ON AWS
    • FINANCIAL SERVICES
  • Cases
  • Blog
  • Fale Conosco
  • Canal Compliance
  • Seja Parceiro Autorizado
Entenda de forma prática e simplificada o conceito de bancos de dados não-relacionais com o Amazon DynamoDB!

14/09/2023

 Por Thiago Marques 

O pai ta on!!

Nos últimos anos, o cenário de banco de dados evoluiu consideravelmente, e com ele surgiram diversas opções para atender diversas necessidades de armazenamento e gerenciamento de dados. Muito além de banco de dados relacionais, hoje já possuímos banco de dados gráficos, banco de dados distribuídos, banco de dados de séries temporais e até bando de dados ledger.

Uma dessas linhas de desenvolvimento, foi algo relativamente disruptivo para época (onde os bancos relacionais dominavam), que era um conceito justamente contrário, ou seja: um banco de dados não-relacional, também conhecido como NoSQL.

Neste artigo, vamos explorar o Amazon DynamoDB, que é a solução de NoSQL oferecida pela Amazon Web Services, também conhecida como AWS. 

O que é um banco de dados não-relacional

Edgar Frank Codd foi um matemático que decidiu usar sua genialidade para desenvolver o primeiro modelo do que chamamos de bando de dados relacionais, ou seja, onde uma tabela pode ser relacionada a outra usando um atributo, que durante mais de 2 décadas foi o principal modelo de dados utilizados em bancos como Oracle, DB2, MySQL e PostGreSQL. 

Contudo, por volta do início dos anos 2000 entra em cena discussões de uma forma mais simples e escalável, e então surgiu a ideia de se utilizar uma estrutura chave-valor, característica principal de um NoSQ, adicionalmente, os bancos de dados não-relacionais permitem uma estrutura mais flexível para armazenar informações. Essa flexibilidade torna-os ideais para lidar com grandes volumes de dados não estruturados ou semiestruturados, comuns em aplicativos modernos, como aplicativos da web, jogos e IoT.

Os bancos de dados não-relacionais podem ser divididos em várias categorias, como bancos de dados de documentos, bancos de dados de chave-valor, bancos de dados de colunas e bancos de dados de grafos. O Amazon DynamoDB se enquadra na categoria de bancos de dados de chave-valor.

Vantagens do DynamoDB

Se tratando do serviço de database NoSQL da AWS, o DynamoDB herda as características clássicas de uma DB não relacional, além de garantir vantagens de ser altamente escalável, e totalmente gerenciado. O DynamoDB foi projetado para garantir um alto desempenho e disponibilidade, permitindo que o foco fica na construção de aplicativos, e não na infraestrutura para suportá-lo.

Outra grande característica do serviço é o Amazon DynamoDB Accelerator (DAX), que é um sub-serviço capaz de gerenciar cache em memória, e assim melhorar o desempenho de consultas de leitura na database.

Outras características do DynamoDB, incluem, mas não se limitam a:

Escalabilidade 

Escalabilidade automática permite que você aumente ou diminua a capacidade de armazenamento e leitura/escrita conforme a demanda, sem tempo de inatividade, o que por padrão já é uma vantagem gigante frente a maioria dos bancos de dados relacionais, e mesmo não-relacionais baseados em infra (IaaS).

Latência

Mesmo tendo uma latência de processamento mais baixa que outras bases de dados, com a utilização de cache com o DAX, os resultados das consultas mais frequentes são realizados em memória, o que reduz significativamente a resposta de consultas subsequentes.

Disponibilidade

Além de ser um serviço gerenciado, o deploy de um banco dynamodb é feito em com replicações automáticas de dados em várias zonas de disponibilidade, o que garante a continuidade da aplicação e a resiliência contra falhas.

No exemplo abaixo temos exemplo de uma aplicação WEB, 100% serveles, com a utilização do Amplify/API Gateway e Lambda para frontend, e trabalhando com o DynamoDB com base de dados.


Onde usar o DynamoDB

De fato, o um bando NoSQL tende a ser criado em ambientes onde a quantidade de requisições é muita alta, e/ou a latência necessária para acessar o dado é uma medida essencial para a aplicação.

Dessa forma cases onde o DynamoDB pode ser utilizado são:

Aplicativos de Jogos Online: Onde a latência é um fator crítico para a solução (ninguém gosta de delay), garantindo uma experiencia de um jogo fluido.

IoT: Talvez o maior case de sucesso para chave-valor, uma vez que a quantidade de dados, e sobretudo a quantidade de dados gerados ultrapassa os padrões ‘normais’ de um banco.

Gerenciamento de Sessão e Autenticação: Mantendo o estado de sessões de usuários de maneira eficiente, garantindo por exemplo a escala de outras aplicações de maneira mais eficiente.

Infra como Código

Como sempre vamos ver um exemplo de código para criar o deploy em python:

import boto3

 

dynamodb_client = boto3.client(“dynamodb”)

 

dynamodb_client.create_table(

    TableName=”dynamodb_table”,

    KeySchema=[{“AttributeName”: “id”, “KeyType”: “HASH”}],

    AttributeDefinitions=[{“AttributeName”: “id”, “AttributeType”: “S”}],

)

 

rds_client = boto3.client(“rds”)

 

# Criar um banco RDS

rds_client.create_db_instance(

    DBName=”RDS_database“,

    DBInstanceClass=”db.t3.micro”,

    Engine=”mysql”,

    AllocatedStorage=20,

)

 

# Criar um cliente DMS

dms_client = boto3.client(“dms”)

 

# Criar um endpoint DynamoDB

dms_client.create_endpoint(

    EndpointIdentifier=”dynamodb_endpoint”,

    EngineName=”dynamodb”,

    ServiceAccessRoleArn=”arn:aws:iam::123456789012:role/my-dms-role”,

)

 

# Criar os endpoints para RDS e DynamoDB

dms_client.create_endpoint(

    EndpointIdentifier=”rds_endpoint”,

    EngineName=”mysql”,

    ServiceAccessRoleArn=”arn:aws:iam::123456789012:role/my-dms-role”,

)

# Criar um canal de replicação

dms_client.create_replication_channel(

    ReplicationChannelName=”replication_channel”,

    ReplicationInstanceArn=”arn:aws:rds:us-east-1:123456789012:db:RDS_database “,

    ReplicationEndpointArns=[“arn:aws:dms:us-east-1:123456789012:endpoint/dynamodb_endpoint”, “arn:aws:dms:us-east-1:123456789012:endpoint/rds_endpoint”],

)

 

# Criar uma tarefa de replicação

dms_client.create_replication_task(

    ReplicationTaskIdentifier=”replication_task”,

    ReplicationInstanceArn=”arn:aws:rds:us-east-1:123456789012:db:RDS_database “,

    ReplicationTaskSettings={“CdcStartPosition”: “START_AT_EARLIEST_AVAILABLE”},

    ReplicationTaskSourceIds=[“dynamodb_endpoint”, “rds_endpoint”],

)

 

OBS.: AS ARNs aqui descritas são EXEMPLOS, altere para role utilizada em sua conta

Xero no suvaco!! Be Happy!!!

foto-thiago-marques
Thiago Marques Technical Account Manager
thiago.marques@darede.com.br

Technical Account Manager da Darede, formato em Rede de Computadores, e pós graduado em Segurança da Informação. Possui ampla experiência em Datacenters e Service Providers, além de ser um entusiasta em DevOps e mercado financeiro.

OUTRAS PUBLICAÇÕES

Darede anuncia parceria com a Escola da Nuvem

A Darede, consultoria de serviços de TI, eleita Consulting Partner of the Year 2021 pela Amazon Web Services, anunciou que integrará o projeto da Escola da Nuvem, uma organização sem fins lucrativos que busca encontrar novos talentos da tecnologia da informação através de ações de capacitação e da criação de oportunidades de emprego visando proporcionar uma nova realidade para quem mais precisa. Ao lado de algumas das principais consultorias do país, a empresa irá investir financeiramente no projeto, além de ajudar a desenvolver os cursos de áreas da cloud computing, disponibilizar seus especialistas para as mentorias com os estudantes participantes e oferecer vagas de trabalho através da plataforma da iniciativa.

O que é Infrastructure as Code (IaC)?

A Infrastructure as Code é um modo de automatizar o provisionamento da infraestrutura de TI e aliada com a cultura DevOps pode ser de grande ajuda para as empresas. Confira o artigo do blog sobre esse conceito.

Novidades da Semana – 13 a 17 de setembro

Os #cloudspecialists da Darede reuniram as principais novidades da semana da AWS! Confira quais são elas e como elas podem te ajudar!

Well Architected – Questões do pilar de Sustentabilidade Parte 1

Veja a resposta de algumas questões apontadas na aplicabilidade do pilar de sustentabilidade do well architected da AWS!

Cloud e Educação: A tecnologia que revolucionou as escolas

Confira o artigo que traz os benefícios do cloud computing no setor da educação.

Novidades da Semana AWS 28/09 a 02/10

Todos os dias a AWS lança uma série novidades e atualizações em seus produtos que visam melhorar a vida de seus usuários. Veja as dessa semana!

« Anterior Página1 Página2 Página3 Página4 Página5 Página6 Página7 Página8 Página9 Página10 Próxima »
  • Alameda Araguaia, 2044 - Bloco 1 - CJ 210/211
    06455-000 - Alphaville,
    Barueri São Paulo - Brasil
  • +55 11 3900-1010 | 3995-6919

Conecte-se conosco

  • E-books
  • Blog

Mais

  • Fale Conosco
  • Canal Compliance
  • Seja Parceiro Autorizado
  • Governança Corporativa

newsletter

  • Política de Privacidade e Cookies
  • Perguntas Frequentes
© Copyright 2025 Darede à nuvem
Todos os direitos reservados | By Damidia Marketing & Conteúdo

Nós usamos cookies para garantir e oferecer a melhor experiência de navegação em nosso site! Mais informações

ACEITAR & FECHAR
RECUSAR