Clonar um volume para um cluster de banco de dados do Amazon Aurora - Amazon Aurora

Clonar um volume para um cluster de banco de dados do Amazon Aurora

Com a clonagem do Aurora, você pode criar um cluster que, inicialmente, compartilhe as mesmas páginas de dados do original mas seja um volume separado e independente. O processo foi projetado para ser rápido e econômico. O novo cluster e seu volume de dados associado é chamado de clone.. Criar um clone é mais rápido e eficiente em termos de espaço do que copiar fisicamente os dados usando outras técnicas, como restauração ou captura de tela.

Visão geral da clonagem do Aurora

O Aurora usa um protocolo copy-on-write para criar um clone. Esse mecanismo usa um espaço adicional mínimo para criar um clone inicial. Quando o clone é criado pela primeira vez, o Aurora mantém uma única cópia dos dados usados pelo cluster de banco de dados do Aurora de origem e pelo novo cluster de banco de dados do Aurora (clonado). O armazenamento adicional é alocado somente quando as alterações são feitas nos dados (no volume de armazenamento do Aurora) pelo cluster de banco de dados do Aurora original ou pelo clone do cluster de banco de dados do Aurora. Para saber mais sobre o protocolo copy-on-write, consulte Como a clonagem do Aurora funciona.

A clonagem do Aurora serve principalmente para configurar rapidamente ambientes de teste usando seus dados de produção, sem arriscar corromper dados. É possível utilizar clones para vários tipos de aplicações, como:

  • Experimente possíveis alterações (de esquema e de grupos de parâmetros, por exemplo) para avaliar todos os impactos.

  • Execute operações com workloads intensivas, como exportar dados ou executar consultas analíticas no clone.

  • Crie uma cópia do cluster de banco de dados de produção para desenvolvimento, teste ou outras finalidades.

É possível criar mais de um clone do mesmo cluster de banco de dados do Aurora. Também é possível criar vários clones a partir de outro clone.

Após criar um clone do Aurora, você pode configurar as instâncias de banco de dados do Aurora de forma diferente do cluster de banco de dados do Aurora de origem. Por exemplo, talvez você não precise de um clone para fins de desenvolvimento para atender aos mesmos requisitos de alta disponibilidade que o cluster de banco de dados de produção do Aurora de origem. Nesse caso, é possível configurar o clone com uma única instância de banco de dados Aurora em vez das várias instâncias de banco de dados usadas pelo cluster de banco de dados do Aurora.

Quando você cria um clone usando uma configuração de implantação diferente da origem, o clone é criado com a versão secundária mais recente do mecanismo de banco de dados do Aurora da origem.

Quando você cria clones a partir de seus clusters de banco de dados do Aurora, os clones são criados em sua conta da AWS, a mesma conta que contém o cluster do banco de dados do Aurora de origem. No entanto, também é possível compartilhar clusters e clones de banco de dados do Aurora Serverless v2 e provisionados do Aurora com outras contas da AWS. Para obter mais informações, consulte Clonar entre contas com o AWS RAM e Amazon Aurora.

Ao concluir o uso do clone para testes, desenvolvimento ou outras finalidades, você poderá excluí-lo.

Limitações da clonagem do Aurora

Atualmente, a clonagem do Aurora tem as seguintes limitações:

  • Você pode criar quantos clones quiser, até o número máximo de clusters de banco de dados permitido na Região da AWS.

    Você pode criar os clones usando o protocolo copy-on-write ou o protocolo full-copy. O protocolo full-copy funciona como uma recuperação para um ponto no tempo.

  • Não é possível criar um clone em uma região da AWS diferente da região de origem do cluster de banco de dados do Aurora.

  • Não é possível criar o clone de um cluster de banco de dados do Aurora sem o recurso de consulta paralela para um cluster que usa consulta paralela. Para levar dados a um cluster que usa a consulta paralela, crie um snapshot do cluster original e restaure-o para um cluster que está usando o recurso de consulta paralela.

  • Não é possível criar um clone a partir de um cluster de banco de dados do Aurora que não tenha instâncias de banco de dados. Só é possível clonar clusters de banco de dados do Aurora com pelo menos uma instância de banco de dados.

  • É possível criar um clone em uma virtual private cloud (VPC) diferente da do cluster de banco de dados do Aurora. Nesse caso, as sub-redes dessas VPCs devem ser mapeadas mas mesmas zonas de disponibilidade.

  • É possível criar um clone provisionado do Aurora a partir de um cluster de banco de dados provisionado do Aurora.

  • Os clusters com instâncias do Aurora Serverless v2 seguem as mesmas regras que os clusters provisionados.

  • Para Aurora Serverless v1:

    • É possível criar um clone provisionado a partir de um cluster de banco de dados do Aurora Serverless v1.

    • É possível criar um clone do Aurora Serverless v1 de um cluster de banco de dados do provisionado ou do Aurora Serverless v1.

    • Não é possível criar um clone do Aurora Serverless v1 de um cluster de banco de dados provisionado do Aurora não criptografado.

    • No momento, a clonagem entre contas não é compatível com a clonagem de clusters de banco de dados do Aurora Serverless v1. Para obter mais informações, consulte Limitações da clonagem entre contas.

    • O cluster de banco de dados do Aurora Serverless v1 clonado tem o mesmo comportamento e limitações que qualquer cluster de banco de dados do Aurora Serverless v1. Para obter mais informações, consulte Usar o Amazon Aurora Serverless v1.

    • Os clusters de banco de dados do Aurora Serverless v1 são sempre criptografados Quando você clonar um banco de dados do Aurora Serverless v1 em um cluster de banco de dados provisionado do Aurora, o cluster de banco de dados do Aurora provisionado será criptografado. É possível escolher a chave de criptografia, mas não é possível desabilitar a criptografia. Para clonar de um cluster de banco de dados provisionado do Aurora para o Aurora Serverless v1, é necessário começar com um cluster de banco de dados provisionado do Aurora provisionado e criptografado.

Como a clonagem do Aurora funciona

A clonagem do Aurora funciona na camada de armazenamento de um cluster de banco de dados do Aurora. Utiliza um protocolo copy-on-write que é rápido e eficiente em termos de mídia durável subjacente compatível com o volume de armazenamento do Aurora. Saiba mais sobre os volumes de cluster do Aurora em Visão geral do armazenamento do Amazon Aurora.

Noções sobre o protocolo copy-on-write

