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
Darede Portugal
  • 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

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!

EBS Snapshot

No ecossistema da Amazon Web Services (AWS), o Amazon Elastic Block Store (EBS) desempenha um papel fundamental no armazenamento persistente de dados para instâncias do Amazon EC2.

O que é o Amazon Kinesis?

Entenda de forma prática e simplificada a funcionalidade do Amazon Kinesis

Ferramentas de produtividade para home office

Confira um artigo que dá dicas de ferramentas que ajudam a trabalhar home office.

Novidades da Semana 24 a 28 de maio

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. Reunimos algumas delas que fazem mais sentido para nosso mercado e que certamente aplicaremos em nosso dia a dia. Confira as novidades das últimas semanas.

Darede – AWS Consulting Partner of the Year 2021 (English Version)

The APN Awards is Amazon Web Services’ recognition of the top partners in different regions around the world who in 2020 helped their customers build technology solutions for their organizations, driving digital transformation and innovation using AWS cloud services. The winners of this award have demonstrated practically how it is possible to provide the best experience in the world of cloud computing and turn it into a positive impact on businesses worldwide.

« 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
Acesse Darede Portugal
Darede Portugal

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