Snapshots e backups do Amazon Redshift - Amazon Redshift

Snapshots e backups do Amazon Redshift

Visão geral dos snapshots

Snapshots são backups pontuais de um cluster. Existem dois tipos de snapshots: automatizado e manual. O Amazon Redshift armazena esses snapshots internamente no Amazon S3 usando uma conexão Secure Sockets Layer (SSL) criptografada.

O Amazon Redshift tira automaticamente snapshots incrementais que rastreiam as alterações no cluster desde o snapshot automatizado anterior. Os snapshots automatizados retêm todos os dados necessários para restaurar um cluster a partir de um snapshot. Você pode criar uma programação de snapshot para controlar quando snapshots automatizados são tirados ou tirar um snapshot manual a qualquer momento.

Quando você restaura a partir de um snapshot, o Amazon Redshift cria um novo cluster e disponibiliza o novo cluster antes que todos os dados sejam carregados, para que você possa começar a consultar o novo cluster imediatamente. O cluster transmite dados sob demanda do snapshot em resposta a consultas ativas e carrega os dados restantes em segundo plano.

Ao iniciar um cluster, você pode definir o período de retenção para snapshots automatizados e manuais. Você pode alterar o período de retenção padrão para snapshots automatizados e manuais, modificando o cluster. É possível alterar o período de retenção do snapshot manual ao criar o snapshot ou modificando o snapshot.

Você pode monitorar o progresso de snapshots visualizando os detalhes do snapshot no AWS Management Console ou chamando describe-cluster-snapshots na CLI ou a ação de API DescribeClusterSnapshots. Para um snapshot em andamento, eles exibem informações como o tamanho do snapshot incremental, a taxa de transferência, o tempo decorrido e o tempo estimado restante.

Para garantir que seus backups estejam sempre disponíveis para o cluster, o Amazon Redshift armazena snapshots em um bucket do Amazon S3 do gerenciado internamente pelo Amazon Redshift. Para gerenciar cobranças de armazenamento, avalie de quantos dias você precisa para manter snapshots automatizados e configure o período de retenção de acordo. Exclua todos os snapshots manuais dos quais você não precisa mais. Para obter mais informações sobre o custo do armazenamento de backup, consulte a página de Preços do Amazon Redshift.

Trabalhar com snapshots e backups no Amazon Redshift sem servidor

O Amazon Redshift sem servidor, do mesmo modo que um cluster provisionado, permite que você faça um backup como uma representação pontual dos objetos e dos dados no namespace. Existem dois tipos de backup no Amazon Redshift sem servidor: snapshots criados manualmente e pontos de recuperação criados automaticamente pelo Amazon Redshift sem servidor. Você pode encontrar mais informações sobre como trabalhar com snapshots para o Amazon Redshift sem servidor em Trabalhar com snapshots e pontos de recuperação.

Também é possível restaurar um snapshot de um cluster provisionado para um namespace sem servidor. Para obter mais informações, consulte Restaurar um namespace com tecnologia sem servidor usando um snapshot.

Snapshots automatizados

Quando snapshots automatizados são ativados para um cluster, o Amazon Redshift tira snapshots desse cluster periodicamente. Por padrão, o Amazon Redshift tira um snapshot a cada oito horas ou depois de cada 5 GB por nó de alterações de dados, o que ocorrer primeiro. Se o seu volume de dados for maior que 5 GB * número de nós, o menor tempo entre a criação automatizada de snapshots será de 15 minutos. Você também pode criar uma programação de snapshot para controlar quando snapshots automatizados são tirados. Se você estiver usando cronogramas personalizados, o tempo mínimo entre os snapshots automatizados será de uma hora. Os snapshots automatizados são ativados por padrão quando você cria um cluster.

Os snapshots automatizados são excluídos ao final de um período de retenção. O período de retenção padrão é de um dia, mas você pode modificá-lo usando o console do Amazon Redshift ou programaticamente usando a API ou CLI do Amazon Redshift.

Para desativar snapshots automatizados, defina o período de retenção como zero. Se você desativar os snapshots automatizados, o Amazon Redshift para de tirar snapshots e exclui todos os snapshots automatizados existentes para o cluster. Não é possível desabilitar snapshots automatizados para tipos de nó RA3. Você pode definir um período de retenção automatizado do tipo de nó RA3 de 1 a 35 dias.