Um cluster de banco de dados do Aurora armazena dados em páginas no volume de armazenamento subjacente do Aurora.

Por exemplo, no diagrama a seguir, você encontra um cluster de banco de dados do Aurora (A) que tem quatro páginas de dados: 1, 2, 3 e 4. Imagine que um clone, B é criado a partir do cluster de banco de dados do Aurora. Quando o clone é criado, nenhum dado é copiado. Em vez disso, o clone aponta para o mesmo conjunto de páginas que o cluster de banco de dados do Aurora de origem.


                    Volume do cluster do Amazon Aurora com 4 páginas para o cluster de origem (A) e o clone (B)

Quando o clone é criado, geralmente não é necessário armazenamento adicional. O protocolo copiar ao escrever usa o mesmo segmento na mídia de armazenamento física que no segmento de origem. O armazenamento adicional é necessário somente se a capacidade do segmento de origem não for suficiente para todo o segmento do clone. Se for esse o caso, o segmento de origem será copiado para outro dispositivo físico.

Nos diagramas a seguir, você encontra um exemplo do protocolo copy-on-write em ação usando o mesmo cluster A e seu clone (B), conforme mostrado anteriormente. Digamos que você faça uma alteração no cluster de banco de dados do Aurora (A) que resulte em uma alteração nos dados mantidos na página 1. Em vez de gravar na página original 1, o Aurora cria uma nova página 1[A]. O volume do cluster de banco de dados do Aurora para o cluster (A) agora aponta para a página 1[A], 2, 3 e 4, enquanto o clone (B) ainda faz referência às páginas originais.


              Volume de cluster de banco de dados do Amazon Aurora de origem e seu clone, ambos com alterações.

No clone, uma alteração é feita na página 4 no volume de armazenamento. Em vez de gravar na página original 4, o Aurora cria uma nova página 4[B]. O clone agora aponta para as páginas 1, 2, 3 e para a página 4[B], enquanto o cluster (A) continua apontando para 1[A], 2, 3 e 4.


        Volume de cluster de banco de dados do Amazon Aurora de origem e seu clone, ambos com alterações.

À medida que ocorrerem mais alterações ao longo do tempo no volume do cluster do Aurora original e no clone, será necessário mais armazenamento incremental para capturar e armazenar as alterações.

Excluir um volume de cluster de origem

Quando você exclui um volume do cluster de origem com um ou mais clones associados a ele, os clones não são afetados. Os clones continuam a apontar para as páginas que pertenciam anteriormente ao volume do cluster de origem.

Criar um clone do Amazon Aurora

Você pode criar um clone na mesma conta da AWS que o cluster de banco de dados do Aurora de origem. Para fazer isso, você pode usar o AWS Management Console ou a AWS CLI e os procedimentos a seguir.

Para permitir que outra conta da AWS crie um clone ou compartilhar um clone com outra conta da AWS, use os procedimentos contidos em Clonar entre contas com o AWS RAM e Amazon Aurora.

O procedimento a seguir descreve como clonar um cluster de banco de dados do Aurora usando o AWS Management Console.

Criar um clone usando os resultados do AWS Management Console em um cluster de banco de dados do Aurora com uma instância de banco de dados do Aurora.

Essas instruções se aplicam a clusters de banco de dados que são da mesma conta da AWS que está criando o clone. Se o cluster de banco de dados for de uma conta da AWS diferente, consulte Clonar entre contas com o AWS RAM e Amazon Aurora.

Para criar um clone de um cluster de banco de dados da sua conta da AWS usando o AWS Management Console
  1. Faça login no AWS Management Console e abra o console do Amazon RDS em https://console.aws.amazon.com/rds/.

  2. No painel de navegação, escolha Databases (Bancos de dados).

  3. Escolha seu cluster de banco de dados do Aurora na lista e em Actions (Ações), escolha Create clone (Criar clone).

    
                  A criação de um clone começa ao selecionar seu cluster de banco de dados do Aurora.

    Abre-se a página Criar clone, onde é possível definir Configurações, Conectividade e outras opções para o clone de cluster de banco de dados do Aurora.

  4. Em Identificador da instância de banco de dados, insira o nome que você deseja dar ao cluster de banco de dados clonado do Aurora.

  5. Para clusters de banco de dados do Aurora Serverless v1, selecione Provisionado ou Sem servidor para Tipo de capacidade.

    Só será possível escolher Serverless (Sem servidor) se o cluster de banco de dados do Aurora de origem for um cluster de banco de dados do Aurora Serverless v1 ou um cluster de banco de dados do Aurora provisionado criptografado.

  6. Para clusters de banco de dados provisionados ou do Aurora Serverless v2, selecione Aurora I/O-Optimized ou Aurora Standard para Configuração do armazenamento em cluster.

    Para obter mais informações, consulte Configurações de armazenamento para clusters de banco de dados do Amazon Aurora.

  7. Escolha o tamanho da instância de banco de dados ou a capacidade do cluster de banco de dados:

    • Para um clone provisionado, selecione uma Classe da instância de banco de dados.

      
                                        Para criar um clone provisionado, especifique o tamanho da instância de banco de dados.

      Você pode aceitar a configuração fornecida ou usar uma classe de instância de banco de dados diferente para o clone.

    • Para um clone do Aurora Serverless v1 ou do Aurora Serverless v2, selecione as Configurações de capacidade.

      
                                        Para criar o clone do Serverless a partir de um cluster de banco de dados do Aurora, especifique a capacidade.

      É possível aceitar as configurações fornecidas ou alterá-las para o clone.

  8. Selecione outras configurações, conforme necessário, para o clone. Para saber mais sobre as configurações de cluster e instância de banco de dados do Aurora, consulte Criar um cluster de bancos de dados do Amazon Aurora.

  9. Selecione Criar clone.

Ao ser criado, o clone é listado com seus outros clusters de banco de dados Aurora na seção Databases (Bancos de dados) do console e exibe seu estado atual. O clone está pronto para uso quando o estado é Available (Disponível).

Usar o AWS CLI para clonar seu cluster de banco de dados do Aurora envolve algumas etapas.

