As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
Runbook de migração do Amazon DocumentDB
Este runbook fornece um guia abrangente para migrar um banco de dados MongoDB para o Amazon DocumentDB usando (DMS). AWS Database Migration Service Ele foi projetado para oferecer suporte a administradores de banco de dados, engenheiros de nuvem e desenvolvedores em toda a jornada de end-to-end migração, desde a descoberta inicial até a validação pós-migração.
Dadas as diferenças na implementação e nos recursos suportados entre o MongoDB e o Amazon DocumentDB, este runbook enfatiza uma abordagem estruturada e sistemática. Ele descreve as avaliações essenciais de pré-migração, destaca as considerações de compatibilidade e detalha as principais tarefas necessárias para garantir uma migração bem-sucedida com o mínimo de interrupções.
O runbook está organizado nos seguintes tópicos:
Compatibilidade— Entenda os recursos e os tipos de dados suportados do MongoDB no Amazon DocumentDB e identifique possíveis incompatibilidades.
Descoberta da carga de trabalho— Analise as cargas de trabalho existentes do MongoDB, read/write incluindo padrões, volumes de dados e linhas de base de desempenho.
Migração de índices— Analise estratégias para extrair e transformar índices do MongoDB para obter um desempenho ideal no Amazon DocumentDB.
Migração do usuário— Detalhe a abordagem para migrar usuários, funções e controles de acesso do banco de dados para o Amazon DocumentDB.
Migrações de dados— Abrange vários métodos de uso da migração de dados AWS DMS, incluindo carga total e captura de dados de alteração (CDC).
Monitoramento— Detalhe várias abordagens de monitoramento ao migrar usando DMS ou ferramentas nativas.
Validação— forneça procedimentos para verificações de integridade de dados, validação funcional e comparação de desempenho após a migração.
Seguindo as orientações deste runbook, as equipes podem garantir uma transição tranquila, segura e eficiente para o Amazon DocumentDB, preservando a funcionalidade do aplicativo e minimizando os riscos.
Compatibilidade
Tópicos
Ao migrar do MongoDB para o Amazon DocumentDB, uma avaliação inicial completa e uma verificação de compatibilidade de recursos são essenciais para uma migração bem-sucedida. Esse processo começa com um inventário abrangente dos recursos do MongoDB, incluindo operadores de pipeline de agregação, padrões de consulta, índices e modelos de dados.
Como o Amazon DocumentDB é compatível com as APIs do MongoDB 3.6, 4.0 e 5.0, os aplicativos que usam recursos específicos mais recentes do MongoDB podem precisar de refatoração. As áreas críticas a serem avaliadas incluem mecanismos de fragmentação (o Amazon DocumentDB usa uma abordagem diferente), implementações de transações, funcionalidade de fluxos de mudança e tipos de índice (especialmente índices esparsos e parciais).
As características de desempenho também diferem, com o Amazon DocumentDB otimizado para cargas de trabalho corporativas com desempenho previsível. Os testes devem envolver a execução de cargas de trabalho representativas em ambos os sistemas para identificar padrões de consulta que possam precisar de otimização.
Monitorar os planos de execução para detectar possíveis lacunas de desempenho é importante durante a fase de avaliação. Isso ajuda a criar um roteiro de migração claro, identificando as mudanças necessárias nos aplicativos e estabelecendo cronogramas realistas para uma transição suave.
Compatibilidade de recursos principais
Suporte abrangente de recursos
Operações CRUD — Aproveite o suporte completo para todas as operações básicas de criação, leitura, atualização e exclusão, incluindo operadores em massa e de consulta, oferecendo compatibilidade perfeita com aplicativos.
Recursos avançados de indexação — Aproveite o suporte abrangente para índices de campo único, compostos, TTL, parciais, esparsos e 2dsphere, para otimizar o desempenho de suas consultas e índices de texto (versão 5) para pesquisas baseadas em texto.
Replicação de nível corporativo — beneficie-se de um mecanismo robusto de failover automático com réplicas de leitura para alta disponibilidade sem sobrecarga operacional.
Soluções avançadas de backup — Fique tranquilo com o sistema de backup automatizado com Point-in-Time recuperação (PITR) e instantâneos manuais sob demanda para proteção de dados.
Recursos AWS integrados aprimorados
Agregação simplificada — aproveite os estágios de agregação mais usados (
$match
,,,$group
$sort
$project
, etc.) com desempenho otimizado para cargas de trabalho corporativas.Suporte a transações — implemente transações com vários documentos e várias cobranças, perfeitas para a maioria das necessidades de aplicativos de negócios.
Rastreamento de dados em tempo real — Habilite fluxos de alterações por meio de um comando simples e aumente o período de retenção do fluxo de alterações por meio de uma configuração simples de grupo de parâmetros para monitoramento de alterações de dados em tempo real.
Serviços baseados em localização — Implemente aplicativos geoespaciais com suporte para índices de
$geoNear
operadores e 2dsphere.Recursos de pesquisa de texto — Utilize a funcionalidade de pesquisa de texto integrada para as necessidades de descoberta de conteúdo.
Vantagens da arquitetura moderna
Design nativo da nuvem — Desfrute de uma arquitetura AWS otimizada que substitui recursos legados, por exemplo, por operações de pipeline de MapReduce agregação mais eficientes.
Segurança aprimorada — Beneficie-se da autenticação de AWS Identity and Access Management certificado (IAM), SCRAM-SHA-1, SCRAM-SHA-256, X.509 e autenticação baseada em senha.
Desempenho previsível — Experimente um desempenho consistente otimizado especificamente para cargas de trabalho corporativas.
Para obter uma visão geral abrangente dos recursos do Amazon DocumentDB, consulte APIsMongoDB, operações e tipos de dados compatíveis no Amazon DocumentDB e Diferenças funcionais: Amazon DocumentDB e MongoDB para maximizar o potencial do seu banco de dados.
O Amazon DocumentDB não oferece suporte a todos os índices oferecidos pelo MongoDB. Fornecemos uma ferramenta de indexação
Ferramenta de avaliação de compatibilidade do Amazon DocumentDB
A ferramenta de compatibilidade do MongoDB para o Amazon DocumentDB é um utilitário de código aberto disponível no GitHub que ajuda a avaliar a compatibilidade da carga de trabalho do MongoDB
Recursos principais
Identifica os padrões de uso da API MongoDB em sua carga de trabalho
Sinaliza possíveis problemas de compatibilidade antes da migração
Gera relatórios detalhados de compatibilidade com recomendações
Disponível como um utilitário autônomo que pode ser executado localmente
Métodos de avaliação
Avaliação baseada em registros
Prós:
Captura o comportamento real do tempo de execução e os padrões de consulta
Identifica frequências de uso e características de desempenho no mundo real
Detecta consultas dinâmicas que podem não estar visíveis no código-fonte
Não é necessário acesso ao código-fonte do aplicativo
Contras:
Requer acesso aos registros do MongoDB com a criação de perfil ativada
Captura somente as operações que ocorreram durante o período de registro
Pode perder recursos usados com pouca frequência ou cargas de trabalho sazonais
Análise de código-fonte
Prós:
Cobertura abrangente de todas as operações potenciais do MongoDB na base de código
Pode identificar problemas em caminhos de código raramente executados
Detecta a lógica do lado do cliente que pode ser afetada pelas diferenças do Amazon DocumentDB
Não é necessário executar o aplicativo para realizar a avaliação
Contras:
Pode sinalizar código que existe, mas nunca é executado na produção
Requer acesso ao código-fonte completo do aplicativo
Capacidade limitada de analisar consultas construídas dinamicamente
Para obter melhores resultados, recomendamos usar os dois métodos de avaliação sempre que possível para obter uma visão completa dos desafios de compatibilidade antes da migração.
Descoberta da carga de trabalho
A migração do MongoDB para o Amazon DocumentDB exige uma compreensão completa da carga de trabalho do banco de dados existente. A descoberta da carga de trabalho é o processo de analisar os padrões de uso do banco de dados, as estruturas de dados, o desempenho das consultas e as dependências operacionais para garantir uma transição perfeita com o mínimo de interrupção. Esta seção descreve as principais etapas envolvidas na descoberta da carga de trabalho para facilitar uma migração efetiva do MongoDB para o Amazon DocumentDB.
Tópicos
Avaliando a implantação existente do MongoDB
Antes da migração, é fundamental avaliar o ambiente atual do MongoDB, incluindo:
Arquitetura de cluster — identifique o número de nós, conjuntos de réplicas e configurações de fragmentação. Ao migrar do MongoDB para o Amazon DocumentDB, entender sua configuração de fragmentação do MongoDB é importante porque o Amazon DocumentDB não oferece suporte à fragmentação controlada pelo usuário. Os aplicativos projetados para um ambiente MongoDB fragmentado precisarão de mudanças arquitetônicas, pois o Amazon DocumentDB usa uma abordagem de escalabilidade diferente com sua arquitetura baseada em armazenamento. Você precisará adaptar sua estratégia de distribuição de dados e possivelmente consolidar coleções fragmentadas ao migrar para o Amazon DocumentDB.
Armazenamento e volume de dados — meça o tamanho total dos dados e o tamanho do índice do seu cluster. Complemente isso com a ferramenta de revisão Oplog
para entender os padrões de gravação e a velocidade de crescimento dos dados. Para obter mais informações sobre o dimensionamento do cluster, consulteDimensionamento de instância. Padrões de carga de trabalho — analise a taxa de transferência de leitura e gravação, a frequência de execução de consultas e a eficiência da indexação.
Dependências operacionais — Documente todos os aplicativos, serviços e integrações que dependem do MongoDB.
Identificação de diferenças no modelo de dados
Embora o Amazon DocumentDB seja compatível com o MongoDB, há diferenças nos recursos suportados, como:
Transações — O Amazon DocumentDB suporta transações ACID, mas com algumas. Limitações
Design do esquema — Garanta que as estruturas dos documentos, os documentos incorporados e as referências estejam alinhados às melhores práticas do Amazon DocumentDB
.
Análise de consulta e desempenho
Compreender o comportamento das consultas ajuda a otimizar a migração e o desempenho pós-migração. As principais áreas a serem analisadas incluem:
Consultas lentas — Identifique consultas com alto tempo de execução usando as ferramentas de criação de perfil do MongoDB.
Padrões de consulta — categorize os tipos de consulta comuns, incluindo operações e agregações CRUD.
Uso do índice — Avalie se os índices são utilizados de forma eficaz ou se precisam de otimização no Amazon DocumentDB. Para avaliar o uso do índice e otimizar o desempenho no Amazon DocumentDB, use o estágio do pipeline de
$indexStats
agregação combinado com oexplain()
método em suas consultas críticas. Comece executandodb.collection.aggregate([{$indexStats{}}])
para identificar quais índices estão sendo usados. Você pode fazer uma análise mais detalhada executando suas consultas mais frequentes com.explainPlan
Concorrência e distribuição da carga de trabalho — Avalie as taxas de leitura e gravação, o pool de conexões e os gargalos de desempenho.
Análise de segurança e controle de acesso
Autenticação e autorização
MongoDB RBAC para Amazon DocumentDB IAM e RBAC — Mapeie os usuários e funções de controle de acesso baseados em funções do MongoDB para políticas (IAM) e AWS Identity and Access Management usuários de autenticação SCRAM do Amazon DocumentDB.
Estratégia de migração de usuários — Planeje a migração de usuários do banco de dados, funções personalizadas e privilégios para os mecanismos de autenticação suportados pelo Amazon DocumentDB.
Diferenças de privilégios — identifique os privilégios do MongoDB sem equivalentes diretos do Amazon DocumentDB (por exemplo, funções de administração de cluster).
Autenticação de aplicativos — Atualize cadeias de conexão e gerenciamento de credenciais para as políticas de senha do Amazon DocumentDB. Você pode usar o gerenciador de segredos para armazenar suas credenciais e alternar senhas.
Gerenciamento da conta de serviço — Estabeleça processos para gerenciar as credenciais da conta de serviço em AWS Secrets Manager.
Implementação de privilégios mínimos — revise e refine os controles de acesso para implementar os princípios de privilégios mínimos no novo ambiente.
Criptografia
Garanta que a criptografia em repouso e em trânsito esteja alinhada aos requisitos de conformidade.
Configuração de rede
Planeje a configuração da Virtual Private Cloud (VPC) e as regras do grupo de segurança.
Considerações operacionais e de monitoramento
Para manter a confiabilidade do sistema, a descoberta da carga de trabalho também deve incluir:
Estratégia de backup e restauração — Avalie os métodos de backup existentes e os recursos de backup do Amazon DocumentDB.
AWS Backup integração — Aproveite o gerenciamento centralizado AWS Backup de backup em todos os AWS serviços, incluindo o Amazon DocumentDB.
CloudWatch métricas — Mapeie as métricas de monitoramento do MongoDB com as métricas do Amazon CloudWatch DocumentDB para CPU, memória, conexões e armazenamento.
Performance Insights — Implemente o Amazon DocumentDB Performance Insights para visualizar a carga do banco de dados e analisar problemas de desempenho com análises detalhadas de consultas.
Profiler — Configure o profiler do Amazon DocumentDB para capturar operações de execução lenta (semelhante ao criador de perfil do MongoDB, mas com configurações específicas do Amazon DocumentDB).
Ative por meio de grupos de parâmetros com limites apropriados.
Analise os dados do profiler para identificar oportunidades de otimização
CloudWatch Eventos — Configure o monitoramento orientado por eventos de cluster do Amazon DocumentDB.
Configure notificações para eventos de backup, janelas de manutenção e failovers.
Integre-se ao Amazon SNS para alertas e respostas AWS Lambda automatizadas.
Registro de auditoria — Planeje a configuração do registro de auditoria para rastrear a atividade do usuário e eventos relevantes à segurança.
Monitoramento aprimorado — Permita o monitoramento aprimorado de métricas granulares no nível do sistema operacional em intervalos de 1 segundo.
Migração de índices
A migração do MongoDB para o Amazon DocumentDB envolve a transferência não apenas de dados, mas também de índices para manter o desempenho das consultas e otimizar as operações do banco de dados. Esta seção descreve o step-by-step processo detalhado de migração de índices do MongoDB para o Amazon DocumentDB e, ao mesmo tempo, garante compatibilidade e eficiência.
Usando a ferramenta de índice Amazon DocumentDB
Clonar a ferramenta de indexação
git clone https://github.com/aws-samples/amazon-documentdb-tools.git cd amazon-documentdb-tools/index-tool
pip install -r requirements.txt
Exportar índices do MongoDB (se estiver migrando do MongoDB)
python3 migrationtools/documentdb_index_tool.py --dump-indexes --dir mongodb_index_export --uri 'mongodb://localhost:27017'
Exportar índices do Amazon DocumentDB (se estiver migrando do Amazon DocumentDB)
python3 migrationtools/documentdb_index_tool.py --dump-indexes --dir docdb_index_export --uri 'mongodb://user:password@mydocdb.cluster-cdtjj00yfi95.eu-west- 2.docdb.amazonaws.com:27017/?tls=true&tlsCAFile=rds-combined-ca- bundle.pem&replicaSet=rs0&retryWrites=false'
Índices de importação
python3 migrationtools/documentdb_index_tool.py --restore-indexes --skip-incompatible --dir mongodb_index_export --uri 'mongodb://user:password@mydocdb.cluster-cdtjj00yfi95.eu-west- 2.docdb.amazonaws.com:27017/?tls=true&tlsCAFile=rds-combined-ca- bundle.pem&replicaSet=rs0&retryWrites=false'
Verifique os índices
python3 migrationtools/documentdb_index_tool.py --show-issues --dir mongodb_index_export
Migração do usuário
A migração de usuários do MongoDB para o Amazon DocumentDB é essencial para manter o controle de acesso, a autenticação e a segurança do banco de dados. Esta seção descreve as etapas detalhadas para migrar com sucesso os usuários do MongoDB, preservando suas funções e permissões usando a ferramenta de exportação de usuários do Amazon DocumentDB.
Usando a ferramenta de exportação de usuários do Amazon DocumentDB
Ele Export Users tool
Pré-requisitos
# Clone the repository git clone https://github.com/awslabs/amazon-documentdb-tools.git cd amazon-documentdb-tools/migration/export-users
# Install required dependencies pip install pymongo
Etapa 1: exportar usuários e funções
# Export users and roles to JavaScript files python3 docdbExportUsers.py \ --users-file mongodb-users.js \ --roles-file mongodb-roles.js \ --uri "mongodb://admin:password@source-host:27017/"
Etapa 2: Editar o arquivo do usuário
// Example of how to update the users.js file // Find each user creation statement and add the password db.getSiblingDB("admin").createUser({ user: "appuser", // Add password here pwd: "newpassword", roles: [ { role: "readWrite", db: "mydb" } ] })
Etapa 3: Restaurar funções personalizadas no Amazon DocumentDB
# Import roles first mongo --ssl \ --host target-host:27017 \ --sslCAFile rds-combined-ca-bundle.pem \ --username admin \ --password password \ mongodb-roles.js
Etapa 4: Restaurar usuários no Amazon DocumentDB
# Import users after roles are created mongo --ssl \ --host target-host:27017 \ --sslCAFile rds-combined-ca-bundle.pem \ --username admin \ --password password \ mongodb-users.js
Notas importantes
As senhas não são exportadas por motivos de segurança e devem ser adicionadas manualmente ao arquivo users.js.
As funções devem ser importadas antes dos usuários para garantir a atribuição adequada das funções.
A ferramenta gera JavaScript arquivos que podem ser executados diretamente com o shell mongo.
As funções personalizadas e seus privilégios são preservados durante a migração.
Essa abordagem permite revisar e modificar as permissões do usuário antes da importação.
Esse método fornece uma abordagem segura e flexível para migrar usuários e funções do MongoDB para o Amazon DocumentDB, permitindo redefinições de senha durante o processo de migração.
Migrações de dados
Tópicos
migração online
Esta seção fornece etapas detalhadas para realizar uma migração on-line do MongoDB para o Amazon DocumentDB AWS DMS usando para permitir o mínimo de tempo de inatividade e a replicação contínua. Para começar, você configura um cluster Amazon DocumentDB como destino e garante que sua instância do MongoDB esteja configurada corretamente como origem, normalmente exigindo o modo de conjunto de réplicas para a captura de dados de alteração. Em seguida, você cria uma instância de replicação do DMS e define os endpoints de origem e destino com os detalhes de conexão necessários. Depois de validar os endpoints, você configura e inicia uma tarefa de migração que pode incluir carga total de dados, replicação contínua ou ambas.
Configurar destino (Amazon DocumentDB)
nota
Se você já provisionou um cluster do Amazon DocumentDB para o qual migrar, você pode pular esta etapa.
Crie um grupo de parâmetros personalizado
Veja os AWS CLI procedimentos AWS Management Console ou emCriando grupos de parâmetros de cluster do Amazon DocumentDB.
Criar um cluster do Amazon DocumentDB
nota
Embora existam outros procedimentos para criar um cluster Amazon DocumentDB neste guia, as etapas desta seção se aplicam especificamente à tarefa de migrar grandes quantidades de dados para um novo cluster.
No painel de navegação, escolha Clusters.
dica
Caso não visualize o painel de navegação à esquerda da tela, selecione o ícone do menu (
) no canto superior esquerdo da página.
No console de gerenciamento do Amazon DocumentDB, em Clusters, escolha Criar.
Na página Criar cluster Amazon DocumentDB, na seção Tipo de cluster, escolha Cluster baseado em instância (essa é a opção padrão).
Na seção Configuração do cluster:
Em Identificador do cluster, insira um nome exclusivo, como
mydocdbcluster
. Observe que o console alterará todos os nomes de cluster para minúsculas, independentemente de como eles sejam inseridos.Para a versão Engine, escolha 5.0.0.
Na seção Configuração de armazenamento em cluster, deixe a configuração padrão do Amazon DocumentDB como está (essa é a opção padrão).
Na seção Instance configuration:
Para a classe de instância de banco de dados, escolha Classes otimizadas para memória (inclua classes r) (isso é padrão).
Em Classe de instância, escolha uma classe de instância com base na carga de trabalho. Por exemplo:
db.r6g.large: para cargas de trabalho menores
db.r6g.4xlarge: para cargas de trabalho maiores
Como prática recomendada, recomendamos escolher uma instância tão grande quanto possível para obter a melhor taxa de transferência de carga total e reduzir a escala após a conclusão da migração.
Em Número de instâncias, escolha 1 instância. Escolher uma instância ajuda a minimizar os custos. Recomendamos que você escale para três instâncias para obter alta disponibilidade após a conclusão da migração de carga total.
Na seção Autenticação, insira um nome de usuário para o usuário principal e escolha Autogerenciado. Insira uma senha e confirme-a.
Na seção Configurações de rede, escolha uma VPC e um grupo de sub-rede e, em seguida, configure o grupo de segurança da VPC. Certifique-se de que seu grupo de segurança do Amazon DocumentDB permita a conexão de entrada do grupo de segurança da instância do DMS atualizando as regras de entrada.
Na ncryption-at-rest seção E, habilite a criptografia (recomendado) e escolha ou insira uma chave KMS.
Na seção Backup, defina o período de retenção do backup (1 a 35 dias).
Revise sua configuração e escolha Criar cluster.
O tempo de implantação normalmente leva entre 10 e 15 minutos,
Configuração da fonte
O MongoDB e o Amazon DocumentDB podem servir como fontes de migração, dependendo do seu cenário:
MongoDB como fonte — Comum ao migrar de um MongoDB local ou autogerenciado para um Amazon DocumentDB ou outros serviços de banco de dados. AWS Requer execução no modo de conjunto de réplicas com um oplog de tamanho adequado (certifique-se de que seja dimensionado para conter todas as operações durante a carga total) para suportar a captura de dados de alterações durante a migração.
Amazon DocumentDB como fonte — Normalmente usado para replicação entre regiões, atualizações de versão ou migração para outros serviços de banco de dados, como o MongoDB Atlas. É necessário Ativar fluxos de alterações definir o
change_stream_log_retention_duration
parâmetro no grupo de parâmetros do cluster para capturar as alterações em andamento durante a migração. Certifique-se de que suachange_stream_log_retention_duration
configuração seja grande o suficiente para cobrir o tempo necessário para concluir o carregamento completo.
Antes de iniciar a migração, configure sua fonte para permitir o AWS DMS acesso.
Crie um usuário do MongoDB com as permissões adequadas:
db.createUser({ user: "
dmsUser
", pwd: "yourSecurePassword
", roles: [{ role: "readAnyDatabase", db: "admin" }] })
Configure a rede e a autenticação.
Ao configurar a conectividade de rede para a migração do MongoDB para o DMS:
EC2-fonte MongoDB hospedada
Modifique o grupo EC2 de segurança para permitir o tráfego de entrada do grupo de segurança da instância de replicação do DMS.
Adicione uma regra para a porta TCP 27017 (ou sua porta personalizada do MongoDB).
Use o ID do grupo de segurança da instância de replicação do DMS como fonte para um controle de acesso preciso.
Certifique-se de que a sub-rede da EC2 instância tenha uma rota para a sub-rede da instância de replicação do DMS.
Fonte local do MongoDB
Configure seu firewall para permitir conexões de entrada dos endereços IP públicos da instância de replicação do DMS.
Se estiver usando AWS Direct Connect uma VPN, garanta o roteamento adequado entre sua rede e a VPC que contém a instância do DMS.
Teste a conectividade usando comandos telnet ou nc da sub-rede DMS para seu servidor MongoDB.
Fonte MongoDB Atlas
Adicione os endereços IP de uma instância de replicação do DMS à lista de permissões de IP do MongoDB Atlas.
Configure o emparelhamento de VPC entre a VPC e o AWS MongoDB Atlas VPC se o Atlas estiver em execução. AWS
Configure AWS PrivateLink para conectividade privada (nível Enterprise), se estiver executando em outro provedor de nuvem.
Crie um usuário dedicado com read/write as permissões apropriadas.
Use uma string de conexão MongoDB Atlas com o modo SSL definido como “verify-full”.
Garanta um tamanho de log suficiente para a duração da migração.
Fonte do Amazon DocumentDB
Configure seu grupo de segurança de origem do Amazon DocumentDB para permitir tráfego de entrada do grupo de segurança da instância de replicação do DMS.
Criar instância de replicação do DMS
Recomendamos usar o DMS Buddy
Se você preferir configurar manualmente, siga estas etapas:
Abra o console do AWS DMS e escolha Criar instância de replicação.
Insira os detalhes da instância de replicação:
Nome da instância: escolha um nome exclusivo.
Classe de instância: selecione com base na carga de trabalho. Exemplo: dms.r5.large (cargas de trabalho pequenas), dms.r5.4xlarge (cargas de trabalho grandes).
Versão do motor: 3.5.4
Armazenamento alocado: o padrão é 100 GB (aumente se necessário). Isso é determinado pelo tamanho do documento updates/second e pela duração total do carregamento.
Implantação Multi-AZ: habilite a alta disponibilidade, se necessário.
Escolha a mesma VPC do Amazon DocumentDB.
Garanta que os grupos de segurança permitam tráfego de entrada da origem e do Amazon DocumentDB.
Clique em Criar instância de replicação e aguarde até que o status esteja disponível.
Crie endpoints do DMS
Crie um endpoint de origem
Para uma fonte do MongoDB
No console do DMS, no painel de navegação, escolha Migrar ou replicar e, em seguida, escolha Endpoints.
Escolha Criar endpoint.
Na página Criar endpoint, escolha Source endpoint.
Na seção Configuração do Endpoint:
Insira um identificador de endpoint exclusivo e significativo (por exemplo, “mongodb-source”).
Escolha o MongoDB como mecanismo de origem.
Em Acesso ao banco de dados de endpoint, escolha Fornecer informações de acesso manualmente.
Em Nome do servidor, insira seu
MongoDB server DNS name/IP address
.Em Porta, insira 27017 (porta padrão do MongoDB).
Para o modo de autenticação, escolha o modo apropriado para seu aplicativo (senha/SSL) (o padrão é gerenciador de segredos).
Se o modo de autenticação for Senha, forneça:
Nome de usuário e senha: insira as credenciais do MongoDB.
Nome do banco de dados: o nome do seu banco de dados de origem.
Mecanismo de autenticação: SCRAM-SHA-1 (padrão) ou mecanismo apropriado
Para o modo Metadados, deixe a configuração padrão do documento.
Atributos adicionais de conexão:
authsource=admin (se o banco de dados de autenticação for diferente)
ReplicaSet=< your-replica-set-name > (necessário para o CDC)
Para uma fonte do Amazon DocumentDB
No console do DMS, no painel de navegação, escolha Migrar ou replicar e, em seguida, escolha Endpoints.
Escolha Criar endpoint.
Na página Criar endpoint, escolha Source endpoint.
Na seção Configuração do Endpoint:
Insira um identificador de endpoint exclusivo e significativo (por exemplo, “docdb-source”).
Escolha Amazon DocumentDB como mecanismo de origem.
Em Acesso ao banco de dados de endpoint, escolha Fornecer informações de acesso manualmente.
Em Nome do servidor, insira seu
source Amazon DocumentDB cluster endpoint
.Em Porta, insira 27017 (porta padrão do Amazon DocumentDB).
Para o modo SSL, escolha verify-full (recomendado para Amazon DocumentDB).
Para Certificado CA, escolha o certificado CA raiz do Amazon RDS.
Para o modo de autenticação, escolha o modo apropriado para seu aplicativo (senha/SSL) (o padrão é gerenciador de segredos).
Se o modo de autenticação for Senha, forneça:
Nome de usuário e senha: insira as credenciais do Amazon DocumentDB.
Nome do banco de dados: o nome do seu banco de dados de origem.
Mecanismo de autenticação: SCRAM-SHA-1 (padrão) ou mecanismo apropriado
Para o modo Metadados, deixe a configuração padrão do documento.
Crie um endpoint de destino (Amazon DocumentDB)
No console do DMS, no painel de navegação, escolha Migrar ou replicar e, em seguida, escolha Endpoints.
Escolha Criar endpoint.
Na página Criar endpoint, escolha Target endpoint.
Na seção Configuração do Endpoint:
Insira um identificador de endpoint exclusivo e significativo (por exemplo, “docdb-target”).
Escolha Amazon DocumentDB como mecanismo de destino.
Para Acesso ao banco de dados de endpoint, escolha o método que você deseja usar para autenticar o acesso ao banco de dados:
Se você escolher AWS Secrets Manager, escolha o segredo em que você armazena suas credenciais do Amazon DocumentDB no campo Segredo.
Se você escolher Fornecer informações de acesso manualmente:
Em Nome do servidor, insira seu
target Amazon DocumentDB cluster endpoint
.Em Porta, insira 27017 (porta padrão do Amazon DocumentDB).
Para o modo SSL, escolha verify-full (recomendado para Amazon DocumentDB).
Para o certificado CA, baixe e especifique o pacote de certificados CA para verificação SSL.
Para o modo de autenticação, escolha o modo apropriado para seu aplicativo (senha/SSL) (o padrão é gerenciador de segredos).
Se o modo de autenticação for Senha, forneça:
Nome de usuário e senha: insira as credenciais do Amazon DocumentDB.
Nome do banco de dados: o nome do seu banco de dados de origem.
Mecanismo de autenticação: SCRAM-SHA-1 (padrão) ou mecanismo apropriado
Para o modo Metadados, deixe a configuração padrão do documento.
Criar tarefa de replicação
No console do DMS, no painel de navegação, escolha Migrar ou replicar e, em seguida, escolha Tarefas.
Escolha Criar tarefa.
Na página Criar tarefa, na seção Configuração da tarefa:
Insira um identificador de tarefa exclusivo e significativo (por exemplo, "mongodb-docdb-replication“).
Escolha o endpoint de origem que você criou anteriormente no menu suspenso Source Database endpoint.
Escolha o endpoint de destino que você criou anteriormente no menu suspenso Target Database endpoint.
Em Tipo de tarefa, escolha Migrar e replicar.
Na seção Configurações:
Para o modo de preparação da tabela Target, deixe a configuração padrão.
Em Interromper tarefa após a conclusão da carga total, deixe a configuração padrão.
Para configurações da coluna LOB, deixe a configuração do modo LOB limitado como está.
Para validação de dados, deixe a configuração padrão de Desativar.
Para registros de tarefas, marque a caixa Ativar CloudWatch registros.
Para aplicação otimizada em lote, deixe a configuração padrão desmarcada (desativada).
De volta ao topo da seção Configurações da tarefa, no Modo de edição, escolha o editor JSON e defina os seguintes atributos:
{ "TargetMetadata": { "ParallelApplyThreads": 5 }, "FullLoadSettings": { "MaxFullLoadSubTasks": 16 } }
Na seção Mapeamentos de tabela, adicione uma nova regra de seleção:
Em Nome do esquema, adicione o banco de dados de origem a ser migrado. Use% para especificar vários bancos de dados.
Em Nome da tabela Esquema, adicione a coleção de origem a ser migrada. Use% para especificar várias coleções.
Em Ação, deixe a configuração padrão de Incluir
Para coleções grandes (acima de 100 GB), adicione a regra de configurações de tabela:
Em Nome do esquema, adicione o banco de dados de origem a ser migrado. Use% para especificar vários bancos de dados.
Em Nome da tabela Esquema, adicione a coleção de origem a ser migrada. Use% para especificar várias coleções.
Em Número de partições, insira 16 (deve ser menor que
MaxFullLoadSubTask
).
Na seção Avaliação de pré-migração, verifique se ela está desativada.
Migração offline
Esta seção descreve o processo para realizar uma migração off-line de uma instância autogerenciada do MongoDB para o Amazon DocumentDB usando ferramentas nativas do MongoDB: e. mongodump
mongorestore
Pré-requisitos
Requisitos do MongoDB de origem
Acesso à instância de origem do MongoDB com as permissões apropriadas.
Instale
mongodump
. se necessário (ele é instalado durante a instalação do MongoDB).Verifique se há espaço em disco suficiente para os arquivos de despejo.
Alcance os requisitos do Amazon DocumentDB
Certifique-se de ter um cluster Amazon DocumentDB provisionado.
Certifique-se de que haja uma EC2 instância na mesma VPC do Amazon DocumentDB para facilitar a migração.
A conectividade de rede deve estar disponível entre seu ambiente de origem e o Amazon DocumentDB.
o mongorestore deve estar instalado na instância de migração EC2 .
As permissões apropriadas do IAM devem ser configuradas para acessar o Amazon DocumentDB,
Requisitos gerais
AWS CLI deve ser configurado (se estiver usando AWS serviços para armazenamento intermediário)
A largura de banda suficiente deve estar disponível para a transferência de dados.
A janela de tempo de inatividade deve ser aprovada (se estiver fazendo uma migração ao vivo, considere outras abordagens)
Prepare um cluster Amazon DocumentDB
Crie um cluster Amazon DocumentDB em: AWS
Aproprie o tamanho da instância com base na sua carga de trabalho.
Configure uma VPC, sub-redes e grupos de segurança.
Ative os parâmetros necessários por meio de grupos de parâmetros.
Execute o despejo de dados (mongodump)
Escolha uma das seguintes opções para criar um arquivo de despejo:
Opção 1: Básica
mongodump -- uri="mongodb://
<source_user>
:<source_password>
@<source_host>
:<source_port>
/<database>
" -- out=/path/to/dumpOpção 2: Melhor controle e desempenho
mongodump \ --uri="mongodb://
<source_user>
:<source_password>
@<sourcehost>
:<source_port>
" \ --out=/path/to/dump \ --gzip \# Compress output --numParallelCollections=4 \# Parallel collections dump --ssl \# If using SSL --authenticationDatabase=admin \ # If auth is required --readPreference=secondaryPreferred # If replica setOpção 3: bancos de dados grandes
mongodump \ --host=
<source_host>
\ --port=<source_port>
\ --username=<source_user>
\ --password=<source_password>
\ --db=<specific_db>
\# Only dump specific DB --collection=<specific_collection>
\ # Only dump specific collection --query='{ "date": { "$gt": "2020-01-01" } }' \ # Filter documents --archive=/path/to/archive.gz \# Single archive output --gzip \ --ssl
Transferir arquivos de despejo para o ambiente de restauração
Escolha um método apropriado com base no tamanho do seu despejo:
Pequeno — Copie diretamente para sua máquina de migração (EC2 instância que você criou anteriormente):
scp -r /path/to/dump user@migration-machine:/path/to/restore
Médio — Use o Amazon S3 como armazenamento intermediário:
aws s3 cp --recursive /path/to/dump s3://your-bucket/mongodb-dump/
Grande — Para bancos de dados muito grandes, considere AWS DataSync uma transferência física.
Restaurar dados no Amazon DocumentDB (mongorestore)
Antes de iniciar o processo de restauração, crie os índices no Amazon DocumentDB. Você pode utilizar a ferramenta Amazon DocumentDB Index
Escolha uma das seguintes opções para restaurar os dados:
Opção 1: restauração básica
mongorestore --uri="mongodb://
<docdb_user>
:<docdb_password>
@<docdb_endpoint>
:27017" /path/to/dump-
Opção 2: Melhor controle e desempenho
mongorestore \ --uri="mongodb://
<docdb_user>
:<docdb_password>
@<docdb_endpoint>
:27017" \ --ssl \ --sslCAFile=/path/to/rds-combined-ca-bundle.pem \ # DocumentDB CA cert --gzip \# If dumped with gzip --numParallelCollections=4 \# Parallel restoration --numInsertionWorkersPerCollection=4 \# Parallel documents insertion --noIndexRestore \# skip indexes as they are pre-created /path/to/dump Opção 3: Grandes bancos de dados ou controles específicos
mongorestore \ --host=
<docdb_endpoint>
\ --port=27017 \ --username=<docdb_user>
\ --password=<docdb_password>
\ --ssl \ --sslCAFile=/path/to/rds-combined-ca-bundle.pem \ --archive=/path/to/archive.gz \# If using archive format --gzip \ --nsInclude="db1.*" \# Only restore specific namespaces --nsExclude="db1.sensitive_data" \ # Exclude specific collections if needed --noIndexRestore \# skip indexes as they are pre-created --writeConcern="{w: 'majority'}" # Ensure write durability
Monitoramento
Esta seção fornece um processo de monitoramento detalhado para monitorar o progresso, o desempenho e a integridade de uma migração contínua de:
MongoDB para o Amazon DocumentDB
or
Amazon DocumentDB para Amazon DocumentDB
As etapas de monitoramento se aplicam independentemente do método de migração (AWS DMS mongodump/mongorestore ou outras ferramentas).
AWS DMS Monitoramento da migração (se aplicável)
Monitore as seguintes CloudWatch métricas principais:
Métricas da fase de carga total
FullLoadThroughputBandwidthTarget— Largura de banda da rede (KB/segundo) durante a carga total
FullLoadThroughputRowsTarget— Número de rows/documents carregados por segundo
FullLoadThroughputTablesTarget— Número de tables/collections concluídos por minuto
FullLoadProgressPercent— Porcentagem de carga total concluída
TablesLoaded— Número de carregados tables/collections com sucesso
TablesLoading— Número de tables/collections carregamentos atuais
TablesQueued— Número de tables/collections espera para ser carregado
TablesErrored— Número tables/collections que falhou ao carregar
Métricas de fase do CDC
CDCLatencyDestino — Tempo de espera (segundos) entre a alteração na origem e o aplicativo de destino
CDCLatencyFonte — Tempo de atraso (segundos) entre a alteração na fonte e a leitura pelo DMS
CDCThroughputRowsTarget— Linhas por segundo aplicadas durante a replicação contínua
CDCThroughputBandwidthTarget— Largura de banda da rede (KB/segundo) durante o CDC
CDCIncomingAlterações — Número de eventos de mudança recebidos da fonte
CDCChangesMemoryTarget— Memória usada (MB) para armazenar alterações no lado do alvo
Métricas de recursos
CPUUtilization— Uso da CPU da instância de replicação
FreeableMemory— Memória disponível na instância de replicação
FreeStorageSpace— Armazenamento disponível na instância de replicação
NetworkTransmitThroughput— Taxa de transferência de rede para a instância de replicação
NetworkReceiveThroughput— Taxa de transferência de rede para a instância de replicação
Métricas de erro
ErrorsCount— Número total de erros durante a migração
TableErrorsCount— Número de erros específicos da tabela
RecordsErrorsCount— Número de erros específicos do registro
Crie CloudWatch alarmes para métricas críticas, como CDCLatencyTarget
e CPUUtilization
para receber notificações se o desempenho da migração diminuir.
Registros do DMS (CloudWatch registros)
Acesse o console do Amazon CloudWatch Logs.
Encontre e escolha em seu grupo de registros. Será semelhante a “dms-tasks —”.
Procure fluxos de log que possam conter informações de erro:
Transmissões com “erro” no nome
Streams com nomes de tarefas IDs ou endpoints
Os fluxos de log mais recentes durante o período de sua migração
Dentro desses fluxos, pesquise por palavras-chave como:
“erro”
“exceção”
“falhou”
“aviso”
Status da tarefa do DMS (usando AWS CLI)
aws dms describe-replication-tasks --filters Name=replication-task id,Values=
<task_id>
--query "ReplicationTasks[0].Status"
Fluxo de status esperado:
criando → pronto → executando → parando → parado (ou falhando)
Monitore usando docdb-dashboarder
A docdb-dashboarder
ferramenta fornece monitoramento abrangente para clusters do Amazon DocumentDB por meio da geração automática de CloudWatch painéis com métricas essenciais de desempenho. Esses painéis exibem métricas críticas em nível de cluster (atraso de réplica, contadores de operação), métricas em nível de instância (CPU, memória, conexões) e métricas de armazenamento (uso de volume, armazenamento de backup). Para cenários de migração, a ferramenta oferece painéis especializados que monitoram o progresso da migração com métricas como atraso na replicação do CDC e taxas de operação. Os painéis podem monitorar vários clusters simultaneamente e incluir suporte para instâncias NVMe apoiadas. Ao visualizar essas métricas, as equipes podem identificar proativamente gargalos de desempenho, otimizar a alocação de recursos e garantir o bom funcionamento de suas implantações do Amazon DocumentDB. A ferramenta elimina a necessidade de criação manual de painéis e, ao mesmo tempo, fornece monitoramento consistente em todos os ambientes. Para obter instruções de configuração e opções avançadas de configuração, consulte o repositório Amazon DocumentDB Dashboarder Tool
Validação
Tópicos
Esta seção fornece um processo de validação detalhado para garantir a consistência, a integridade e a compatibilidade dos aplicativos dos dados após a migração de:
MongoDB para o Amazon DocumentDB
or
Amazon DocumentDB para Amazon DocumentDB
As etapas de validação se aplicam independentemente do método de migração (AWS DMS mongodump/mongorestore ou outras ferramentas).
Lista de verificação de validação
Verifique se o número de documentos em cada coleção corresponde entre a origem e o destino:
Fonte MongoDB
mongo --host
<source_host>
--port<port>
--username<user>
-- password<password>
--eval "db.<collection>
.count()"
Destino do Amazon DocumentDB
mongo --host
<target_host>
--port<port>
--username<user>
-- password<password>
--eval "db.<collection>
.count()"
Validação de esquema e índice
Verifique se:
todas as coleções existem no destino.
os índices são replicados corretamente.
as definições do esquema (se aplicadas) são idênticas.
Verifique as coleções (origem versus destino)
mongo --host
<source_host>
--eval "show collections" mongo --host<target_host>
--ssl --eval "show collections"
verifique os índices (origem versus destino)
mongo --host
<source_host>
--eval" db.<collection>
.getIndexes()" mongo --host<target_host>
--ssl –eval" db.<collection>
.getIndexes()"
Compare a lista de coleções para garantir que não haja coleções ausentes ou extras.
Verifique os índices verificando os nomes dos índices, as definições de chave, as restrições exclusivas e os índices TTL (se houver).
Verifique as regras de validação do esquema (se estiver usando a validação do esquema no MongoDB)
mongo --host
<source_host>
--eval" db.getCollectionInfos({name: '<collection>
'}) [0].options.validator" mongo --host<target_host>
--ssl –eval" db.getCollectionInfos({name: '<collection>
'})[0].options.validator"
Amostragem de dados e validação em nível de campo
Você pode amostrar documentos aleatoriamente e comparar campos entre origem e destino.
Amostragem manual
Busque cinco documentos aleatórios (fonte):
mongo --host
<source_host>
--eval "db.<collection>
.aggregate([{ \$sample: { size: 5 } }])"
Busque o mesmo documento IDs (destino):
mongo --host
<target_host>
--ssl –eval "db.<collection>
.find({ _id: { \$in: [<list_of_ids>
] } })"
Amostragem automática
import pymongo # Connect to source and target source_client = pymongo.MongoClient("
<source_uri>
") target_client = pymongo.MongoClient("<target_uri>
", ssl=True) source_db = source_client["<db_name>
"] target_db = target_client["<db_name>
"] # Compare 100 random documents for doc in source_db.<collection>
.aggregate([{ "$sample": { "size": 100 } }]): target_doc = target_db.<collection>
.find_one({ "_id": doc["_id"] }) if target_doc != doc: print(f"❌ Mismatch in _id: {doc['_id']}") else: print(f"✅ Match: {doc['_id']}")
Validação usando a DataDiffer ferramenta
A DataDiffer ferramenta
Pré-requisitos
Os seguintes pré-requisitos devem ser atendidos antes da instalação da ferramenta: DataDiffer
Python 3.7 e posterior
PyMongo biblioteca
Conectividade de rede com os clusters de origem do MongoDB e do Amazon DocumentDB de destino
Configuração e instalação
Clone o repositório e navegue até o diretório DataDiffer
git clone https://github.com/awslabs/amazon-documentdb-tools.git cd amazon-documentdb-tools/migration/data-differ
Instale as dependências necessárias
pip install -r requirements.txt
Executando validação de dados
Crie um arquivo de configuração (por exemplo, config.json) com detalhes da conexão
{ "source": { "uri": "mongodb://username:password@source-mongodb- host:27017/?replicaSet=rs0", "db": "your_database", "collection": "your_collection" }, "target": { "uri": "mongodb://username:password@target-docdb- cluster.region.docdb.amazonaws.com:27017/?tls=true&tlsCAFile=global- bundle.pem&replicaSet=rs0", "db": "your_database", "collection": "your_collection" }, "options": { "batch_size": 1000, "threads": 4, "sample_size": 0, "verbose": true } }
Execute a DataDiffer ferramenta
python differ.py --config config.json
Para coleções grandes, use a amostragem para validar um subconjunto de dados
python differ.py --config config.json --sample-size 10000
Para validar várias coleções, crie arquivos de configuração separados ou use o modo em lote
python differ.py --batch-config batch_config.json
Como interpretar os resultados do
A ferramenta produzirá:
Total de documentos na origem e no destino
Número de documentos correspondentes
Número de documentos faltantes
Número de documentos com diferenças
Relatório detalhado das diferenças (se houver)
Práticas recomendadas
Veja a seguir as melhores práticas ao usar a DataDiffer ferramenta:
Execute em fases — primeiro valide a contagem de documentos, depois experimente os principais documentos e, por fim, faça uma comparação completa, se necessário.
Verifique as diferenças de esquema — o Amazon DocumentDB tem algumas limitações em comparação com o MongoDB. A ferramenta destacará tipos ou estruturas de dados incompatíveis.
Valide durante períodos de silêncio — execute a validação quando as operações de gravação forem mínimas para garantir a consistência.
Monitore o uso de recursos — O processo de comparação pode consumir muitos recursos. Ajuste o tamanho do lote e a contagem de linhas adequadamente.
Validar índices — Após a validação dos dados, certifique-se de que todos os índices necessários tenham sido criados no cluster de destino do Amazon DocumentDB.
Resultados da validação de documentos — mantenha um registro dos resultados da validação de cada coleção como parte da documentação de migração.