Somente o Amazon Redshift pode excluir um snapshot automatizado; você não pode excluí-lo manualmente. O Amazon Redshift exclui snapshots automatizados no final do período de retenção de um snapshot, quando você desativa os snapshots automatizados para o cluster ou quando exclui o cluster. O Amazon Redshift retém o snapshot automatizado mais recente até que você desabilite os snapshots automatizados ou exclua o cluster.

Se quiser manter um snapshot automatizado por um período mais longo, você poderá criar uma cópia dele como um snapshot manual. O snapshot automatizado será mantido até o final do período de retenção, mas o snapshot manual correspondente será retido até você excluí-lo manualmente ou até o final do período de retenção.

Programações de snapshots automatizados

Para controlar com precisão quando snapshots são tirados, você pode criar uma programação de snapshot e anexá-la a um ou mais clusters. Quando você modifica uma programação de snapshot, a programação é modificada para todos os clusters associados. Se um cluster não tem uma programação de snapshot anexada, o cluster usa a programação padrão de snapshot automatizado.

Uma programação de snapshot é um conjunto de regras de programação. Você pode definir uma regra de programação simples com base em um intervalo especificado, como a cada 8 ou 12 horas. Você também pode adicionar regras para tirar snapshots em certos dias da semana, em horários específicos ou durante períodos específicos. As regras também podem ser definidas usando expressões cron semelhantes ao Unix

Formato da programação de snapshot

No console do Amazon Redshift, você pode criar uma programação de snapshot. Você pode anexar uma programação a um cluster para acionar a criação de um snapshot do sistema. Uma programação pode ser associada a vários clusters, e você pode criar várias definições cron em uma programação para acionar um snapshot.

Você pode definir uma programação para seus snapshots usando uma sintaxe cron. A definição dessas programações usa uma sintaxe cron modificada do tipo Unix. Especifique o horário em Tempo Universal Coordenado (UTC). Você pode criar programações com frequência máxima de uma hora e precisão mínima de um minuto.

As expressões cron modificadas do Amazon Redshift têm 3 campos obrigatórios, separados por espaço em branco.

Sintaxe

cron(Minutes Hours Day-of-month Month Day-of-week Year)
Campos Valores Curingas

Minutos

0–59

, - * /

Horas

0–23

, - * /

Dia do mês

1–31

, - * ? / L W

Mês

1-12 ou JAN-DEZ

, - * /

Dia da semana

1-7 ou SUN-SAT

, - * ? L #

Ano

1970–2199

, - * /

Curingas
  • A , (vírgula) curinga inclui valores adicionais. No campo Day-of-week, MON,WED,FRI incluirá segunda-feira, quarta-feira e sexta-feira. Os valores totais são limitados a 24 por campo.

  • O - (traço) curinga especifica intervalos. No campo Hour, 1–15 incluiria as horas 1 a 15 do dia especificado.

  • O * (asterisco) curinga inclui todos os valores no campo. No campo Hours, * incluirá cada hora.

  • A / (barra) curinga especifica incrementos. No campo Hours, você pode inserir 1/10 para especificar a cada décima hora, a partir da primeira hora do dia (por exemplo, 01:00, 11:00 e 21:00).

  • O curinga ? (interrogação) especifica um ou outro. No campo Day-of-month, você pode inserir 7 e, se não se importar com qual dia da semana era o sétimo, pode inserir ? no campo Dia da semana.

  • O curinga L nos campos Day-of-month ou Day-of-week especifica o último dia do mês ou da semana.

  • O curinga W no campo Day-of-month especifica um dia da semana. No campo Day-of-month, 3W especifica o dia mais próximo do terceiro dia da semana do mês.

  • O curinga # no campo Dia da semana especifica uma determinada instância do dia da semana definido dentro de um mês. Por exemplo, 3#2 seria a segunda terça-feira do mês: o 3 refere-se a terça-feira, porque é o terceiro dia de cada semana, e o 2 refere-se ao segundo dia desse tipo dentro do mês.

    nota

    Se você usar um caractere “#”, poderá definir apenas uma expressão no campo do dia da semana. Por exemplo, "3#1,6#3" não é válido porque é interpretado como duas expressões.

Limites
  • Não é possível especificar os campos Day-of-month e Day-of-week na mesma expressão cron. Se você especificar um valor em um dos campos, deverá usar um ? (ponto de interrogação) no outro.

  • Os cronogramas de snapshot não são compatíveis com as seguintes frequências:

    • Snapshots programados com frequência superior a 1 por hora.

    • Snapshots programados com frequência inferior a 1 por dia (24 horas).

    Se você tem programações sobrepostas que resultam na programação de snapshots em uma janela de 1 hora, o resultado é um erro de validação.