O comandorestore-db-cluster-to-point-in-time da AWS CLI que você usa resulta em um cluster de banco de dados do Aurora vazio com 0 instância de banco de dados do Aurora. Ou seja, o comando restaura apenas o cluster de banco de dados do Aurora, não as instâncias de banco de dados desse cluster. Faça isso separadamente, depois que o clone estiver disponível. As duas etapas do processo são:

  1. Crie o clone usando o comando restore-db-cluster-to-point-in-time da CLI. Os parâmetros que você usa com esse comando controlam o tipo de capacidade e outros detalhes do cluster de banco de dados do Aurora vazio (clone) que está sendo criado.

  2. Crie a instância de banco de dados do Aurora para o clone usando o comando create-db-instance da CLI para recriar a instância de banco de dados Aurora no cluster de banco de dados do Aurora restaurado.

Criando o clone

Os parâmetros específicos que você passa para o comando restore-db-cluster-to-point-in-time da CLI variam. O que você passa depende do tipo de modo de mecanismo do cluster de banco de dados de origem (Serverless ou provisionado) e o tipo de clone que você deseja criar.

Para criar um clone no mesmo modo de mecanismo que o cluster de banco de dados do Aurora original
  • Use o comando restore-db-cluster-to-point-in-time da CLI e especifique valores para os seguintes parâmetros:

    • --db-cluster-identifier — escolha um nome significativo para o clone. Nomeie o clone ao usar o comando restore-db-cluster-to-point-in-time da CLI. Em seguida, passe o nome do clone no comando create-db-instance da CLI.

    • --restore-type: use copy-on-write para criar um clone do cluster de banco de dados de origem Sem esse parâmetro, restore-db-cluster-to-point-in-time restaura o cluster de banco de dados do Aurora em vez de criar um clone.

    • --source-db-cluster-identifier: use o nome do cluster de banco de dados do Aurora de origem que você deseja clonar.

    • --use-latest-restorable-time: esse valor aponta para dados de volume restauráveis mais recentes para o cluster de banco de dados de origem. Use-o para criar clones.

O exemplo a seguir mostra a criação de um clone chamado my-clone a partir de um cluster chamado my-source-cluster.

Para Linux, macOS ou Unix:

aws rds restore-db-cluster-to-point-in-time \ --source-db-cluster-identifier my-source-cluster \ --db-cluster-identifier my-clone \ --restore-type copy-on-write \ --use-latest-restorable-time

Para Windows:

aws rds restore-db-cluster-to-point-in-time ^ --source-db-cluster-identifier my-source-cluster ^ --db-cluster-identifier my-clone ^ --restore-type copy-on-write ^ --use-latest-restorable-time

O comando retorna o objeto JSON que contém detalhes do clone. Verifique se o cluster de banco de dados clonado está disponível antes de tentar criar a instância de banco de dados para o clone. Para obter mais informações, consulte Verificar o status e obter detalhes do clone.

Como criar um clone com um modo de mecanismo diferente do cluster de banco de dados do Aurora original
  • Use o comando restore-db-cluster-to-point-in-time da CLI e especifique valores para os seguintes parâmetros:

    • --db-cluster-identifier — escolha um nome significativo para o clone. Nomeie o clone ao usar o comando restore-db-cluster-to-point-in-time da CLI. Em seguida, passe o nome do clone no comando create-db-instance da CLI.

    • --source-db-cluster-identifier: use o nome do cluster de banco de dados do Aurora de origem que você deseja clonar.

    • --restore-type: use copy-on-write para criar um clone do cluster de banco de dados de origem Sem esse parâmetro, restore-db-cluster-to-point-in-time restaura o cluster de banco de dados do Aurora em vez de criar um clone.

    • --use-latest-restorable-time: esse valor aponta para os dados de volume restauráveis mais recentes para o cluster de banco de dados de origem. Use-o para criar clones.

    • --engine-mode: (opcional) use esse parâmetro somente para criar clones de um tipo diferente do cluster de banco de dados do Aurora de origem. Escolha o valor para passar com --engine-mode, desta maneira:

      • Use provisioned para criar um clone de cluster de banco de dados do Aurora provisionado a partir de um cluster de banco de dados do Aurora Serverless.

      • Use serverless para criar um clone de cluster de banco de dados do Aurora Serverless v1 a partir de um cluster de banco de dados do Aurora provisionado. Ao especificar o modo de mecanismo serverless, você também pode escolher a --scaling-configuration.

    • --scaling-configuration: (opcional) use com --engine-mode serverless para configurar a capacidade mínima e máxima de um clone do Aurora Serverless v1. Se você não usar esse parâmetro, o Aurora criará o clone usando os valores de capacidade padrão para o mecanismo de banco de dados.

    • --serverless-v2-scaling-configuration: (opcional) use esse parâmetro para configurar a capacidade mínima e máxima do clone do Aurora Serverless v2. Se você não usar esse parâmetro, o Aurora criará o clone usando os valores de capacidade padrão para o mecanismo de banco de dados.

O exemplo a seguir cria um clone do Aurora Serverless v1 denominado my-clone de um cluster de banco de dados do Aurora provisionado chamado my-source-cluster. O cluster de banco de dados do Aurora provisionado é criptografado.

Para Linux, macOS ou Unix:

aws rds restore-db-cluster-to-point-in-time \ --source-db-cluster-identifier my-source-cluster \ --db-cluster-identifier my-clone \ --engine-mode serverless \ --scaling-configuration MinCapacity=8,MaxCapacity=64 \ --restore-type copy-on-write \ --use-latest-restorable-time

Para Windows:

aws rds restore-db-cluster-to-point-in-time ^ --source-db-cluster-identifier my-source-cluster ^ --db-cluster-identifier my-clone ^ --engine-mode serverless ^ --scaling-configuration MinCapacity=8,MaxCapacity=64 ^ --restore-type copy-on-write ^ --use-latest-restorable-time

Esses comandos retornam o objeto JSON que contém detalhes do clone necessário para criar a instância de banco de dados. Não é possível fazer isso até que o status do clone (o cluster de banco de dados do Aurora vazio) tenha o status Available (Disponível).

nota

O comando restore-db-cluster-to-point-in-time da AWS CLI restaura apenas o cluster de banco de dados, e não as instâncias de banco de dados para esse cluster de banco de dados. É necessário invocar o comando create-db-instance para criar instâncias de banco de dados para o cluster de banco de dados restaurado, especificando o identificador do cluster de banco de dados restaurado em --db-cluster-identifier. Você pode criar instâncias de banco de dados somente após o comando restore-db-cluster-to-point-in-time tiver sido concluído e o cluster de banco de dados estiver disponível.

