Partilhar via


Migrar das caches de injeção da VNet para as caches do Private Link

Este artigo descreve várias abordagens para migrar instâncias de cache injetadas do Cache do Azure para Rede Virtual Redis (VNet) para instâncias de cache do Cache do Azure para Link Privado Redis.

O Azure Private Link simplifica a arquitetura de rede e protege a conexão entre pontos de extremidade no Azure. Pode ligar-se a uma instância da Cache do Azure a partir da rede virtual através de um ponto final privado, que é atribuído a um endereço IP privado numa sub-rede na rede virtual. As vantagens de usar o Azure Private Link for Azure Cache for Redis incluem:

  • Flexibilidade de camadas – o Azure Private Link é suportado em todas as nossas camadas; Flash Básico, Standard, Premium, Enterprise e Enterprise. Em comparação com a injeção de rede virtual, que só é oferecida em nosso nível premium.

  • Gerenciamento simplificado de regras do NSG (Grupo de Segurança de Rede) - as regras do NSG não precisam ser configuradas para aderir aos requisitos do Cache do Azure para Redis.

  • Suporte à Política do Azure – Certifique-se de que todos os caches na sua organização são criados com o Private Link e audite os caches existentes da sua organização para verificar se todos utilizam o Private Link.

Opções de migração

Você pode alternar da injeção de VNet para o Private Link usando algumas maneiras diferentes. Dependendo de onde o cache está e como seu aplicativo interage com ele, um método será mais útil do que os outros. Algumas das estratégias de migração frequentemente utilizadas são detalhadas abaixo.

Se você estiver usando qualquer combinação de replicação geográfica, clustering ou VNet ARM:

Opção Vantagens Desvantagens
Dados de gravação dupla em dois caches Sem perda de dados ou tempo de inatividade. Operações ininterruptas do cache existente. Teste mais fácil do novo cache. Precisa de dois caches por um longo período de tempo.
Criar um novo cache Mais simples de implementar. Necessidade de preencher novamente os dados para o novo cache, que pode não funcionar com muitos aplicativos.
Exportar e importar dados via arquivo RDB A migração de dados é necessária. Alguns dados podem ser perdidos se forem gravados no cache existente após a geração do arquivo RDB.
Migrar dados programaticamente Controle total sobre como os dados são movidos. Requer código personalizado.

Gravar em dois caches Redis simultaneamente durante o período de migração

Em vez de mover dados diretamente entre caches, você pode usar seu aplicativo para gravar dados em um cache existente e em um novo que você está configurando. O aplicativo ainda lerá dados do cache existente inicialmente. Quando o novo cache tiver os dados necessários, você alterne o aplicativo para esse cache e aposente o antigo. Digamos, por exemplo, que você use o Redis como um armazenamento de sessão e as sessões de aplicativo sejam válidas por sete dias. Depois de gravar nos dois caches por uma semana, você terá certeza de que o novo cache contém todas as informações de sessão não expiradas. Você pode confiar nele com segurança a partir desse ponto sem se preocupar com a perda de dados.

As etapas gerais para implementar esta opção são:

  1. Crie uma nova instância do Cache do Azure para Redis com pontos de extremidade privados do mesmo tamanho (ou maior que) o cache existente.

  2. Modifique o código do aplicativo para gravar nas instâncias nova e original.

  3. Continue lendo os dados da instância original até que a nova instância seja suficientemente preenchida com dados.

  4. Atualize o código do aplicativo para leitura e gravação somente a partir da nova instância.

  5. Exclua a instância original.

Criar um novo Cache do Azure para Redis

Esta abordagem tecnicamente não é uma migração. Se a perda de dados não for uma preocupação, a maneira mais fácil de mover para o Cache Redis do Azure é criar uma instância de cache e conectar seu aplicativo a ela. Por exemplo, se você usar o Redis como um cache look-aside de registros de banco de dados, poderá facilmente reconstruir o cache do zero.

As etapas gerais para implementar esta opção são:

  1. Crie uma nova instância do Cache do Azure para Redis com pontos de extremidade privados.

  2. Atualize seu aplicativo para usar a nova instância.

  3. Exclua a instância antiga do Redis.

Exportar dados para um arquivo RDB e importá-los para o Cache Redis do Azure (somente camada Premium)

O Redis de código aberto define um mecanismo padrão para tirar um instantâneo do conjunto de dados na memória de um cache e salvá-lo em um arquivo. Esse arquivo, chamado RDB, pode ser lido por outro cache Redis. A camada premium do Cache do Azure para Redis dá suporte à importação de dados para uma instância de cache por meio de arquivos RDB. Você pode usar um arquivo RDB para transferir dados de um cache existente para o Cache do Azure para Redis.

Importante

O formato de arquivo RDB pode mudar entre versões do Redis e pode não manter a compatibilidade com versões anteriores. A versão Redis do cache do qual você está exportando deve ser igual ou menor do que a versão fornecida pelo Cache do Azure para Redis.

As etapas gerais para implementar esta opção são:

  1. Crie uma nova instância do Cache do Azure para Redis com pontos de extremidade privados na camada premium que seja do mesmo tamanho (ou maior que) o cache existente.

  2. Salve um instantâneo do cache Redis existente. Você pode configurar o Redis para salvar instantâneos periodicamente ou executar o processo manualmente usando os comandos SAVE ou BGSAVE . O arquivo RDB é chamado "dump.rdb" por padrão e estará localizado no caminho especificado no arquivo de configuração redis.conf .

    Nota

    Se você estiver migrando dados no Cache do Azure para Redis, consulte estas instruções sobre como exportar um arquivo RDB ou usar o cmdlet Exportar do PowerShell.

  3. Copie o arquivo RDB para uma conta de armazenamento do Azure na região onde o novo cache está localizado. Você pode usar AzCopy para esta tarefa.

  4. Importe o arquivo RDB para o novo cache usando estas instruções de importação ou o cmdlet de importação do PowerShell.

  5. Atualize seu aplicativo para usar a nova instância de cache.

Migrar programaticamente

Crie um processo de migração personalizado lendo programaticamente dados de um cache existente e gravando-os no Cache do Azure para Redis. Essa ferramenta de código aberto pode ser usada para copiar dados de uma instância do Cache Redis do Azure para outra. Essa ferramenta é útil para mover dados entre instâncias de cache em diferentes regiões do Cache do Azure. Uma versão compilada também está disponível. Você também pode achar o código-fonte um guia útil para escrever sua própria ferramenta de migração.

Nota

Esta ferramenta não é oficialmente suportada pela Microsoft.

As etapas gerais para implementar esta opção são:

  1. Crie uma VM na região onde o cache existente está localizado. Se o conjunto de dados for grande, escolha uma VM relativamente poderosa para reduzir o tempo de cópia.

  2. Criar uma nova instância do Cache do Azure para Redis com pontos de extremidade privados

  3. Libere os dados do novo cache para garantir que ele esteja vazio. Esta etapa é necessária porque a própria ferramenta de cópia não substitui nenhuma chave existente no cache de destino.

    Importante

    Certifique-se de NÃO liberar do cache de origem.

  4. Use um aplicativo como a ferramenta de código aberto acima para automatizar a cópia de dados do cache de origem para o destino. Lembre-se de que o processo de cópia pode demorar um pouco para ser concluído, dependendo do tamanho do seu conjunto de dados.

Próximos passos