Ao criar uma programação, você pode usar os seguintes exemplos de strings cron.

Minutos Horas Dia da semana Significado

0

14-20/1

TER

A cada hora entre 14h e 20h na terça-feira.

0

21

SEG-SEX

Todas as noites, às 21h, de segunda a sexta-feira.

30

0/6

SÁB-DOM

Incremento a cada 6 horas no sábado e domingo, a partir de 30 minutos após meia-noite (00:30) daquele dia. Isso resulta em um snapshot às [00:30, 06:30, 12:30 e 18:30] de cada dia.

30

12/4

*

Incremento a cada 4 horas, a partir de 12:30 de cada dia. O resultado é [12:30, 16:30, 20:30].

Por exemplo, para executar em uma programação de um incremento a cada 2 horas, a partir de 15:15 de cada dia. O resultado é [15:15, 17:15, 19:15, 21:15, 23:15] , especifique:

cron(15 15/2 *)

Você pode criar várias definições de programação cron em uma programação. Por exemplo, o seguinte comando da AWS CLI contém duas programações cron em uma programação.

create-snapshot-schedule --schedule-identifier "my-test" --schedule-definition "cron(0 17 SAT,SUN)" "cron(0 9,17 MON-FRI)"

Snapshots manuais

Você poderá obter um snapshot manual a qualquer momento. Por padrão, os snapshots manuais são retidos indefinidamente, mesmo depois que você exclui o cluster. Você pode especificar o período de retenção ao criar um snapshot manual ou pode alterar o período de retenção modificando o snapshot. Para obter mais informações sobre como alterar o período de retenção, consulte Alterar o período de retenção do snapshot manual.

Se um snapshot for excluído, você não poderá iniciar operações novas que referenciem esse snapshot. Porém, se estiver em andamento, uma operação de restauração será executada até a conclusão.

O Amazon Redshift tem uma cota que limita o número total de snapshots manuais que você pode criar; esta cota é por conta da AWS por região da AWS. A cota padrão está listada em Cotas e limites no Amazon Redshift.

Gerenciar armazenamento de snapshots

Como os snapshots acumulam encargos de armazenamento, é importante que você os exclua quando não precisar mais deles. O Amazon Redshift exclui snapshots automatizados e manuais no final de seus respectivos períodos de retenção de snapshots. Você também pode excluir snapshots manuais usando o AWS Management Console ou com o comando da CLI batch-delete-cluster-snapshots.

É possível alterar o período de retenção do snapshot manual modificando as configurações do snapshot manual.

Você pode obter informações sobre quanto armazenamento seus snapshots estão consumindo usando o console do Amazon Redshift ou usando o comando da CLI describe-storage.

Excluir tabelas de snapshots

Por padrão, todas as tabelas permanentes definidas pelo usuário são incluídas em snapshots. Se uma tabela, como uma tabela temporária, não precisar de backup, você poderá reduzir significativamente o tempo necessário para criar snapshots e restaurá-los. Você também reduz o espaço de armazenamento no Amazon S3 usando uma tabela sem backup. Para criar uma tabela sem backup, inclua o parâmetro BACKUP NO ao criar a tabela. Para obter mais informações, consulte CREATE TABLE e CREATE TABLE AS no Guia do desenvolvedor de banco de dados do Amazon Redshift.

Copiar snapshots para outra região da AWS

Você pode configurar o Amazon Redshift para copiar automaticamente os snapshots (automatizado ou manual) de um cluster para outra região da AWS. Quando um snapshot é criado na região da AWS primária do cluster, ele é copiado para uma região da AWS secundária. As duas regiões da AWS são conhecidas respectivamente como região da AWS de origem e região da AWS de destino. Se você armazenar uma cópia de seus snapshots em outra região da AWS, poderá restaurar seu cluster a partir de dados recentes se algo afetar a região da AWS primária. Você pode configurar seu cluster para copiar snapshots para apenas uma região da AWS de destino por vez. Para conferir a lista de regiões do Amazon Redshift, consulte Regiões e endpoints na Referência geral da Amazon Web Services.