Por exemplo, suponha que você tenha um cluster chamado tpch100g que deseja clonar. O exemplo Linux a seguir cria um cluster clonado chamado tpch100g-clone e uma instância primária nomeada tpch100g-clone-instance para o novo cluster. Não é necessário fornecer alguns parâmetros, como --master-username e --master-user-password. O Aurora determina automaticamente os parâmetros do cluster original. Você precisa especificar o mecanismo de banco de dados a ser usado. Assim, o exemplo testa o novo cluster para determinar o valor certo a ser usado para o parâmetro --engine.

$ aws rds restore-db-cluster-to-point-in-time \ --source-db-cluster-identifier tpch100g \ --db-cluster-identifier tpch100g-clone \ --restore-type copy-on-write \ --use-latest-restorable-time $ aws rds describe-db-clusters \ --db-cluster-identifier tpch100g-clone \ --query '*[].[Engine]' \ --output text aurora-mysql $ aws rds create-db-instance \ --db-instance-identifier tpch100g-clone-instance \ --db-cluster-identifier tpch100g-clone \ --db-instance-class db.r5.4xlarge \ --engine aurora-mysql

Verificar o status e obter detalhes do clone

É possível usar o comando a seguir para verificar o status do cluster de banco de dados vazio recém-criado.

$ aws rds describe-db-clusters --db-cluster-identifier my-clone --query '*[].[Status]' --output text

Ou você pode obter o status e os outros valores necessários para criar a instância de banco de dados para seu clone usando a seguinte consulta da AWS CLI.

Para Linux, macOS ou Unix:

aws rds describe-db-clusters --db-cluster-identifier my-clone \ --query '*[].{Status:Status,Engine:Engine,EngineVersion:EngineVersion,EngineMode:EngineMode}'

Para Windows:

aws rds describe-db-clusters --db-cluster-identifier my-clone ^ --query "*[].{Status:Status,Engine:Engine,EngineVersion:EngineVersion,EngineMode:EngineMode}"

Essa consulta retorna uma saída semelhante à saída abaixo.

[ { "Status": "available", "Engine": "aurora-mysql", "EngineVersion": "8.0.mysql_aurora.3.04.1", "EngineMode": "provisioned" } ]

Criar a instância de banco de dados do Aurora para seu clone

Use o comando create-db-instance da CLI para criar a instância de banco de dados para o clone do Aurora Serverless v2 ou provisionado. Não crie uma instância de banco de dados para um clone do Aurora Serverless v1.

A instância de banco de dados herda as propriedades --master-username e --master-user-password do cluster de banco de dados de origem.

O exemplo a seguir cria uma instância de banco de dados para o clone provisionado.

Para Linux, macOS ou Unix:

aws rds create-db-instance \ --db-instance-identifier my-new-db \ --db-cluster-identifier my-clone \ --db-instance-class db.r5.4xlarge \ --engine aurora-mysql

Para Windows:

aws rds create-db-instance ^ --db-instance-identifier my-new-db ^ --db-cluster-identifier my-clone ^ --db-instance-class db.r5.4xlarge ^ --engine aurora-mysql

Parâmetros a serem usados para clonagem

A tabela a seguir resume os vários parâmetros usados com restore-db-cluster-to-point-in-timepara clonar clusters de banco de dados do Aurora.

Parâmetro Descrição

--source-db-cluster-identifier

Use o nome do cluster de banco de dados do Aurora original que você deseja clonar.

--db-cluster-identifier

Selecione um nome significativo para o clone ao criá-lo com o comando restore-db-cluster-to-point-in-time. Em seguida, passe esse nome para o comando create-db-instance.

--restore-type

Especifique copy-on-write como --restore-type para criar um clone do cluster de banco de dados original em vez de restaurar o cluster de banco de dados do Aurora original.

--use-latest-restorable-time

Esse valor aponta para os dados de volume restauráveis mais recentes para o cluster de banco de dados de origem. Use-o para criar clones.

--engine-mode

Use esse parâmetro para criar clones de um tipo diferente do cluster de banco de dados do Aurora de origem, com um dos seguintes valores:

  • Use provisioned para criar um clone do Aurora Serverless v2 ou provisionado de um cluster de banco de dados do Aurora Serverless v1.

  • Use serverless para criar um clone do Aurora Serverless v1 de um cluster de banco de dados do Aurora Serverless v2 ou provisionado.

    Ao especificar o modo de mecanismo serverless, você também pode escolher a --scaling-configuration.

--scaling-configuration

Use esse parâmetro para configurar a capacidade mínima e máxima de um clone do Aurora Serverless v1. Se você não especificar esse parâmetro, o Aurora criará o clone usando os valores de capacidade padrão para o mecanismo de banco de dados.

--serverless-v2-scaling-configuration

Use esse parâmetro para configurar a capacidade mínima e máxima de um clone do Aurora Serverless v2. Se você não especificar esse parâmetro, o Aurora criará o clone usando os valores de capacidade padrão para o mecanismo de banco de dados.

Clonar entre contas com o AWS RAM e Amazon Aurora

Ao usar o AWS Resource Access Manager (AWS RAM) com o Amazon Aurora, você pode compartilhar clusters e clones de banco de dados do Aurora que pertencem a sua conta da AWS com outra conta da AWS ou organização. Essa clonagem entre contas do que a criação e a restauração de um snapshot de banco de dados. Você pode criar um clone a partir de um de seus clusters de banco de dados do Aurora e compartilhar o clone. Ou você pode compartilhar seu cluster de banco de dados do Aurora com outra conta da AWS e deixar o titular da conta criar o clone. A abordagem escolhida depende de seu caso de uso.

Por exemplo, talvez seja necessário compartilhar regularmente um clone do banco de dados financeiro com a equipe de auditoria interna de sua organização. Nesse caso, sua equipe de auditoria tem o própria conta da AWS para as aplicações que ela usa. Você pode dar permissão à conta da AWS da equipe de auditoria para acessar seu cluster de banco de dados do Aurora e cloná-lo conforme necessário.

Por outro lado, se um fornecedor externo auditar seus dados financeiros, talvez você mesmo prefira criar o clone. Em seguida, conceda acesso somente ao clone para o fornecedor externo.

Você também pode usar a clonagem entre contas para oferecer suporte a muitos dos mesmos casos de uso para clonagem dentro da mesma conta da AWS, como desenvolvimento e teste. Por exemplo, sua organização pode usar diferentes contas da AWSpara produção, desenvolvimento, teste etc. Para obter mais informações, consulte Visão geral da clonagem do Aurora.

