Migrar um snapshot de uma instância de banco de dados do RDS for PostgreSQL para um cluster de bancos de dados Aurora PostgreSQL
Para criar um cluster de bancos de dados Aurora PostgreSQL, você pode migrar um snapshot de banco de dados de uma instância de banco de dados do RDS for PostgreSQL. O novo cluster de bancos de dados Aurora PostgreSQL é preenchido com os dados da instância de banco de dados do RDS for PostgreSQL original . Para obter informações sobre a criação de um snapshot de banco de dados, consulte Criar um snapshot de banco de dados.
Em alguns casos, o snapshot do banco de dados pode não estar na Região da AWS em que deseja localizar seus dados. Se esse for o caso, use o console do Amazon RDS para copiar o snapshot do banco de dados para essa Região da AWS. Para obter informações sobre a cópia de um snapshot de banco de dados, consulte Cópia de um snapshot de banco de dados.
Você pode migrar snapshots do RDS for PostgreSQL compatíveis com as versões do Aurora PostgreSQL disponíveis na Região da AWS determinada. Por exemplo, você pode migrar um snapshot de uma instância de banco de dados do RDS for PostgreSQL 11.1 para o Aurora PostgreSQL versão 11.4, 11.7, 11.8 ou 11.9 na região Oeste dos EUA (Norte da Califórnia). Você pode migrar um snapshot do RDS for PostgreSQL 10.11 para o Aurora PostgreSQL 10.11, 10.12, 10.13 e 10.14. Em outras palavras, o snapshot do RDS for PostgreSQL deve usar a mesma ou uma versão menor que o Aurora PostgreSQL.
Também é possível determinar que o seu novo cluster de bancos de dados Aurora PostgreSQL seja criptografado em repouso usando uma AWS KMS key. Essa opção está disponível somente para snapshot de banco de dadoss não criptografados.
Para migrar um snapshot do banco de dados do RDS for PostgreSQL para um cluster de bancos de dados Aurora PostgreSQL, você pode usar o AWS Management Console, a AWS CLI ou a API do RDS. Ao usar o AWS Management Console, o console realiza as ações necessárias para criar o cluster de banco de dados e a instância primária.
Para migrar um snapshot de banco de dados PostgreSQL usando o console do RDS
Faça login no AWS Management Console e abra o console do Amazon RDS em https://console.aws.amazon.com/rds/
. -
Escolha Snapshots.
-
Na página Snapshots, escolha o snapshot do RDS for PostgreSQL que você deseja migrar para um cluster de bancos de dados Aurora PostgreSQL.
-
Escolha Actions (Ações) e escolha Migrate snapshot (Migrar snapshot).
-
Defina os seguintes valores na página Migrate Database (Migrar banco de dados):
-
Versão do mecanismo de banco de dados: escolha uma versão do mecanismo de banco de dados que você deseja usar para a nova instância migrada.
-
Identificador da instância do banco de dados: insira um nome para o cluster de banco de dados exclusivo à sua conta na Região da AWS escolhida. Esse identificador é usado em endereços de endpoint para as instâncias no cluster de banco de dados. É possível optar por adicionar inteligência ao nome, como incluir a Região da AWS e o mecanismo de banco de dados escolhidos, por exemplo,
aurora-cluster1
.O DB instance identifier tem as seguintes restrições:
-
Deve conter de 1 a 63 caracteres alfanuméricos ou hifens.
-
O primeiro caractere deve ser uma letra.
-
Não pode terminar com um hífen ou conter dois hífens consecutivos.
-
Deve ser exclusivo para todas as instâncias de banco de dados por conta da AWS, por Região da AWS.
-
-
DB Instance Class (Classe de instância de banco de dados): escolha uma categoria de instância de banco de dados que tenha o armazenamento e a capacidade necessários para seu banco de dados, por exemplo
db.r6g.large
. Os volumes de cluster do Aurora crescem automaticamente à medida em que aumenta a quantidade de dados em seu banco de dados. Assim, só será necessário escolher uma classe de instância de banco de dados que atenda aos requisitos atuais de armazenamento. Para ter mais informações, consulte Visão geral do armazenamento do Amazon Aurora. -
Virtual private cloud (VPC) (Nuvem privada virtual):: se você tiver uma VPC existente, poderá usá-la com o seu cluster de bancos de dados Aurora PostgreSQL escolhendo o identificador de VPC, por exemplo
vpc-a464d1c1
. Para obter informações sobre a criação de uma VPC, consulte Tutorial: Criar uma VPC para usar com um cluster de banco de dados (somente IPv4).Do contrário, é possível optar por fazer com que Amazon RDS crie uma VPC para você, escolhendo Create new VPC (Criar nova VPC).
-
DB subnet group (Grupo de sub-redes do banco de dados): se você tiver um grupo de sub-redes existente, poderá usá-lo com o cluster de bancos de dados do Aurora PostgreSQL escolhendo o identificador de grupo de sub-redes, por exemplo,
gs-subnet-group1
. -
Public access (Acesso público): escolha No (Não) para especificar que as instâncias no seu cluster de banco de dados só podem ser acessadas por recursos dentro da sua VPC. Escolha Yes (Sim) para especificar que as instâncias no seu cluster de banco de dados podem ser acessadas por recursos na rede pública.
nota
O cluster de banco de dados de produção talvez não precise estar em uma sub-rede pública, porque apenas os seus servidores de aplicativo precisarão acessá-lo. Se o cluster de banco de dados não precisa estar em uma sub-rede pública, defina Public access (Acesso público) para No (Não).
-
VPC security group (Grupo de segurança da VPC): escolha um grupo de segurança da VPC para permitir o acesso ao seu banco de dados.
-
Availability Zone (Zona de disponibilidade): escolha a Zona de disponibilidade para hospedar a instância primária do seu cluster de bancos de dados Aurora PostgreSQL. Para que o Amazon RDS escolha uma zona de disponibilidade para você, escolha No preference (Sem preferência).
-
Database port (Porta de banco de dados): insira a porta padrão a ser usada ao conectar-se a instâncias no cluster de bancos de dados Aurora PostgreSQL. O padrão é
5432
.nota
Pode ser que haja um firewall corporativo que impeça o acesso a portas padrão, como a porta padrão do PostgreSQL, 5432. Nesse caso, forneça um valor de porta permitido pelo seu firewall corporativo. Lembre-se desse valor de porta mais tarde ao se conectar ao cluster de banco de dados Aurora PostgreSQL.
-
Encryption (Criptografia): selecione Enable Encryption (Habilitar criptografia) para que o novo cluster de bancos de dados Aurora PostgreSQL seja criptografado em repouso. Escolha também uma chave do KMS como um valor AWS KMS key.
-
Auto minor version upgrade (Atualização da versão secundária automática): escolha Enable auto minor version upgrade (Ativar atualização da versão secundária automática) para permitir que o cluster de bancos de dados Aurora PostgreSQL receba atualizações secundárias de versão de mecanismos de banco de dados PostgreSQL automaticamente quando forem disponibilizadas.
A opção Auto minor version upgrade (Atualização da versão secundária automática) aplica-se apenas a atualizações de versões secundárias de mecanismos PostgreSQL do seu cluster de bancos de dados Aurora PostgreSQL. Ela não se aplica a patches regulares aplicados para manter a estabilidade do sistema.
-
-
Selecione Migrate para migrar o snapshot de banco de dados.
-
Escolha Database (Bancos de dados) para ver o novo cluster de banco de dados. Escolha o novo cluster de banco de dados para monitorar o andamento da migração. Quando a migração for concluída, o status do cluster será Available (Disponível). Na guia Connectivity & security (Conectividade e segurança) , você pode encontrar o endpoint do cluster a ser usado para se conectar à instância de gravador primário do cluster de banco de dados. Para ter mais informações sobre a conexão com um cluster de bancos de dados Aurora PostgreSQL, consulte Como conectar-se a um cluster de bancos de dados Amazon Aurora.
Usar a AWS CLI para migrar um snapshot do banco de dados do RDS for PostgreSQL para um Aurora PostgreSQL envolve dois comandos da AWS CLI separados. Primeiro, você usa o comando da AWS CLI restore-db-cluster-from-snapshot
de criar um novo cluster de bancos de dados Aurora PostgreSQL. Em seguida, você usa o comando create-db-instance
para criar a instância de banco de dados principal no novo cluster para concluir a migração. O procedimento a seguir cria um cluster de banco de dados Aurora PostgreSQL com instância de banco de dados primária que tem a mesma configuração que a instância de banco de dados usada para criar o snapshot.
Para migrar um snapshot do banco de dados do RDS for PostgreSQL para um cluster de bancos de dados Aurora PostgreSQL
Use o comando describe-db-snapshots para obter informações sobre o snapshot do banco de dados que você deseja migrar. Você pode especificar tanto o parâmetro
--db-instance-identifier
quanto--db-snapshot-identifier
no comando. Se você não especificar um desses parâmetros, obterá todos os snapshots.aws rds describe-db-snapshots --db-instance-identifier
<your-db-instance-name>
O comando retorna todos os detalhes de configuração para quaisquer snapshots criados a partir da instância de banco de dados especificada. Na saída, encontre o snapshot que você deseja migrar e localize o nome do recurso da Amazon (ARN). Para saber mais sobre ARNs do Amazon RDS, consulte Amazon Relational Database Service (Amazon RDS). O ARN será semelhante à saída a seguir.
“DBSnapshotArn": "arn:aws:rds:
aws-region
:111122223333:snapshot:<snapshot_name>"Também na saída, você pode encontrar detalhes de configuração para a instância de banco de dados do RDS for PostgreSQL, como a versão do mecanismo, o armazenamento alocado, se a instância de banco de dados está ou não criptografada e assim por diante.
-
Use o comando restore-db-cluster-from-snapshot para iniciar a migração. Especifique os seguintes parâmetros:
-
--db-cluster-identifier
– O nome que você deseja dar ao cluster de bancos de dados Aurora PostgreSQL. Este cluster de bancos de dados Aurora é o destino para a migração de snapshot do banco de dados. -
--snapshot-identifier
– O nome do recurso da Amazon (ARN) do snapshot do banco de dados a ser migrado. -
--engine
– Especifiqueaurora-postgresql
para o mecanismo de cluster de bancos de dados Aurora. -
--kms-key-id
– Esse parâmetro opcional permite criar um cluster de banco de dados Aurora PostgreSQL criptografado de um snapshot do banco de dados não criptografado. Ele também permite que você escolha uma chave de criptografia para o cluster de banco de dados diferente da chave usada para o snapshot do banco de dados.nota
Você não pode criar um cluster de banco de dados não criptografado do Aurora PostgreSQL de um snapshot do banco de dados criptografado.
Sem o parâmetro
--kms-key-id
especificado como mostrado a seguir, o comando da AWS CLI restore-db-cluster-from-snapshot cria um cluster de bancos de dados Aurora PostgreSQL vazio que é criptografado usando a mesma chave que o snapshot do banco de dados ou não criptografado se a fonte do snapshot do banco de dados não for criptografada.Para Linux, macOS ou Unix:
aws rds restore-db-cluster-from-snapshot \ --db-cluster-identifier
cluster-name
\ --snapshot-identifier arn:aws:rds:aws-region
:111122223333
:snapshot:your-snapshot-name
\ --engine aurora-postgresqlPara Windows:
aws rds restore-db-cluster-from-snapshot ^ --db-cluster-identifier
new_cluster
^ --snapshot-identifier arn:aws:rds:aws-region
:111122223333
:snapshot:your-snapshot-name
^ --engine aurora-postgresql -
-
O comando retorna detalhes sobre o cluster de bancos de dados Aurora PostgreSQL que está sendo criado para a migração. É possível verificar o status do cluster de bancos de dados Aurora PostgreSQL usando o comando da AWS CLI describe-db-clusters.
aws rds describe-db-clusters --db-cluster-identifier
cluster-name
-
Quando o cluster de banco de dados ficar “disponível”, você usa o comando create-db-instance para preencher o cluster de bancos de dados Aurora PostgreSQL com a instância de banco de dados baseada em seu snapshot do banco de dados do Amazon RDS. Especifique os seguintes parâmetros:
-
--db-cluster-identifier
– O nome do novo cluster de bancos de dados Aurora PostgreSQL que você criou na etapa anterior. -
--db-instance-identifier
– O nome que você deseja dar à instância de banco de dados. Essa instância torna-se o nó primário no cluster de bancos de dados Aurora PostgreSQL. -
----db-instance-class
– Especifique a classe de instância de banco de dados a ser usada. Escolha entre as classes de instância de banco de dados aceitas pela versão do Aurora PostgreSQL para a qual você está migrando. Para ter mais informações, consulte Tipos de classe de instância de banco de dados e Mecanismos de banco de dados compatíveis para classes de instância de banco de dados. -
--engine
– Especifiqueaurora-postgresql
para a instância de banco de dados.
Você também pode criar a instância de banco de dados com uma configuração diferente da fonte do snapshot do banco de dados passando as opções apropriadas no comando da AWS CLI
create-db-instance
. Para ter mais informações, consulte o comando create-db-instance.Para Linux, macOS ou Unix:
aws rds create-db-instance \ --db-cluster-identifier
cluster-name
\ --db-instance-identifier --db-instance-class db.instance.class
\ --engine aurora-postgresqlPara Windows:
aws rds create-db-instance ^ --db-cluster-identifier
cluster-name
^ --db-instance-identifier --db-instance-class db.instance.class
^ --engine aurora-postgresql -
Quando o processo de migração for concluído, o cluster do Aurora PostgreSQL terá uma instância de banco de dados primária preenchida.