Ao habilitar o Amazon Redshift para copiar automaticamente os snapshots para outra região da AWS, você especifica a região da AWS de destino para onde copiar os snapshots. Para snapshots automatizados, você também pode especificar o período de retenção para mantê-los na região da AWS de destino. Depois que um snapshot automatizado é copiado para a região da AWS de destino e atinge o período de retenção lá, ele é excluído da região da AWS de destino. Ao fazer isso, você mantém o uso do snapshot baixo. Para manter os snapshots automatizados por um período mais curto ou mais longo na região da AWS de destino, altere este período de retenção.

O período de retenção que você define para snapshots automatizados que são copiados para a região da AWS de destino é separado do período de retenção para snapshots automatizados na região da AWS de origem. O período de retenção padrão para snapshots copiados é sete dias. Esse período de sete dias somente se aplica a snapshots automatizados. Nas regiões da AWS de origem e destino, os snapshots manuais são excluídos no final do período de retenção do snapshot ou quando você os exclui manualmente.

Você pode desativar a cópia automática do snapshot de um cluster a qualquer momento. Quando você desativa esse recurso, os snapshots não são mais copiados da região da AWS de origem para a região da AWS de destino. Todos os snapshots automatizados copiados para a região da AWS de destino são excluídos à medida que atingem o limite do período de retenção, a menos que você crie cópias de snapshot manuais deles. Esses snapshots manuais e quaisquer snapshots manuais que foram copiados da região da AWS de destino são mantidos na região da AWS de destino até que você os exclua manualmente.

Para alterar a região da AWS de destino para a qual você copia os snapshots , primeiro desative o recurso de cópia automática. Em seguida, reative-o, especificando a nova região da AWS de destino.

Depois que um snapshot é copiado para a região da AWS de destino, ele se torna ativo e disponível para fins de restauração.

Para copiar snapshots de clusters criptografados pelo AWS KMS para outra região da AWS, crie uma concessão para o Amazon Redshift para usar uma chave gerenciada pelo cliente na região da AWS de destino. Em seguida, escolha essa concessão ao habilitar a cópia de snapshots na região da AWS de origem. Para obter mais informações sobre como configurar concessões de cópia do snapshot, consulte Copiar snapshots criptografados pelo AWS KMS para outra região da AWS.

Restauração de um cluster usando um snapshot

Um snapshot contém dados de todos os bancos de dados em execução no cluster. Ele também contém informações sobre seu cluster, inclusive o número de nós, tipo de nós e o nome de usuário administrador. Se você restaurar seu cluster a partir de um snapshot, o Amazon Redshift usa as informações do cluster para criar um novo cluster. Em seguida, ele restaura todos os bancos de dados dos dados do snapshot.

Para o novo cluster criado a partir do snapshot original, você pode escolher a configuração, como o tipo e o número de nós. O cluster é restaurado na mesma região da AWS e em uma zona de disponibilidade aleatória escolhida pelo sistema, a menos que você especifique outra zona de disponibilidade em sua solicitação. Ao restaurar um cluster a partir de um snapshot, você poderá escolher um acompanhamento de manutenção compatível para o novo cluster.

nota

Quando você restaura um snapshot para um cluster com outra configuração, o snapshot deve ser obtido em um cluster com a versão 1.0.10013 ou posterior.

Quando uma restauração está em andamento, os eventos geralmente são emitidos na seguinte ordem:

  1. RESTORE_STARTED — REDSHIFT-EVENT-2008 enviado quando o processo de restauração começa.

  2. RESTORE_SUCCEEDED — REDSHIFT-EVENT-3003 enviado quando o novo cluster foi criado.

    O cluster está disponível para consultas.

  3. DATA_TRANSFER_COMPLETED — REDSHIFT-EVENT-3537 enviado quando a transferência de dados é concluída

nota

Os clusters RA3 emitem apenas os eventos RESTORE_STARTED e RESTORE_SUCCEEDED. Não há transferência de dados explícita a ser feita depois que um RESTORE for bem-sucedido porque os tipos de nó RA3 armazenam dados no armazenamento gerenciado do Amazon Redshift. Com os nós RA3, os dados são continuamente transferidos entre os nós RA3 e o armazenamento gerenciado do Amazon Redshift como parte do processamento normal de consultas. Os nós RA3 armazenam dados quentes localmente e mantêm blocos consultados com menos frequência no armazenamento gerenciado do Amazon Redshift automaticamente.