Assim, recomenda-se compartilhar um clone com outra conta da AWSou permitir que outra conta da AWS crie clones de seus clusters de banco de dados do Aurora. Em ambos os casos, comece usando o AWS RAM para criar um objeto de compartilhamento. Para obter informações completas sobre o compartilhamento de recursos da AWS entre contas da AWS, consulte o Manual do usuário do AWS RAM.

A criação de um clone entre contas requer ações na conta da AWS que tem o cluster original e na conta da AWS que cria o clone. Primeiro, o proprietário do cluster original modifica o cluster para permitir que uma ou mais outras contas o clonem. Se qualquer uma das contas estiver em uma organização da AWSdiferente, a AWS gerará um convite de compartilhamento. A outra conta deve aceitar o convite antes de prosseguir. Depois, cada conta autorizada pode clonar o cluster. Durante todo esse processo, o cluster é identificado por seu nome de recurso da Amazon (ARN) exclusivo.

Como acontece com a clonagem dentro da mesma conta da AWS, espaço de armazenamento adicional será usado somente se as alterações forem feitas nos dados pelo original ou pelo clone. Então as cobranças de armazenamento serão aplicadas nesse momento. Se o cluster de origem for excluído, os custos de armazenamento serão igualmente distribuídos entre os clusters clonados restantes.

Limitações da clonagem entre contas

A clonagem entre contas do Aurora tem as seguintes limitações:

  • Não é possível clonar um cluster Aurora Serverless v1 entre contas da AWS.

  • Não é possível visualizar nem aceitar convites para recursos compartilhados com o AWS Management Console. Use a AWS CLI, a API do Amazon RDS ou o console do AWS RAM para exibir e aceitar convites para recursos compartilhados.

  • É possível criar um clone apenas de um clone que tenha sido compartilhado com sua conta da AWS.

  • Você não pode compartilhar recursos (clones ou clusters de banco de dados do Aurora) que foram compartilhados com sua conta da AWS.

  • Não é possível criar mais de 15 clones entre contas em qualquer cluster de banco de dados do Aurora.

  • Cada um desses 15 clones deve pertencer a uma conta da AWS. Ou seja, é possível criar apenas um clone entre contas de um cluster em qualquer conta da AWS.

  • Depois de clonar um cluster, o cluster original e o respectivo clone são considerados os mesmos a fim de impor limites em clones entre contas. Você não pode criar clones entre contas do cluster original e do cluster clonado dentro da mesma conta da AWS. O número total de clones entre contas para o cluster original e qualquer um de seus clones não pode ser superior a 15.

  • Não é possível compartilhar um cluster de banco de dados do Aurora com outras contas da AWS, a menos que o cluster esteja em estado ACTIVE.

  • Não é possível renomear um cluster de banco de dados do Aurora que tenha sido compartilhado com outras contas da AWS.

  • Não é possível criar um clone entre contas de um cluster que é criptografado com a chave padrão do RDS.

  • Não é possível criar clones não criptografados em uma conta da AWS em clusters de banco de dados do Aurora criptografados compartilhados por outra conta da AWS. O proprietário do cluster deve conceder permissão de acesso à AWS KMS key do cluster de fonte. No entanto, é possível usar uma chave diferente ao criar o clone.

Permissão para que outras contas da AWS clonem seu cluster

Para permitir que outras contas da AWS clonem um cluster de sua propriedade, use o AWS RAM para definir a permissão de compartilhamento. Fazer isso também envia um convite para cada conta que está em uma organização da AWS diferente.

Para ver os procedimentos necessários para compartilhar recursos de sua propriedade no console do , consulte Compartilhar recursos de sua propriedade no AWS RAMManual do usuário do .

Concessão de permissão para que outras contas da AWS clonem seu cluster

Se o cluster que você está compartilhando estiver criptografado, também será necessário compartilhar a AWS KMS key do cluster. Você pode permitir que os usuários ou as funções do AWS Identity and Access Management (IAM) de uma conta da AWS usem uma chave do KMS em conta distinta.

Para fazê-lo, primeiro adicione a conta externa (usuário raiz) à política de chave do KMS por meio do AWS KMS. Você não adiciona os usuários ou perfis individuais à política de chaves, somente a conta externa que os possui. Você só pode compartilhar a chave do KMS que criar, não a chave de serviço padrão do RDS. Para obter informações sobre o controle de acesso para chaves do KMS, consulte Autenticação e controle de acesso para o AWS KMS.

Para conceder permissão para clonar o cluster
  1. Faça login no AWS Management Console e abra o console do Amazon RDS em https://console.aws.amazon.com/rds/.

  2. No painel de navegação, escolha Databases (Bancos de dados).

  3. Escolha o cluster de banco de dados que deseja compartilhar para ver a página Details (Detalhes) e escolha a guia Connectivity & security (Conectividade e segurança).

  4. Na seção Compartilhar cluster de banco de dados com outras contas da AWS, insira o ID numérico da conta da AWS que deseja autorizar para clonar esse cluster. Para IDs de conta na mesma organização, você pode começar digitando na caixa e escolher a opção no menu.

    Importante

    Em alguns casos, convém não ter uma conta na mesma organização da AWS que sua conta para clonar um cluster. Nesses casos, por motivos de segurança, o console não relata que possui esse ID de conta ou se a conta existe.

    Tome cuidado ao inserir números de conta que não estão na mesma organização da AWS que sua conta da AWS. Verifique imediatamente se você compartilhou com a conta desejada.

  5. Na página de confirmação, verifique se o ID da conta especificado está correto. Insira share na caixa de confirmação para confirmar.

    Na página Details (Detalhes), uma entrada exibe o ID da conta da AWS especificado em Accounts that this DB cluster is shared with (Contas com as quais esse cluster de banco de dados está compartilhado). A coluna Status mostra inicialmente o status Pending (Pendente).

  6. Entre em contato com o proprietário da outra conta da AWS ou faça login nessa conta, se for proprietário das duas. Instrua o proprietário da outra conta a aceitar o convite de compartilhamento e clonar o cluster de banco de dados, conforme descrito a seguir.

