MongoDB Academy · Aula

MongoDB versus DynamoDB: compromissos nativos da nuvem

Os alunos avaliarão quando o modelo totalmente sem servidor do AWS DynamoDB oferece mais vantagens que a flexibilidade superior de consultas do MongoDB Atlas e vice-versa.

Aula 3 de 413 etapas

MongoDB versus DynamoDB: compromissos nativos da nuvem é uma aula grátis de MongoDB Academy no CoddyKit. Esta é a aula 3 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de MongoDB Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de MongoDB Academy inclui 4 aulas no total.

Duas abordagens de NoSQL na nuvem

AWS DynamoDB e MongoDB Atlas são bancos de dados NoSQL na nuvem, mas seguem filosofias muito diferentes. O DynamoDB é o serviço NoSQL totalmente sem servidor da AWS — não há servidores para gerenciar, o dimensionamento é automático e o pagamento é feito por solicitação. O MongoDB Atlas é um serviço de nuvem gerenciado, mas ainda se baseia em clusters de servidores, oferecendo maior controle operacional. A escolha geralmente depende de duas questões: quanto controle da infraestrutura você deseja e quão complexos são seus padrões de consulta?

A proposta de valor sem servidor do DynamoDB

DynamoDB é verdadeiramente sem servidor: não há instâncias para escolher, decisões sobre dimensionamento de clusters ou configuração de conjuntos de réplicas. A AWS dimensiona automaticamente a capacidade de leitura e gravação com base na demanda, gerencia a fragmentação de forma transparente e garante latência de milissegundos de um único dígito em qualquer escala. Para equipes que desejam zero sobrecarga operacional e integração estreita com a AWS (funções do IAM, acionadores do Lambda, Streams), o DynamoDB elimina toda uma categoria de decisões de infraestrutura.

O modelo de dados rígido do DynamoDB

O modelo principal de acesso do DynamoDB é limitado: toda tabela tem uma chave de partição (obrigatória) e uma chave de ordenação opcional. Os itens são recuperados por correspondência exata da chave de partição e, opcionalmente, filtrados por um intervalo da chave de ordenação. Não há um mecanismo de consulta de uso geral — consultas ad hoc exigem um índice secundário global (GSI) projetado na criação da tabela ou uma varredura completa da tabela (cara e lenta). Isso força um projeto de esquema baseado primeiro nos padrões de acesso, de forma semelhante ao Cassandra.

// DynamoDB: item identified by partition key + sort key
// Table: Orders
// Partition key: customerId
// Sort key: orderId

// Fetch all orders for a customer — fast
await dynamo.query({
  TableName: 'Orders',
  KeyConditionExpression: 'customerId = :cid',
  ExpressionAttributeValues: { ':cid': 'cust-123' }
}).promise()

// Find all orders with status = 'pending' — requires GSI or Scan
// A Scan reads the ENTIRE table — avoid in production

O rico modelo de consultas do MongoDB Atlas

O MongoDB Atlas oferece o mesmo modelo avançado de consultas que o MongoDB autogerenciado — pipelines de agregação, junções com $lookup, pesquisa textual, consultas geoespaciais e filtros arbitrários de campos com índices compostos. Os padrões de consulta podem evoluir após o lançamento simplesmente adicionando um novo índice. Essa flexibilidade é uma grande vantagem para aplicações cujos requisitos mudam com frequência ou não são totalmente conhecidos no momento do projeto.

// MongoDB: ad-hoc query across multiple fields
db.orders.aggregate([
  {
    $match: {
      status: 'pending',
      createdAt: { $gte: new Date('2024-06-01') },
      'items.category': 'electronics'
    }
  },
  { $group: { _id: '$customerId', totalPending: { $sum: '$total' } } },
  { $sort: { totalPending: -1 } },
  { $limit: 10 }
])
// No equivalent in DynamoDB without expensive Scan + application-side grouping

Diferenças entre os modelos de preços

O DynamoDB oferece dois modos de preços: sob demanda (pagamento por solicitação de leitura/gravação — excelente para tráfego imprevisível) e provisionado (reserva de unidades de capacidade antecipadamente — mais barato para cargas previsíveis com escalabilidade automática). O MongoDB Atlas cobra por nível de cluster (tamanho da instância + armazenamento), tornando os custos mais previsíveis com carga constante, mas mais altos com pouco tráfego. Para cargas de trabalho com picos ou orientadas a eventos, sem tráfego entre os eventos, o pagamento por solicitação do DynamoDB pode ser muito mais barato.

Integração com o ecossistema da AWS

O DynamoDB integra-se nativamente ao ecossistema mais amplo da AWS. Os Streams do DynamoDB emitem eventos de alteração que acionam funções do AWS Lambda — de forma idêntica aos Change Streams do MongoDB, mas dentro da AWS. A autenticação do IAM significa que não é necessário gerenciar credenciais de banco de dados separadas. A recuperação pontual e o backup são configurados com alguns cliques. Para equipes já profundamente investidas na AWS (Lambda, API Gateway, Cognito, S3), o DynamoDB minimiza a alternância de contexto.

Portabilidade entre nuvens do MongoDB Atlas

