Como faço para copiar e restaurar um snapshot do Amazon Redshift Serverless para uma conta diferente da AWS?
Quero copiar e restaurar um snapshot do Amazon Redshift Serverless de uma conta da AWS para outra conta da AWS. Como posso fazer isso?
Resolução
Execute uma cópia e restauração de uma conta da AWS para outra usando o console do Amazon Redshift ou a AWS Command Line Interface (AWS CLI).
Antes de começar, considere o seguinte:
- Você pode restaurar um snapshot para um namespace do Amazon Redshift Serverless somente se ele estiver no statusAvailable (Disponível) e associado a um workgroup (grupo de trabalho) disponível.
- A restauração de um namespace do Amazon Redshift Serverless a partir de um snapshot substitui todos os bancos de dados do namespace por bancos de dados no snapshot.
- Durante a restauração, o Amazon Redshift Serverless não estará disponível.
Copiar e restaurar usando o console do Amazon Redshift
Converter um ponto de recuperação do Amazon Redshift Serverless em um snapshot na conta de origem
- Abra o console do Amazon Redshift.
- No painel de navegação, escolha Redshift serverless (Redshift com tecnologia sem servidor) e Data backup (Backup de dados).
- Em Recovery points (Pontos de recuperação), escolha a Creation time (Hora de criação) do ponto de recuperação que você deseja converter em um snapshot.
- Escolha Create snapshot from recovery point (Criar snapshot a partir do ponto de recuperação).
- Insira um Snapshot identifier (Identificador de snapshot) e um retention period (período de retenção).
- Escolha Create (Criar).
Compartilhar o snapshot na conta de origem com outra conta da AWS
- Abra o console do Amazon Redshift.
- No painel de navegação, escolha Redshift serverless (Redshift com tecnologia sem servidor) e Data backup (Backup de dados).
- Escolha o snapshot que você criou anteriormente.
- Escolha Actions, Manage access (Ações, Gerenciar acesso).
- Escolha Add AWS account (Adicionar conta da AWS) localizada em Provide access to serverless accounts (Fornecer acesso a contas com tecnologia sem servidor) e insira um AWS account ID (ID de conta da AWS) (destino).
- Escolha Save changes (Salvar alterações).
Restaurar o snapshot em um namespace do Amazon Redshift Serverless na conta de destino
- Abra o console do Amazon Redshift.
- No painel de navegação, escolha Redshift serverless (Redshift com tecnologia sem servidor) e Data backup (Backup de dados).
- Escolha o snapshot compartilhado com o ID da conta da AWS a ser restaurado. Você pode restaurar somente um snapshot por vez.
- Escolha Actions, Restore to serverless namespace (Ações, Restaurar para namespace com tecnologia sem servidor).
- Escolha um namespace disponível para restaurar. Você pode restaurar somente em namespaces com o status Available (Disponível).
- Escolha Restore (Restaurar).
Copiar e restaurar usando a CLI da AWS
Observação: se você receber erros ao executar comandos da AWS CLI, certifique-se de estar utilizando a versão mais recente da AWS CLI.
Converter um ponto de recuperação do Amazon Redshift Serverless em um snapshot na conta de origem
1. Use o comando list-recovery-points para obter uma lista de instantâneos criados após o start-time (horário de início). Execute o comando a seguir e substitua namespacename pelo seu namespace, us-west-2 pela região da AWS e start-time pelo horário de início do ponto de recuperação em UTC:
aws redshift-serverless list-recovery-points --namespace-name <namespacename> --region <region name> --start-time <starttime>
No exemplo a seguir, o cluster Redshift Serverless está na região Oeste dos EUA (Oregon) com um namespace default (padrão) e um horário de início de 2022-09-06T07:10 UTC:
aws redshift-serverless list-recovery-points --namespace-name default --region us-west-2 --start-time 2022-09-06T07:10
2. Use o comando convert-recovery-point-to-snapshot para criar um snapshot e um período de retenção. Execute o comando a seguir e substitua recoveryPointId pela saída do ID do ponto de recuperação da etapa 1, days pelo número de dias para reter o snapshot name pelo nome de seu snapshot e us-west-2 por sua região da AWS:
aws redshift-serverless convert-recovery-point-to-snapshot --recovery-point-id <recoveryPointId> --retention-period <days> --snapshot-name <snapshot name> --region <region name>
No exemplo a seguir, o snapshot é denominado snapshot01 com um período de retenção de três dias e está na região Oeste dos EUA (Oregon).
aws redshift-serverless convert-recovery-point-to-snapshot --recovery-point-id 72acee50-34df-45f6-865f-46aa178ada82 --retention-period 3 --snapshot-name snapshot01 --region us-west-2
3. Use o comando get-snapshot para confirmar que o instantâneo foi criado. Execute o comando a seguir e substitua o snapshot name pelo nome do seu snapshot:
aws redshift-serverless get-snapshot --snapshot-name <snapshot name>
Compartilhar o snapshot na conta de origem com outra conta da AWS
Use o comando put-resource-policy para fornecer acesso ao snapshot para outra conta da AWS. Execute o comando a seguir e substitua o destination account ID pelo ID da conta da AWS de destino e snapshot arn pelo ARN do snapshot:
aws redshift-serverless put-resource-policy --policy "{\"Version\": \"2012-10-17\", \"Statement\" : [{ \"Sid\": \"AllowUserRestoreFromSnapshot\", \"Principal\":{\"AWS\": [\”<destination account ID>\”]}, \"Action\": [\"redshift-serverless:RestoreFromSnapshot\"] , \"Effect\": \"Allow\" }]}" --resource-arn <snapshot arn>
No exemplo a seguir, o acesso é fornecido ao ARN do snapshot na conta número123456789012:
aws redshift-serverless put-resource-policy --policy "{\"Version\": \"2012-10-17\", \"Statement\" : [{ \"Sid\": \"AllowUserRestoreFromSnapshot\", \"Principal\":{\"AWS\": [\"123456789012\"]}, \"Action\": [\"redshift-serverless:RestoreFromSnapshot\"] , \"Effect\": \"Allow\" }]}" --resource-arn arn:aws:redshift-serverless:us-west-2:112233445566:snapshot/4978ca91-24ba-4196-91ad-9d372f72b0fe
Restaurar o snapshot em um namespace do Amazon Redshift Serverless na conta de destino
1. Use o comando list-snapshots para listar o snapshot na sua região da AWS. Execute o comando a seguir e substitua us-west-2 por sua região da AWS:
aws redshift-serverless list-snapshots --region us-west-2
2. Use o comando restore-from-snapshot para restaurar o snapshot em um Amazon Redshift Serverless. Execute o comando a seguir e substitua o snapshot name pelo nome do seu snapshot, o workgroup name pelo nome do seu grupo de trabalho e o snapshot arnpelo ARN do snapshot do comando anterior:
aws redshift-serverless restore-from-snapshot --namespace-name <namespace name > --workgroup-name <workgroup name> --snapshot-arn <snapshot arn>
No exemplo a seguir, o ID da conta 112233445566 tem um Amazon Redshift Serverless no estado Available (Disponível) com um nome de namespace de restore e um nome de grupo de trabalho de restore:
aws redshift-serverless restore-from-snapshot --namespace-name restore --workgroup-name restore --snapshot-arn arn:aws:redshift-serverless:us-west-2:112233445566:snapshot/4978ca91-24ba-4196-91ad-9d372f72b0fe
Conteúdo relevante
- AWS OFICIALAtualizada há um ano
- AWS OFICIALAtualizada há 3 anos
- AWS OFICIALAtualizada há 2 anos
- AWS OFICIALAtualizada há um ano