Para conceder permissão para clonar o cluster
  1. Colete as informações para os parâmetros obrigatórios. Você precisa do ARN do cluster e do ID numérico da outra conta da AWS.

  2. Execute o comando da CLI do AWS RAM create-resource-share.

    Para Linux, macOS ou Unix:

    aws ram create-resource-share --name descriptive_name \ --region region \ --resource-arns cluster_arn \ --principals other_account_ids

    Para Windows:

    aws ram create-resource-share --name descriptive_name ^ --region region ^ --resource-arns cluster_arn ^ --principals other_account_ids

    Para incluir vários IDs de conta para o parâmetro --principals, separe os IDs de cada uma com espaços. Para especificar se os IDs de conta permitidos podem estar fora da sua organização da AWS, inclua o parâmetro --allow-external-principals ou --no-allow-external-principals para create-resource-share.

Para conceder permissão para clonar o cluster
  1. Colete as informações para os parâmetros obrigatórios. Você precisa do ARN do cluster e do ID numérico da outra conta da AWS.

  2. Chame a operação de API do AWS RAM CreateResourceShare e especifique os seguintes valores:

    • Especifique o ID de uma ou mais contas da AWS como o parâmetro principals.

    • Especifique o ARN de um ou mais clusters de banco de dados do Aurora como o parâmetro resourceArns.

    • Especifique se os IDs de conta permitidos podem estar fora de sua organização da AWS, incluindo um valor booliano para o parâmetro allowExternalPrincipals.

Recriar um cluster que usa a chave padrão do RDS

Se o cluster criptografado que você planeja compartilhar usar a chave padrão do RDS, recrie o cluster. Para isso, crie um snapshot manual do seu cluster de banco de dados, use uma AWS KMS key e restaure o cluster como um novo. Então, compartilhe o novo cluster. Para realizar esse processo, execute as seguintes etapas:

Para recriar um cluster criptografado que usa a chave padrão do RDS
  1. Faça login no AWS Management Console e abra o console do Amazon RDS em https://console.aws.amazon.com/rds/.

  2. No painel de navegação, selecione Snapshots.

  3. Escolha seu snapshot.

  4. Em Actions (Ações), escolha Copy Snapshot (Copiar snapshot) e Enable encryption (Ativar criptografia).

  5. Em AWS KMS key, escolha a nova chave de criptografia que deseja usar.

  6. Restaure o snapshot copiado. Para fazer isso, siga o procedimento em Restauração de um snapshot de um cluster de banco de dados. A nova instância de banco de dados usará a nova chave de criptografia.

  7. (Opcional) Exclua o cluster de banco de dados antigo se não precisar mais dele. Para fazer isso, siga o procedimento em Excluir um snapshot de cluster de banco de dados. Antes de fazer isso, confirme se o novo cluster tem todos os dados necessários e se seu aplicativo consegue acessá-lo.

Verificar se um cluster de sua propriedade está compartilhado com outras contas da AWS

Você pode verificar se outros usuários têm permissão para compartilhar um cluster. Fazer isso pode ajudá-lo a entender se o cluster está se aproximando do limite de número máximo de clones entre contas.

Para ver os procedimentos necessários para compartilhar recursos usando o console do AWS RAM, consulte Compartilhar recursos de sua propriedade noManual do usuário do AWS RAM.

Para descobrir se um cluster seu está compartilhado com outras contas da AWS
  • Execute o comando da CLI do AWS RAM list-principals usando o ID da conta como o proprietário do recurso e o ARN do cluster como o ARN do recurso. Você pode ver todos os compartilhamentos com o seguinte comando. Os resultados indicam quais contas da AWS têm permissão para clonar o cluster.

    aws ram list-principals \ --resource-arns your_cluster_arn \ --principals your_aws_id
Para descobrir se um cluster seu está compartilhado com outras contas da AWS
  • Chame a operação de API do AWS RAM ListPrincipals. Use o ID da conta como o proprietário do recurso e o ARN do cluster como o ARN do recurso.

Clonar um cluster que pertence a outra conta da AWS

Para clonar um cluster que é de propriedade de outra conta da AWS, use o AWS RAM para obter permissão para fazer o clone. Depois de obter a permissão necessária, utilize o procedimento padrão para clonar um cluster do Aurora.

Também é possível verificar se um cluster seu é um clone de um cluster de propriedade de outra conta da AWS.

Para ver os procedimentos necessários para trabalhar com recursos de propriedade de outros no console do AWS RAM, consulte Acesso aos recursos compartilhados com você no Manual do usuário do AWS RAM.

Visualizar convites para clonar clusters quer pertencem a outras contas da AWS

Para trabalhar com convites para clonar clusters de propriedade de contas da AWS em outras organizações da AWS, use a AWS CLI, o console do AWS RAM ou a API do AWS RAM. No momento, não é possível realizar esse procedimento usando o console do Amazon RDS.

Para ver os procedimentos necessários para trabalhar com convites no console do AWS RAM, consulteAcesso aos recursos compartilhados com você noManual do usuário do AWS RAM.

Para ver convites para clonar clusters de propriedade de outras contas da AWS
  1. Execute o comando da CLI do AWS RAM get-resource-share-invitations.

    aws ram get-resource-share-invitations --region region_name

    Os resultados do comando anterior mostram todos os convites para clonar clusters, incluindo aqueles que você já aceitou ou rejeitou.

  2. (Opcional) Filtre a lista para ver apenas os convites que precisam de alguma ação da sua parte. Para fazer isso, adicione o parâmetro --query 'resourceShareInvitations[?status==`PENDING`]'.

Para ver convites para clonar clusters de propriedade de outras contas da AWS
  1. Chame a operação da API do AWS RAM GetResourceShareInvitations. Essa operação retorna todos esses convites, incluindo aqueles que você já aceitou ou rejeitou.

  2. (Opcional) Encontre apenas os convites que precisam de alguma ação da sua parte procurando no campo de retorno resourceShareAssociations o valor de status como PENDING.

Aceitação de convites para compartilhar clusters de propriedade de outras contas da AWS

Você pode aceitar convites para compartilhar clusters de propriedade de outras contas da AWS que estão em organizações da AWS diferentes. Para trabalhar com esses convites, use a AWS CLI, o AWS RAM ou as APIs do RDS, do console do AWS RAM. No momento, não é possível realizar esse procedimento usando o console do RDS.

Para ver os procedimentos necessários para trabalhar com convites no console do AWS RAM, consulteAcesso aos recursos compartilhados com você noManual do usuário do AWS RAM.