Você pode monitorar o andamento de uma restauração chamando a operação de API DescribeClusters ou exibindo os detalhes do cluster no AWS Management Console. Para uma restauração em andamento, eles exibem informações como o tamanho dos dados do snapshot, a taxa de transferência, o tempo decorrido e o tempo estimado restante. Para obter uma descrição dessas métricas, acesse RestoreStatus.

Você não pode usar um snapshot para restaurar o estado anterior de um cluster ativo.

nota

Quando você restaurar um snapshot em um novo cluster, o security group e o parameter group padrão serão usados, a menos que você especifique valores diferentes.

Talvez você queira restaurar um snapshot para um cluster com uma configuração diferente por estas razões:

  • Quando um cluster é composto por tipos de nós menores e você deseja consolidá-lo em um tipo maior com menos nós.

  • Quando você monitorou seu workload e determinou a necessidade de migrar para um tipo de nó com mais CPU e armazenamento.

  • Quando você deseja medir a performance de workloads de teste com tipos de nós diferentes.

A restauração tem as seguintes restrições:

  • A nova configuração de nó deve ter armazenamento suficiente para os dados existentes. Mesmo quando você adiciona nós, sua nova configuração pode não ter armazenamento suficiente por causa da maneira como os dados são redistribuídos.

  • A operação de restauração verifica se o snapshot foi criado em uma versão de cluster compatível com a versão de cluster do novo cluster. Se o novo cluster tiver um nível de versão muito cedo, a operação de restauração falhará e reporta mais informações em uma mensagem de erro.

  • As configurações possíveis (número de nós e tipo de nó) que você pode restaurar são determinadas pelo número de nós no cluster original e pelo tipo de nó de destino do novo cluster. Para determinar as possíveis configurações disponíveis, você pode usar o console do Amazon Redshift ou o comando da AWS CLI describe-node-configuration-options com action-type restore-cluster. Para obter mais informações sobre a restauração usando o console do Amazon Redshift, consulte Restauração de um cluster usando um snapshot.

As etapas a seguir consideram um cluster com muitos nós e o consolida em um tipo de nó maior com um número menor de nós usando a AWS CLI. Para este exemplo, começamos com um cluster de origem de 24 nós . Nesse caso, suponha que já tenhamos criado um snapshot desse cluster e deseje restaurá-lo para um tipo de nó maior.

  1. Execute o seguinte comando para obter os detalhes de um cluster de 24 nós.

    aws redshift describe-clusters --region eu-west-1 --cluster-identifier mycluster-123456789012
  2. Execute o seguinte comando para obter os detalhes do snapshot.

    aws redshift describe-cluster-snapshots --region eu-west-1 --snapshot-identifier mycluster-snapshot
  3. Execute o seguinte comando para descrever as opções disponíveis para esse snapshot.

    aws redshift describe-node-configuration-options --snapshot-identifier mycluster-snapshot --region eu-west-1 --action-type restore-cluster

    Este comando retorna uma lista de opções com os tipos de nós, o número de nós e a utilização do disco recomendados para cada opção. Para este exemplo, o comando anterior lista as seguintes configurações de nós possíveis. Optamos por fazer a restauração para um cluster de três nós.

    { "NodeConfigurationOptionList": [ { "EstimatedDiskUtilizationPercent": 65.26134808858235, "NodeType": "dc2.large", "NumberOfNodes": 24 }, { "EstimatedDiskUtilizationPercent": 32.630674044291176, "NodeType": "dc2.large", "NumberOfNodes": 48 }, { "EstimatedDiskUtilizationPercent": 65.26134808858235, "NodeType": "dc2.8xlarge", "NumberOfNodes": 3 }, { "EstimatedDiskUtilizationPercent": 48.94601106643677, "NodeType": "dc2.8xlarge", "NumberOfNodes": 4 }, { "EstimatedDiskUtilizationPercent": 39.156808853149414, "NodeType": "dc2.8xlarge", "NumberOfNodes": 5 }, { "EstimatedDiskUtilizationPercent": 32.630674044291176, "NodeType": "dc2.8xlarge", "NumberOfNodes": 6 } ] }
  4. Execute o comando a seguir para restaurar o snapshot para a configuração do cluster que escolhemos. Após a restauração desse cluster, temos o mesmo conteúdo que o cluster de origem, mas os dados foram consolidados em três nós dc2.8xlarge.

    aws redshift restore-from-cluster-snapshot --region eu-west-1 --snapshot-identifier mycluster-snapshot --cluster-identifier mycluster-123456789012-x --node-type dc2.8xlarge --number-of-nodes 3

