Componentes do AWS DMS
Esta seção descreve os componentes internos do AWS DMS e como eles funcionam em conjunto para executar a migração de dados. Entender os componentes estruturais do AWS DMS pode ajudar você a migrar dados de forma mais eficaz e fornecer uma melhor compreensão ao solucionar ou investigar problemas.
Uma migração do AWS DMS consiste em cinco componentes: descoberta de bancos de dados a serem migrados, conversão automática de esquemas, uma instância de replicação, endpoints de origem e de destino e uma tarefa de replicação. Crie uma migração do AWS DMS ao criar a instância de replicação, os endpoints e as tarefas necessários em uma Região da AWS.
- Descoberta de banco de dados
-
O DMS Fleet Advisor coleta dados de vários ambientes de banco de dados para fornecer insight da infraestrutura de dados. O DMS Fleet Advisor coleta dados do banco de dados on-premises e de servidores analíticos de um ou mais locais centrais sem a necessidade de instalá-los em todos os computadores. Atualmente, o DMS Fleet Advisor é compatível com o Microsoft SQL Server, o MySQL, o Oracle e os servidores de banco de dados PostgreSQL.
Com base nos dados descobertos na rede, o DMS Fleet Advisor cria um inventário que é possível analisar para determinar quais servidores e objetos do banco de dados devem ser monitorados. À medida que os detalhes sobre esses servidores, bancos de dados e esquemas são coletados, é possível analisar a viabilidade das migrações de banco de dados pretendidas.
- Migração de código e schema
-
A DMS Schema Conversion no AWS DMS torna as migrações de banco de dados entre diferentes tipos de bancos de dados mais previsíveis. É possível utilizar a DMS Schema Conversion para avaliar a complexidade da migração para o provedor de dados de origem e usá-la para converter esquemas de banco de dados e objetos de código. É possível aplicar o código convertido ao banco de dados de destino.
Em alto nível, a DMS Schema Conversion opera com os três componentes a seguir: perfis de instância, provedores de dados e projetos de migração. Um perfil de instância especifica as configurações da rede e da segurança. Um provedor de dados armazena as credenciais de conexão do banco de dados. Um projeto de migração contém provedores de dados, um perfil de instância e regras de migração. O AWS DMS utiliza provedores de dados e um perfil de instância para criar um processo que converte esquemas de bancos de dados e objetos de código.
- Instância da replicação
-
Em alto nível, uma instância de replicação do AWS DMS é simplesmente uma instância gerenciada do Amazon Elastic Compute Cloud (Amazon EC2) que hospeda uma ou mais tarefas de replicação.
A figura a seguir mostra um exemplo de instância de replicação que executa várias tarefas de replicação associadas.
Uma única instância de replicação pode hospedar uma ou mais tarefas de replicação, dependendo das características da migração e da capacidade do servidor de replicação. O AWS DMS fornece uma variedade de instâncias de replicação para que você possa escolher a configuração ideal para seu caso de uso. Para obter mais informações sobre as diversas classes de instâncias de replicação, consulte Selecionar a instância de replicação correta do AWS DMS para a migração.
O AWS DMS cria a instância de replicação em uma instância do Amazon EC2. Algumas das classes de instância menores são suficientes para testar o serviço ou para migrações pequenas. Se a migração envolver um grande número de tabelas ou se você pretender executar várias tarefas de replicação simultâneas, considere utilizar uma das instâncias maiores. É recomendável essa abordagem porque o AWS DMS pode consumir uma quantidade significativa de memória e de CPU.
Dependendo da classe da instância do Amazon EC2 selecionada, a instância de replicação vem com 50 GB ou 100 GB de armazenamento de dados. Essa quantidade normalmente é suficiente para a maioria dos clientes. No entanto, se a migração envolve grandes transações ou um grande volume de alterações de dados, talvez deseje aumentar a alocação de armazenamento de base. A captura de dados de alteração (CDC) pode fazer com que os dados sejam gravados em disco, de acordo com a velocidade com que o destino consegue gravar as alterações. Como os arquivos de log também são gravados em disco, aumentar o nível de gravidade do registro em log também resultará em um maior consumo de armazenamento.
O AWS DMS pode fornecer alta disponibilidade e suporte a failover usando a implantação Multi-AZ. Em uma implantação Multi-AZ, o AWS DMS provisiona e mantém automaticamente uma réplica em espera da instância de replicação em outra Zona de disponibilidade. A instância de replicação primária é replicada em sincronia para a réplica em espera. Se a instância de replicação primária falhar ou parar de responder, a instância em espera retoma qualquer tarefa em execução com o mínimo de interrupção. Como a primária está replicando constantemente seu estado para a de espera, a implantação multi-AZ implica alguma sobrecarga no desempenho.
Para obter informações mais detalhadas sobre a instância de replicação do AWS DMS, consulte Trabalhar com instância de replicação do AWS DMS.
Em vez de criar e gerenciar uma instância de replicação, é possível deixar o AWS DMS provisionar a replicação automaticamente utilizando o AWS DMS com Tecnologia Sem Servidor. Para ter mais informações, consulte Como trabalhar com o AWS DMS com Tecnologia Sem Servidor.
- Endpoint
-
O AWS DMS utiliza um endpoint para acessar o armazenamento de dados de origem ou de destino. As informações de conexão específicas são diferentes, dependendo do seu armazenamento de dados, mas no geral deve-se fornecer as seguintes informações ao criar um endpoint.
-
Tipo de endpoint: origem ou destino.
-
Tipo de mecanismo: tipo de mecanismo do banco de dados, como Oracle ou PostgreSQL.
-
Nome do servidor: nome do servidor ou endereço IP que o AWS DMS pode atingir.
-
Porta: número da porta usada para conexões de servidor do banco de dados.
-
Criptografia: modo Secure Socket Layer (SSL), se o SSL for usado para criptografar a conexão.
-
Credenciais: nome de usuário e senha de uma conta com os direitos de acesso necessários.
Ao criar um endpoint utilizando o console do AWS DMS, o console exige um teste da conexão do endpoint. O teste deve ser bem-sucedido para que seja possível utilizar o endpoint em uma tarefa do AWS DMS. Como as informações de conexão, os critérios de teste específicos são diferentes para diferentes tipos de mecanismos. No geral, o AWS DMS verifica se o banco de dados existe no determinado nome de servidor e porta, e se as credenciais fornecidas podem ser usadas para se conectar ao banco de dados com os privilégios necessários para executar uma migração. Se o teste de conexão for bem-sucedido, o AWS DMS baixará e armazenará as informações do esquema para utilização posterior durante a configuração da tarefa. As informações de esquema podem incluir definições de tabela, definições de chave primária e definições de chave exclusiva, por exemplo.
Mais de uma tarefa de replicação pode utilizar um único endpoint. Por exemplo, é possível ter duas aplicações logicamente distintas hospedadas no mesmo banco de dados de origem que deseja migrar separadamente. Nesse caso, duas tarefas de replicação são criadas, uma para cada conjunto de tabelas de aplicações. É possível utilizar o mesmo endpoint do AWS DMS nas duas tarefas.
É possível personalizar o comportamento de um endpoint utilizando as configurações do endpoint. As Configurações do endpoint podem controlar vários comportamentos, como detalhes de registro em log, tamanho do arquivo e outros parâmetros. Cada tipo de mecanismo de datastore tem diferentes configurações de endpoint disponíveis. É possível encontrar as configurações específicas de endpoints para cada datastore na seção de origem e de destino do datastore. Para obter uma lista de datastores de origem e de destino compatíveis, consulte Origens do AWS DMS e Destinos do AWS DMS.
Para obter mais informações detalhadas sobre endpoints do AWS DMS, consulte Como trabalhar com endpoints do AWS DMS.
-
- Tarefas de replicação
-
Utilize uma tarefa de replicação do AWS DMS para mover um conjunto de dados do endpoint de origem para o endpoint de destino. A criação de uma tarefa de replicação é a última etapa necessária antes de iniciar uma migração.
Ao criar uma tarefa de replicação, especifique as seguintes configurações de tarefa:
-
Instância de replicação: a instância que hospeda e executa a tarefa
-
Endpoint de origem
-
Endpoint de destino
-
Opções de tipo de migração, conforme listadas a seguir. Para obter uma explicação completa sobre as opções do tipo de migração, consulte Criar uma tarefa.
-
Carga máxima (migração de dados existentes): se houver condições para uma interrupção longa o suficiente para copiar os dados existentes, esta será uma boa opção. Essa opção migra somente os dados do banco de dados de origem para o banco de dados de destino, criando tabelas quando necessário.
-
Carga máxima + CDC (alterações da migração dos dados existentes e da replicação contínua): esta opção executa uma carga máxima de dados enquanto captura alterações na origem. Após a carga máxima ser concluída, as alterações capturadas são aplicadas ao destino. Por fim, a aplicação de alterações alcança um estado estável. Nesse momento, é possível encerrar as aplicações, permitir que as alterações restantes sejam transmitidas até o destino e reiniciar as aplicações apontando para o destino.
-
Somente CDC (somente replicação de alterações de dados): em algumas situações, copiar os dados existentes utilizando um método diferente do AWS DMS pode ser mais eficaz. Por exemplo, em uma migração homogênea, utilizar ferramentas de exportação/importação nativas pode ser mais eficaz para o carregamento de dados em massa. Nessa situação, é possível utilizar o AWS DMS para replicar alterações que começam ao iniciar o carregamento em massa para sincronizar seus bancos de dados de origem e de destino e mantê-los assim.
-
-
Opções de modo de preparação de tabela de destino, conforme listadas a seguir. Para obter uma explicação completa sobre os modos da tabela de destino, consulte Criar uma tarefa.
-
Não executar nenhuma ação: o AWS DMS pressupõe que as tabelas de destino estão pré-criadas no destino.
-
Descartar tabelas no destino: o AWS DMS descarta e recria as tabelas de destino.
-
Truncar: se você criou tabelas no destino, o AWS as truncará antes que a migração seja iniciada. Se não existirem tabelas e você selecionar essa opção, o AWS DMS criará as tabelas ausentes.
-
-
Opções do modo LOB, conforme listadas a seguir. Para obter uma explicação completa sobre os modos de LOB, consulte Definir o suporte a LOB para bancos de dados de origem em uma tarefa do AWS DMS.
-
Não incluir colunas LOB: as colunas LOB são excluídas da migração.
-
Modo LOB completo: migra LOBs completos independentemente do tamanho. O AWS DMS migra LOBs fracionados em blocos controlados pelo parâmetro Tamanho máximo de LOB. Esse modo é mais lento que o modo LOB limitado.
-
Modo LOB limitado: trunca LOBs até o valor especificado pelo parâmetro Tamanho máximo de LOB. Esse modo é mais rápido que o modo LOB completo.
-
-
Mapeamentos de tabelas: indica as tabelas a serem migradas e como elas são migradas. Para ter mais informações, consulte Utilizar o mapeamento de tabela para especificar as configurações da tarefa.
-
Transformações de dados, conforme listadas a seguir. Para obter mais informações sobre transformações de dados, consulte Especificar a seleção de tabelas e as regras de transformação utilizando JSON.
-
Alteração de nomes de esquema, tabela e coluna.
-
Alteração de nomes de espaços de tabela (para endpoints de destino do Oracle).
-
Definição de chaves primárias e índices exclusivos no destino.
-
-
Validação de dados
-
Registro em log do Amazon CloudWatch
Utilize a tarefa para migrar dados do endpoint de origem para o endpoint de destino, e o processamento da tarefa acontece na instância de replicação. Especifique quais tabelas e esquemas serão migrados e qualquer processamento especial, como requisitos de registro em log, dados da tabela de controle e gerenciamento de erros.
Conceitualmente, uma tarefa de replicação do AWS DMS executa dois perfis distintos, como mostrado no diagrama a seguir:
O processo de carga máxima apresenta compreensão direta. Os dados são extraídos da origem em um modo de extração em lote e carregados diretamente no destino. É possível especificar o número de tabelas a serem extraídas e carregadas em paralelo no console do AWS DMS em Configurações avançadas.
Para obter mais informações sobre as tarefas do AWS DMS consulte Trabalhar com tarefas do AWS DMS.
-
- Replicação contínua ou captura de dados de alteração (CDC)
-
Também é possível utilizar uma tarefa do AWS DMS para capturar alterações contínuas no armazenamento de dados de origem enquanto migra os dados para um destino. O processo de captura de alterações que o AWS DMS utiliza ao replicar alterações contínuas de um endpoint de origem coleta alterações nos logs de banco de dados utilizando a API nativa do mecanismo do banco de dados.
No processo de CDC, a tarefa de replicação é projetada para transmitir as alterações da origem para o destino, utilizando buffers na memória para manter os dados em trânsito. Se os buffers na memória se esgotarem por qualquer motivo, a tarefa de replicação repassará alterações pendentes para o Cache de alteração no disco. Isso pode ocorrer, por exemplo, se o AWS DMS estiver capturando alterações da origem mais rápido que a aplicação delas no destino. Nesse caso, você verá a latência de destino da tarefa exceder a latência de origem.
Verifique isso ao navegar até a tarefa no console do AWS DMS e abrir a guia Monitoramento de tarefa. Os grafos CDCLatencyTarget e CDCLatencySource são mostrados na parte inferior da página. Se você tiver uma tarefa que mostra a latência de destino, então provavelmente há algum ajuste no endpoint de destino necessário para aumentar a taxa de aplicação.
A tarefa de replicação também utiliza armazenamento para logs de tarefas, conforme discutido anteriormente. O espaço em disco que vem pré-configurado com a instância de replicação normalmente é suficiente para o registro em log e alterações repassadas. Se precisar de espaço adicional em disco, por exemplo, ao utilizar a depuração detalhada para investigar um problema de migração, é possível modificar a instância de replicação para alocar mais espaço.