Para aceitar um convite para compartilhar um cluster de outra conta da AWS
  1. Encontre o ARN do convite executando o comando da CLI do AWS RAM get-resource-share-invitations, conforme mostrado antes.

  2. Aceite o convite chamando o comando da CLI do AWS RAM accept-resource-share-invitation, conforme mostrado a seguir.

    Para Linux, macOS ou Unix:

    aws ram accept-resource-share-invitation \ --resource-share-invitation-arn invitation_arn \ --region region

    Para Windows:

    aws ram accept-resource-share-invitation ^ --resource-share-invitation-arn invitation_arn ^ --region region
Para aceitar convites para compartilhar o cluster de alguém
  1. Encontre o ARN do convite chamando a operação de API do AWS RAM GetResourceShareInvitations, conforme mostrado antes.

  2. Transmita esse ARN como o parâmetro resourceShareInvitationArn para a operação de API do RDS AcceptResourceShareInvitation.

Clonar um cluster do Aurora de propriedade de outra conta da AWS

Depois de aceitar o convite da conta da AWS que tem o cluster de banco de dados, conforme mostrado antes, você pode clonar o cluster.

Para clonar um cluster do Aurora de propriedade de outra conta da AWS
  1. Faça login no AWS Management Console e abra o console do Amazon RDS em https://console.aws.amazon.com/rds/.

  2. No painel de navegação, escolha Databases (Bancos de dados).

    Na parte posterior da lista de bancos de dados, você deve ver um ou mais itens com o valor de Role (Função) igual a Shared from account #account_id. Por motivos de segurança, você pode ver apenas informações limitadas sobre os clusters originais. As propriedades que podem ser vistas são aquelas como mecanismo de banco de dados e versão que devem ser iguais aos do cluster clonado.

  3. Escolha o cluster que você pretende clonar.

  4. Em Actions (Ações), escolha Create alias (Criar alias).

  5. Siga o procedimento descrito em Console para terminar de configurar o cluster clonado.

  6. Conforme necessário, ative a criptografia para o cluster clonado. Se o cluster que estiver sendo clonado for criptografado, você deverá ativar a criptografia para o cluster clonado. A conta da AWS que compartilhou o cluster com você também deve compartilhar a chave do KMS que foi usada para criptografar o cluster. Você pode usar a mesma chave do KMS para criptografar o clone ou a sua própria chave do KMS. Não é possível criar um clone entre contas de um cluster que é criptografado com a chave do KMS padrão.

    A conta proprietária da chave de criptografia deve conceder permissão para usar a chave para a conta de destino usando uma política de chave. Esse processo é semelhante a como os snapshots criptografados são compartilhados, usando uma política de chave que concede permissão para a conta de destino usar a chave.

Para clonar um cluster do Aurora de propriedade de outra conta da AWS
  1. Aceite o convite da conta da AWS que tem o cluster de banco de dados, conforme mostrado antes.

  2. Clone o cluster especificando o ARN completo do cluster de origem no parâmetro source-db-cluster-identifier do comando da CLI do RDS restore-db-cluster-to-point-in-time, conforme mostrado a seguir.

    Se o ARN transmitido como o source-db-cluster-identifier não tiver sido compartilhado, o mesmo erro será retornado como se o cluster especificado não existisse.

    Para Linux, macOS ou Unix:

    aws rds restore-db-cluster-to-point-in-time \ --source-db-cluster-identifier=arn:aws:rds:arn_details \ --db-cluster-identifier=new_cluster_id \ --restore-type=copy-on-write \ --use-latest-restorable-time

    Para Windows:

    aws rds restore-db-cluster-to-point-in-time ^ --source-db-cluster-identifier=arn:aws:rds:arn_details ^ --db-cluster-identifier=new_cluster_id ^ --restore-type=copy-on-write ^ --use-latest-restorable-time
  3. Se o cluster que está sendo clonado for criptografado, criptografe o cluster clonado incluindo um parâmetro kms-key-id. Esse valor de kms-key-id pode ser igual ao usado para criptografar o cluster de banco de dados original ou sua própria chave do KMS. Sua conta deve ter permissão para usar essa chave de criptografia.

    Para Linux, macOS ou Unix:

    aws rds restore-db-cluster-to-point-in-time \ --source-db-cluster-identifier=arn:aws:rds:arn_details \ --db-cluster-identifier=new_cluster_id \ --restore-type=copy-on-write \ --use-latest-restorable-time \ --kms-key-id=arn:aws:kms:arn_details

    Para Windows:

    aws rds restore-db-cluster-to-point-in-time ^ --source-db-cluster-identifier=arn:aws:rds:arn_details ^ --db-cluster-identifier=new_cluster_id ^ --restore-type=copy-on-write ^ --use-latest-restorable-time ^ --kms-key-id=arn:aws:kms:arn_details

    A conta proprietária da chave de criptografia deve conceder permissão para usar a chave para a conta de destino usando uma política de chave. Esse processo é semelhante a como os snapshots criptografados são compartilhados, usando uma política de chave que concede permissão para a conta de destino usar a chave. Veja a seguir um exemplo de uma política de chave.

    { "Id": "key-policy-1", "Version": "2012-10-17", "Statement": [ { "Sid": "Allow use of the key", "Effect": "Allow", "Principal": {"AWS": [ "arn:aws:iam::account_id:user/KeyUser", "arn:aws:iam::account_id:root" ]}, "Action": [ "kms:CreateGrant", "kms:Encrypt", "kms:Decrypt", "kms:ReEncrypt*", "kms:GenerateDataKey*", "kms:DescribeKey" ], "Resource": "*" }, { "Sid": "Allow attachment of persistent resources", "Effect": "Allow", "Principal": {"AWS": [ "arn:aws:iam::account_id:user/KeyUser", "arn:aws:iam::account_id:root" ]}, "Action": [ "kms:CreateGrant", "kms:ListGrants", "kms:RevokeGrant" ], "Resource": "*", "Condition": {"Bool": {"kms:GrantIsForAWSResource": true}} } ] }
nota

O comando restore-db-cluster-to-point-in-time da AWS CLI restaura o cluster de banco de dados, não as instâncias de banco de dados para esse cluster de banco de dados. Para criar instâncias de banco de dados para o cluster de banco de dados restaurado, chame o comando create-db-instance. Especifique o identificador do cluster de banco de dados restaurado em --db-cluster-identifier.