Se você tiver nós reservados (por exemplo, nós reservados DC2), poderá atualizar para nós reservados RA3. Faça isso para restaurar a partir de um snapshot ou para executar um redimensionamento elástico. Você pode usar o console se orientar nesse processo. Para obter mais informações sobre a atualização para nós RA3, consulte Atualizar para os tipos de nó RA3.

Restaurar uma tabela de um snapshot

Você pode restaurar uma única tabela de um snapshot, em vez de restaurar um cluster inteiro. Ao restaurar uma única tabela de um snapshot, você especifica o snapshot, o banco de dados, o esquema e o nome da tabela de origem, além do banco de dados e esquema de origem e do nome de uma nova tabela para a tabela restaurada.

O nome da nova tabela não pode ser o nome de uma tabela existente. Para substituir uma tabela existente por uma tabela restaurada de um snapshot, renomeie ou ignore a tabela existente antes de restaurar a tabela do snapshot.

A tabela de destino é criada usando-se as definições de coluna da tabela de origem, os atributos da tabela e os atributos da coluna, exceto as chaves externas. Para evitar conflitos por causa de dependências, a tabela de destino não herda chaves externas da tabela de origem. Todas as dependências, como visualizações ou permissões concedidas na tabela de origem, não são aplicadas à tabela de destino.

Se o proprietário da tabela de origem existir, esse usuário de banco de dados será o proprietário da tabela restaurada, desde que o usuário tenha permissões suficientes para se tornar o proprietário de uma relação no banco de dados e no esquema especificados. Do contrário, a tabela restaurada será de propriedade do usuário administrador que foi criado quando o cluster foi iniciado.

A tabela restaurada retorna ao estado em que estava no momento em que o backup foi feito. Isso inclui regras de visibilidade de transação definidas pela adesão do Amazon Redshift ao isolamento serializável, o que significa que os dados serão imediatamente visíveis para transações em andamento iniciadas após o backup.

Restaurar uma tabela de um snapshot tem as seguintes limitações:

  • Você pode restaurar uma tabela somente no cluster atual, em execução ativa, e de um snapshot feito desse cluster.

  • Você pode restaurar somente uma tabela por vez.

  • Você não pode restaurar uma tabela de um snapshot de cluster feito antes de um cluster ser redimensionado. Uma exceção é que você pode restaurar uma tabela após um redimensionamento elástico se o tipo de nó não for alterado.

  • Todas as dependências, como visualizações ou permissões concedidas na tabela de origem, não são aplicadas à tabela de destino.

  • Se a segurança no nível da linha estiver ativada para uma tabela que está sendo restaurada, o Amazon Redshift restaurará a tabela com a segurança no nível da linha ativada.

Para restaurar uma tabela de um snapshot
  1. Faça login no AWS Management Console e abra o console do Amazon Redshift em https://console.aws.amazon.com/redshiftv2/.

  2. No menu de navegação, escolha Clusters e o cluster que você deseja usar para restaurar uma tabela.

  3. Em Actions (Ações), escolha Restore table (Restaurar tabela) para exibir a página Restore table (Restaurar tabela).

  4. Insira informações sobre qual snapshot, tabela de origem e tabela de destino usar e escolha Restore table (Restaurar tabela).

exemplo Exemplo: restaurar uma tabela de um snapshot usando a AWS CLI

O exemplo a seguir usa o comando restore-table-from-cluster-snapshot da AWS CLI para restaurar a tabela my-source-table do esquema sample-database no my-snapshot-id. Você pode usar o comando describe-table-restore-status da AWS CLI para revisar o status da operação de restauração. O exemplo restaura o snapshot para o cluster mycluster-example com o nome de uma nova tabela my-new-table.

aws redshift restore-table-from-cluster-snapshot --cluster-identifier mycluster-example --new-table-name my-new-table --snapshot-identifier my-snapshot-id --source-database-name sample-database --source-table-name my-source-table

Compartilhar snapshots

