Diante do crescente número de clientes enfrentando dificuldades para executar o MongoDB em grande escala, a Amazon desenvolveu o DocumentDB como solução.
Com o dimensionamento automatizado de dados do DocumentDB, é possível expandir sua capacidade de armazenamento de 10 GB a 64 TB com facilidade. Vamos explorar como isso funciona.
O que é o DocumentDB?
O AWS DocumentDB é uma versão aprimorada da versão anterior do MongoDB 3.6. A Amazon identificou a necessidade de criar uma solução própria para lidar com grandes volumes de dados e cargas de trabalho de missão crítica. O DocumentDB é uma implementação proprietária da Amazon e não utiliza o código-fonte do MongoDB.
Assim como o MongoDB, o DocumentDB é um sistema de armazenamento de documentos. O AWS DocumentDB é um banco de dados NoSQL que indexa estruturas de dados em formato JSON, característico dos mecanismos de armazenamento de documentos. Em resumo, o Amazon DocumentDB é uma alternativa ao MongoDB fornecida pela AWS, porém com características distintas.
Antes de nos aprofundarmos no Amazon DocumentDB, é crucial entender o conceito de NoSQL e por que ele se tornou uma tendência tão relevante atualmente.
O que é um banco de dados NoSQL?
Bancos de dados NoSQL se distinguem pela ausência de tabelas relacionadas, sendo comumente conhecidos como “não apenas SQL”. Os principais tipos de dados utilizados nesse modelo são documentos e gráficos. Eles são projetados para lidar com grandes volumes de dados e um alto número de requisições de usuários.
Desenvolvedores optam por bancos de dados NoSQL por sua performance superior, e não apenas por capacidade de armazenamento. Dados NoSQL são semiestruturados e polimórficos, facilitando o armazenamento de grandes quantidades de informações não estruturadas.
Além de serem mais consistentes, bancos de dados NoSQL são mais fáceis de escalar e exigem menos recursos do que bancos de dados relacionais. Diferentemente dos bancos de dados SQL, os NoSQL podem ser empilhados, e sua natureza sem esquema permite múltiplas estruturas para itens de banco de dados.
Um número crescente de desenvolvedores está migrando seus programas e dados para nuvens públicas. A capacidade de escalar horizontalmente, em vez de verticalmente, e a geolocalização inteligente de dados tornaram-se requisitos cruciais, e estas são características oferecidas pelo MongoDB.
Empresas de diversos setores utilizam NoSQL, com casos de uso significativos em dados financeiros e de saúde, como o armazenamento de leituras de IoT de dispositivos inteligentes.
O que motivou a criação do DocumentDB?
A Amazon percebeu que muitos usuários enfrentavam dificuldades para executar o MongoDB em larga escala. Diante disso, a empresa concluiu que nenhuma solução existente, incluindo o MongoDB Atlas, atendia plenamente às necessidades de seus clientes, decidindo, assim, criar sua própria solução.
O DocumentDB permite que você dimensione seu banco de dados automaticamente de 10 GB para 64 TB, eliminando a necessidade de intervenção manual. Antes do DocumentDB, lidar com essa quantidade de dados era uma tarefa complexa.
A solução da Amazon também oferece tolerância a falhas integrada. O espaço de armazenamento é dividido automaticamente em blocos de 10 GB, distribuídos por diversos discos. Cada bloco é replicado seis vezes em três zonas de disponibilidade para garantir backups.
É possível perder até duas cópias de dados sem comprometer a disponibilidade de gravação, e até três cópias sem afetar a disponibilidade de leitura. O sistema também possui capacidade de autorrecuperação, verificando e corrigindo automaticamente erros em blocos de dados e discos.
Como a Amazon hospeda o serviço, a maioria das normas de segurança são atendidas. O DocumentDB é compatível com padrões como PCI DSS e ISO 9001, além de SOC 1, SOC 2, SOC 3 e HIPAA.
Benefícios do DocumentDB
#1. Compatibilidade com MongoDB
O Amazon DocumentDB é compatível com drivers MongoDB 3.6 e 4.0. Isso permite que os clientes utilizem muitos dos aplicativos, drivers e ferramentas que já usam com o MongoDB.
O Amazon DocumentDB emprega as APIs de código aberto Apache 2.0 MongoDB 3.6 e 4.0 para simular um servidor MongoDB, oferecendo o desempenho, escalabilidade e disponibilidade necessários para aplicações MongoDB de missão crítica.
#2. Monitoramento
O Amazon DocumentDB oferece análises do Amazon CloudWatch para servidores de banco de dados na nuvem. Através do Console de gerenciamento da AWS, é possível acompanhar o desempenho do cluster em áreas como computação e memória, incluindo taxa de transferência de consultas, contagem de operações MongoDB e conexões ativas.
#3. Latência
O Amazon DocumentDB oferece suporte a documentos JSON, diversos tipos de dados e indexação rápida. Sua arquitetura na memória permite que o serviço avalie consultas em documentos extensos de forma eficiente.
#4. Controle de acesso
O Amazon DocumentDB suporta RBAC (controle de acesso baseado em função), com funções pré-definidas e personalizadas. O RBAC possibilita a implementação do princípio do menor privilégio, restringindo o que cada usuário pode fazer.
Como parte do AWS Identity and Access Management (IAM), você pode gerenciar as permissões de usuários e grupos do AWS IAM em relação aos recursos do Amazon DocumentDB, incluindo clusters, instâncias, snapshots e grupos de parâmetros. Também é possível etiquetar recursos e regular permissões de usuários e grupos do IAM.
#5. Criptografia
É possível criptografar seus bancos de dados Amazon DocumentDB utilizando o AWS Key Management Service (KMS).
A criptografia do Amazon DocumentDB protege os dados armazenados, bem como backups, snapshots e réplicas automatizadas em um cluster. Conexões de clientes com o Amazon DocumentDB também são automaticamente criptografadas via TLS.
#6. Certificações de conformidade
O Amazon DocumentDB foi desenvolvido em conformidade com os mais altos padrões de segurança, para atender às necessidades de regulamentação e conformidade. Ele é compatível com PCI DSS, ISO 9001, 27001, 27017 e 27018, SOC 1, 2 e 3, e HIPAA.
#7. Clusters globais com alta disponibilidade
Os clusters globais do Amazon DocumentDB garantem leitura global e recuperação de desastres. Seus dados são replicados em até cinco regiões da AWS com impacto mínimo no desempenho.
#8. Implantações Multi-AZ com réplicas
Com até 15 réplicas em três zonas de disponibilidade, o Amazon DocumentDB automaticamente substitui instâncias em caso de falha. Em situações de indisponibilidade, o Amazon DocumentDB busca criar uma nova instância.
#9. Armazenamento tolerante a falhas e autorrecuperável
O volume de armazenamento é replicado seis vezes em três zonas de disponibilidade (AZs). O Amazon DocumentDB oferece armazenamento tolerante a falhas, gerenciando a perda de até duas cópias de dados sem afetar a disponibilidade de gravação. Além disso, o armazenamento do Amazon DocumentDB é autorrecuperável, substituindo blocos e discos de dados defeituosos.
Perguntas Frequentes sobre o AWS DocumentDB
O AWS DocumentDB é equivalente ao MongoDB?
O Amazon DocumentDB, compatível com MongoDB, é um serviço de banco de dados de documentos totalmente gerenciado, rápido e escalável. Ele é ideal para cargas de trabalho do MongoDB.
O Amazon DocumentDB permite armazenar dados JSON como um banco de dados de documentos, facilitando o armazenamento, pesquisa e indexação de dados.
Os clientes podem utilizar o AWS Database Migration Service (DMS) gratuitamente por seis meses para migrar rapidamente seus bancos de dados MongoDB locais ou Amazon Elastic Cloud (EC2) para o AWS Database Migration Service (DMS), com tempo de inatividade mínimo.
Como o Amazon DocumentDB opera?
O Amazon DocumentDB interage com as APIs MongoDB 3.6 e 4.0 de código aberto Apache 2.0 como um banco de dados de documentos. Isso possibilita usar os mesmos drivers, aplicativos e ferramentas do MongoDB com o Amazon DocumentDB, com poucas ou nenhuma alteração.
Como o Amazon DocumentDB é dimensionado?
O Amazon DocumentDB é um banco de dados escalável que pode ser dimensionado de 10 GB a 64 TB em incrementos de 10 GB. A capacidade de armazenamento e computação pode ser escalada vertical e horizontalmente, adicionando instâncias de réplica (até 15) ao cluster para maior taxa de transferência de leitura.
Quais são os principais aspectos do design do Amazon DocumentDB?
O Amazon DocumentDB foi construído desde o início com uma arquitetura focada na nuvem, facilitando o escalonamento de cargas de trabalho JSON.
Um aspecto importante do design do DocumentDB é a separação entre armazenamento e processamento, permitindo que cada um cresça de forma independente. O DocumentDB possui um sistema de armazenamento distribuído, tolerante a falhas e autorrecuperável. Cada cluster de banco de dados pode armazenar até 64 TB de dados sem a necessidade de divisão.
Conclusão
O DocumentDB é o único serviço compatível com MongoDB gerenciado pela Amazon. Segundo a empresa, o DocumentDB oferece o dobro da taxa de transferência em comparação com soluções MongoDB atualmente disponíveis. A alternativa seria gerenciar bancos de dados em EC2/EBS, o que apresenta desafios significativos.
Se você busca garantias de desempenho e escalabilidade, opte pelo DocumentDB, ou mantenha o MongoDB. Outro fator para escolher o DocumentDB é a possibilidade de manter tudo dentro do ecossistema da AWS.