Você pode criar instâncias de banco de dados somente após o comando restore-db-cluster-to-point-in-time tiver sido concluído e o cluster de banco de dados estiver disponível.

Para clonar um cluster do Aurora de propriedade de outra conta da AWS
  1. Aceite o convite da conta da AWS que tem o cluster de banco de dados, conforme mostrado antes.

  2. Clone o cluster especificando o ARN completo do cluster de origem no parâmetro SourceDBClusterIdentifier da operação de API do RDS RestoreDBClusterToPointInTime.

    Se o ARN transmitido como o SourceDBClusterIdentifier não tiver sido compartilhado, o mesmo erro será retornado como se o cluster especificado não existisse.

  3. Se o cluster que está sendo clonado for criptografado, inclua um parâmetro KmsKeyId para criptografar o cluster clonado. Esse valor de kms-key-id pode ser igual ao usado para criptografar o cluster de banco de dados original ou sua própria chave do KMS. Sua conta deve ter permissão para usar essa chave de criptografia.

    Ao clonar um volume, a conta de destino deve ter permissão para usar a chave de criptografia usada para criptografar o cluster de origem. O Aurora criptografa o novo cluster clonado com a chave de criptografia especificada em KmsKeyId.

    A conta proprietária da chave de criptografia deve conceder permissão para usar a chave para a conta de destino usando uma política de chave. Esse processo é semelhante a como os snapshots criptografados são compartilhados, usando uma política de chave que concede permissão para a conta de destino usar a chave. Veja a seguir um exemplo de uma política de chave.

    { "Id": "key-policy-1", "Version": "2012-10-17", "Statement": [ { "Sid": "Allow use of the key", "Effect": "Allow", "Principal": {"AWS": [ "arn:aws:iam::account_id:user/KeyUser", "arn:aws:iam::account_id:root" ]}, "Action": [ "kms:CreateGrant", "kms:Encrypt", "kms:Decrypt", "kms:ReEncrypt*", "kms:GenerateDataKey*", "kms:DescribeKey" ], "Resource": "*" }, { "Sid": "Allow attachment of persistent resources", "Effect": "Allow", "Principal": {"AWS": [ "arn:aws:iam::account_id:user/KeyUser", "arn:aws:iam::account_id:root" ]}, "Action": [ "kms:CreateGrant", "kms:ListGrants", "kms:RevokeGrant" ], "Resource": "*", "Condition": {"Bool": {"kms:GrantIsForAWSResource": true}} } ] }
nota

A operação de API RestoreDBClusterToPointInTime do RDS restaura o cluster de banco de dados, não as instâncias de banco de dados desse cluster. Para criar instâncias primárias para o cluster de banco de dados, chame a operação de API CreateDBInstance do RDS. Especifique o identificador do cluster de banco de dados restaurado em DBClusterIdentifier. É possível criar instâncias de banco de dados somente após a operação RestoreDBClusterToPointInTime ter sido concluída e o cluster de banco de dados estar disponível.

Verificação de se um cluster de banco de dados é um clone entre contas

O objeto DBClusters identifica se cada cluster é um clone entre contas. Você pode ver os clusters que têm permissão para clonar usando a opção include-shared ao executar o comando da CLI do RDS describe-db-clusters. No entanto, não é possível ver a maioria dos detalhes de configuração desses clusters.

Para verificar se um cluster de banco de dados é um clone entre contas
  • Chame o comando da CLI do RDS describe-db-clusters.

    O exemplo a seguir mostra como clusters de banco de dados de clones entre contas reais ou em potencial aparecem na saída describe-db-clusters. Para os clusters existentes de propriedade da sua conta da AWS, o campo CrossAccountClone indica se o cluster é um clone de um cluster de banco de dados que é de propriedade de outra conta da AWS.

    Em alguns casos, uma entrada pode ter um número de conta da AWS diferente do seu no campo DBClusterArn. Nesse caso, essa entrada representa um cluster que é de propriedade de outra conta da AWS e que você pode clonar. Essas entradas têm alguns campos diferentes de DBClusterArn. Ao criar o cluster clonado, especifique os mesmos valores de StorageEncrypted, Engine e EngineVersion do cluster original.

    $aws rds describe-db-clusters --include-shared --region us-east-1 { "DBClusters": [ { "EarliestRestorableTime": "2023-02-01T21:17:54.106Z", "Engine": "aurora-mysql", "EngineVersion": "8.0.mysql_aurora.3.02.0", "CrossAccountClone": false, ... }, { "EarliestRestorableTime": "2023-02-09T16:01:07.398Z", "Engine": "aurora-mysql", "EngineVersion": "8.0.mysql_aurora.3.02.0", "CrossAccountClone": true, ... }, { "StorageEncrypted": false, "DBClusterArn": "arn:aws:rds:us-east-1:12345678:cluster:cluster-abcdefgh", "Engine": "aurora-mysql", "EngineVersion": "8.0.mysql_aurora.3.02.0 ] }
Para verificar se um cluster de banco de dados é um clone entre contas
  • Chame a operação de API do RDS DescribeDBClusters.

    Para os clusters existentes de propriedade da sua conta da AWS, o campo CrossAccountClone indica se o cluster é um clone de um cluster de banco de dados que é de propriedade de outra conta da AWS. As entradas com um número de conta da AWS diferente no campo DBClusterArn representam clusters que você pode clonar e que são de propriedade de outras contas da AWS. Essas entradas têm alguns campos diferentes de DBClusterArn. Ao criar o cluster clonado, especifique os mesmos valores de StorageEncrypted, Engine e EngineVersion do cluster original.

    O exemplo a seguir mostra um valor de retorno que demonstra clusters clonados reais e em potencial.

    { "DBClusters": [ { "EarliestRestorableTime": "2023-02-01T21:17:54.106Z", "Engine": "aurora-mysql", "EngineVersion": "8.0.mysql_aurora.3.02.0", "CrossAccountClone": false, ... }, { "EarliestRestorableTime": "2023-02-09T16:01:07.398Z", "Engine": "aurora-mysql", "EngineVersion": "8.0.mysql_aurora.3.02.0", "CrossAccountClone": true, ... }, { "StorageEncrypted": false, "DBClusterArn": "arn:aws:rds:us-east-1:12345678:cluster:cluster-abcdefgh", "Engine": "aurora-mysql", "EngineVersion": "8.0.mysql_aurora.3.02.0" } ] }