Você pode compartilhar um snapshot manual existente com outras contas de clientes da AWS, autorizando o acesso ao snapshot. Você pode autorizar até 20 para cada snapshot e 100 para cada chave do AWS Key Management Service (AWS KMS). Ou seja, se você tiver 10 snapshots criptografados com uma única chave KMS, poderá autorizar 10 contas da AWS para restaurar cada snapshot ou outras combinações que adicionem até 100 contas e não excedam 20 contas para cada snapshot. Uma pessoa conectada como usuário em uma das contas autorizadas pode então descrever o snapshot ou restaurá-lo para criar um novo cluster do Amazon Redshift em sua conta. Por exemplo, se você usar contas de cliente da AWS separadas para produção e teste, um usuário poderá fazer login usando a conta de produção e compartilhar um snapshot com usuários na conta de teste. Alguém conectado como um usuário da conta de teste poderá restaurar o snapshot a fim de criar um novo cluster de propriedade da conta de teste para fins de teste ou trabalho de diagnóstico.

Um snapshot manual é propriedade permanente da conta de cliente da AWS em que foi criado. Somente usuários na conta proprietária do snapshot podem autorizar outras contas a acessar o snapshot ou revogar autorizações. Os usuários nas contas autorizadas somente podem descrever ou restaurar qualquer snapshot que tenha sido compartilhado com eles; eles não podem copiar nem excluir snapshots que tenham sido compartilhadas com eles. Uma autorização permanecerá em vigor até o proprietário do snapshot revogá-la. Se uma autorização for revogada, o usuário sido autorizado anteriormente perderá a visibilidade do snapshot e não poderá iniciar ações novas referenciando o snapshot. Se a conta estiver no processo de restauração do snapshot quando o acesso for revogado, a restauração será executada até ser concluída. Você não poderá excluir um snapshot enquanto ele tiver autorizações ativas; você deve revogar primeiramente todas as autorizações.

As contas de clientes da AWS estão sempre autorizadas para acessar snapshots de propriedade da conta. As tentativas de autorizar ou revogar acesso para a conta do proprietário receberão um erro. Você não pode restaurar nem descrever um snapshot de propriedade de uma conta do cliente da AWS inativa.

Depois que você tiver autorizado o acesso a uma conta do cliente da AWS, nenhum usuário nessa conta poderá realizar ações no snapshot, a menos que assuma um perfil com políticas que permitam isso.

  • Os usuários na conta do proprietário do snapshot podem autorizar e revogar o acesso a um snapshot apenas se assumirem um perfil com uma política do IAM que permita a execução dessas ações com uma especificação de recurso que inclua o snapshot. Por exemplo, a política a seguir permite que um usuário na conta da AWS 012345678912 autorize outras contas a acessarem um snapshot chamado my-snapshot20130829:

    { "Version": "2012-10-17", "Statement":[ { "Effect":"Allow", "Action":[ "redshift:AuthorizeSnapshotAccess", "redshift:RevokeSnapshotAccess" ], "Resource":[ "arn:aws:redshift:us-east-1:012345678912:snapshot:*/my-snapshot20130829" ] } ] }
  • Os usuários em uma conta da AWS com a qual um snapshot foi compartilhado não podem realizar ações nesse snapshot, a menos que tenham permissões referentes a essas ações. É possível fazer isso atribuindo a política a um perfil e assumindo o perfil.

    • Para listar ou descrever um snapshot, eles devem ter uma políticas IAM que permita a ação DescribeClusterSnapshots. O seguinte código mostra um exemplo:

      { "Version": "2012-10-17", "Statement":[ { "Effect":"Allow", "Action":[ "redshift:DescribeClusterSnapshots" ], "Resource":[ "*" ] } ] }
    • Para restaurar um snapshot, um usuário deve assumir um perfil com uma política do IAM que permita a ação RestoreFromClusterSnapshot e tenha um elemento de recurso que abranja tanto o cluster que está tentando criar quanto o snapshot. Por exemplo, se um usuário na conta 012345678912 tiver um snapshot compartilhado my-snapshot20130829 com a conta 219876543210, para criar um cluster restaurando o snapshot, um usuário na conta 219876543210 deve assumir um perfil com uma política como a seguinte:

      { "Version": "2012-10-17", "Statement":[ { "Effect":"Allow", "Action":[ "redshift:RestoreFromClusterSnapshot" ], "Resource":[ "arn:aws:redshift:us-east-1:012345678912:snapshot:*/my-snapshot20130829", "arn:aws:redshift:us-east-1:219876543210:cluster:from-another-account" ] } ] }
    • Depois que o acesso a um snapshot tiver sido removido de uma conta da AWS, nenhum usuário nessa conta poderá acessar o snapshot. Isso ocorre mesmo que essas contas tenham políticas do IAM que permitam ações no recurso do snapshot compartilhado anteriormente.