O MongoDB Atlas é executado na AWS, Azure e GCP — você não fica preso a um único provedor de nuvem. É possível implantar um cluster multirregional abrangendo a AWS e o Azure. O MongoDB autogerenciado em seus próprios servidores comporta-se de forma idêntica ao Atlas, permitindo migrar entre a nuvem e o ambiente local. O DynamoDB está disponível somente na AWS; para migrar dele, é necessário reescrever a camada de acesso aos dados. Para organizações com estratégias multinuvem ou requisitos regulatórios de residência de dados, a portabilidade do Atlas é uma vantagem significativa.

Opções de consistência do DynamoDB

O DynamoDB oferece leituras com consistência eventual (padrão — menor latência e menor custo) e leituras com consistência forte (maior latência e custo 2 vezes maior). As gravações têm sempre consistência forte dentro de um único item. O DynamoDB também oferece suporte a transações (TransactWriteItems / TransactGetItems) para operações atômicas em vários itens — até 100 itens por transação. Elas são semelhantes às transações de vários documentos do MongoDB, mas são cobradas pelo dobro do custo normal das unidades de leitura/gravação.

Tamanho dos documentos e flexibilidade do esquema

Os dois bancos de dados oferecem suporte a documentos flexíveis e sem esquema. Os itens do DynamoDB podem ter até 400 KB; os documentos do MongoDB, até 16 MB. Para metadados de mídia avançada, conteúdo de texto longo ou estruturas aninhadas grandes, o limite maior de documentos do MongoDB é importante. O limite de 400 KB do DynamoDB significa que grandes cargas úteis precisam ser divididas ou armazenadas no S3 com uma referência no DynamoDB — o que adiciona complexidade. Para dados estruturados comuns com menos de 400 KB, o limite raramente é relevante.

Quando escolher o DynamoDB

Escolha o DynamoDB quando: sua equipe for nativa da AWS e quiser zero gerenciamento de infraestrutura; o tráfego for irregular ou imprevisível (APIs apoiadas pelo Lambda, sistemas orientados a eventos); seus padrões de acesso forem simples e bem definidos antecipadamente (consultas de chave-valor e intervalos ordenados); ou você precisar de integração estreita com Lambda/IAM sem gerenciar conjuntos de conexões. Aplicações de página única com uma API REST e operações CRUD simples no DynamoDB são casos clássicos de uso.

Quando escolher o MongoDB Atlas

Escolha o MongoDB Atlas quando: os padrões de consulta evoluírem ou forem complexos (agregações, junções, pesquisa de texto completo); sua equipe precisar de portabilidade entre nuvens ou para ambientes locais; os documentos puderem ser maiores que 400 KB; você precisar do Atlas Search, Vector Search ou Data Federation; ou sua aplicação já usar o MongoDB localmente e você quiser migrar para a nuvem sem atrito. O MongoDB também é a escolha mais forte quando pipelines avançados de análise forem um requisito essencial.

Verificação rápida

Teste sua compreensão dos conceitos de MongoDB e bancos de dados NoSQL desta lição.

Recapitulação da lição

Nesta lição, você aprendeu que o modelo sem servidor e a integração nativa com a AWS do DynamoDB o tornam ideal para cargas de trabalho irregulares e orientadas a eventos, com padrões de acesso simples e predefinidos; o MongoDB Atlas oferece consultas mais avançadas, documentos maiores e portabilidade entre nuvens que o DynamoDB não consegue igualar; e a principal troca é entre simplicidade operacional e dependência da AWS (DynamoDB), de um lado, e flexibilidade de consultas e liberdade entre nuvens (MongoDB), de outro. Em seguida, veremos quando usar um banco de dados de grafos como o Neo4j em vez do MongoDB.

Grátis para começar

Aprenda JavaScript com um tutor de IA — grátis

Escreva e execute código real no seu navegador, obtenha ajuda instantânea de um tutor de IA 24/7 e continue de onde parou na web ou no app.

Cursos
30
Aulas
120

Perguntas Frequentes

A aula “MongoDB versus DynamoDB: compromissos nativos da nuvem” é grátis?

Sim — o texto completo de “MongoDB versus DynamoDB: compromissos nativos da nuvem” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de MongoDB Academy, atualize para CoddyKit PRO. O curso de MongoDB Academy inclui 4 aulas no total.

O que vou aprender em “MongoDB versus DynamoDB: compromissos nativos da nuvem”?

Os alunos avaliarão quando o modelo totalmente sem servidor do AWS DynamoDB oferece mais vantagens que a flexibilidade superior de consultas do MongoDB Atlas e vice-versa. Você pratica MongoDB Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.

Preciso ter experiência prévia para começar MongoDB Academy?

Nenhuma experiência prévia é necessária. MongoDB Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 3 de 4.

Quanto tempo leva a aula “MongoDB versus DynamoDB: compromissos nativos da nuvem”?

A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.

Posso escrever e executar código nesta aula de MongoDB Academy?

Sim. Cada aula de MongoDB Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.

Todas as aulas deste curso

  1. MongoDB versus Redis: documentos versus cache de chave-valor
  2. MongoDB versus Cassandra: gravações em escala planetária
  3. MongoDB versus DynamoDB: compromissos nativos da nuvem
  4. Quando usar um banco de dados de grafos como o Neo4j
← Voltar para MongoDB Academy