Como solucionar o erro “Create-failed” ou “Permission denied” que ocorre quando tento restaurar meu cluster do ElastiCache a partir do S3?
Quero solucionar o erro “Create-failed” ou “Permission denied” que ocorre quando tento restaurar meu cluster do Amazon ElastiCache a partir do Amazon Simple Storage Service (Amazon S3).
Breve descrição
A seguir estão os motivos comuns pelos quais a restauração de um backup do ElastiCache a partir do Amazon S3 falha:
- Você tentou restaurar um backup fora das restrições de backup.
- O ElastiCache não conseguiu recuperar o arquivo do Amazon S3.
- O arquivo de backup do ElastiCache está localizado em um bucket do Amazon S3 em outra região da AWS.
- Você restaura um arquivo rdb que contém vários bancos de dados em um cluster do ElastiCache que tem o modo cluster ativado.
Resolução
Você tenta restaurar um backup fora das restrições de backup
Ao restaurar um backup do ElastiCache para Redis, certifique-se de entender as restrições de backup:
- Você não pode restaurar de um backup que usou um cluster do Redis com o modo de cluster ativado para um cluster do Redis com o modo de cluster desativado.
- Quando você restaura um backup de um cluster do ElastiCache com o modo de cluster ativado, não é possível desativar o modo de cluster no console do ElastiCache. A opção de ativar o modo de cluster está disponível
- Quando você exporta um backup com um cluster do ElastiCache que tem o modo de cluster ativado para o Amazon S3, vários arquivos rdb são criados. Se você semear o backup do Amazon S3 com um arquivo rdb de backup, somente as chaves de um único fragmento serão semeadas no cluster. Se você tentar contornar isso com um arquivo *rdb curinga, o erro a seguir será exibido.
“Error: Object or bucket does not exist for S3 object: examplebucket/cluster-mode-enabled-*.rdb.” - Você não pode restaurar um backup de um cluster que usa camadas de dados. Por exemplo, você não pode restaurar um nó r6gd em um cluster que não usa camadas de dados.
- Você não pode exportar o backup em camadas de dados para o Amazon S3. Além disso, você não pode restaurar um backup hierárquico de dados do ElastiCache a partir do Amazon S3. Para obter mais informações, consulte Limitações.
- Para arquivos rdb com vários bancos de dados, você não pode restaurar de um cluster do Redis (modo de cluster desativado) para um cluster do Redis (modo de cluster ativado). Quando você tenta fazer isso, o seguinte erro aparece:
“Error: To restore a snapshot in cluster mode, all keys in the RDB file should reside in DB 0.”
O ElastiCache não conseguiu recuperar o arquivo do Amazon S3
Se o ElastiCache não tiver as permissões necessárias para acessar o backup do ElastiCache que está armazenado no bucket do Amazon S3, o seguinte erro será exibido:
“Restore from snapshot failed for node group 0001 in replication group test. Failed to retrieve file from S3.”
Para confirmar o problema de permissões, revise seus eventos do ElastiCache. Ao identificar a causa do erro, verifique se sua região é uma das seguintes:
- Uma região de ativação
- China (Pequim) e China (Ningxia)
- AWS GovCloud (Oeste dos EUA)
- Uma região padrão
Para uma região de ativação, você deve ter uma política de bucket que permita ao ElastiCache recuperar o arquivo de backup do Amazon S3.
Se seu bucket do Amazon S3 estiver localizado em uma das seguintes regiões, você deverá permitir que o serviço ElastiCache acesse o arquivo de backup no S3:
- China (Pequim) e China (Ningxia)
- AWS GovCloud (Oeste dos EUA)
- Uma região padrão
Observação: o ID canônico para as regiões China (Pequim), China (Ningxia) e AWS GovCloud (Oeste dos EUA) é diferente das regiões da AWS padrão:
- China (Pequim) e China (Ningxia): b14d6a125bdf69854ed8ef2e71d8a20b7c490f252229b806e514966e490b8d83
- AWS GovCloud (Oeste dos EUA): 40fa568277ad703bd160f66ae4f83fc9dfdfd06c2f1b5060ca22442ac3ef8be6
- Regiões da AWS padrão: 540804c33a284a299d2547575ce1010f2312ef3da9b3a053c8bc45bf233e4353
Ao usar um ID canônico ou uma política de bucket para conceder ao ElastiCache acesso ao objeto de backup rdb, restaure o cluster do Redis.
O arquivo de backup do ElastiCache está localizado em um bucket do Amazon S3 em outra região
Se você tentar restaurar um backup do ElastiCache localizado em um bucket do Amazon S3 em outra região, o seguinte erro será exibido:
“Permission denied to access S3 object. Please use the S3 object in the same region.”
Para resolver esse erro, conclua as seguintes etapas:
Observação: se você receber erros ao executar comandos da AWS Command Line Interface (AWS CLI), consulte Solucionar erros da AWS CLI. Além disso, verifique se você está usando a versão mais recente da AWS CLI.
-
Use o comando a seguir para copiar o arquivo de backup rdb do bucket do Amazon S3. Certifique-se de que o bucket contenha o backup na região em que o cluster do Redis está sendo restaurado. Para obter mais informações, consulte Quais são as práticas recomendadas para migrar meu cluster do ElastiCache para Redis?
Observação: substitua example-source-bucket, example-destination-bucket, example-backup, example-source-region e example destination-region pelos valores de nomes adequados.
aws s3 cp s3://example-source-bucket/example-backup.rdb s3://example-destination-bucket/example-backup.rdb --acl bucket-owner-full-control --source-region example-source-region --region example-destination-region
-
Confirme se o arquivo de backup rdb tem as permissões corretas atribuídas a ele (ID canônica ou política de bucket).
-
Continue restaurando o cluster.
Você restaura um arquivo rdb que contém vários bancos de dados em um cluster do ElastiCache que tem o modo cluster ativado.
Se você restaurar um arquivo rdb que contém vários bancos de dados em um cluster do ElastiCache com o modo de cluster ativado, o seguinte erro será exibido:
“Restore from snapshot failed for node group 0001 in replication group test. To restore a snapshot in cluster mode, all keys in the RDB file should reside in DB 0. Snapshot ID: arn:aws:s3:::example-bucket/multidb.rdb”
Para verificar a causa da falha na restauração, revise seus eventos do ElastiCache.
Para resolver esse erro, conclua as seguintes etapas:
- Certifique-se de que todas as chaves sejam migradas para um único banco de dados. Para obter mais informações, consulte Migrate no site do Redis.
Observação: se o banco de dados de origem estiver localizado no ElastiCache Redis, o comando migrate não será aceito. Para contornar esse problema, use outras ferramentas do Redis, como o RIOT. Para obter mais informações, consulte riot no site do Redis. - Crie um backup local do seu banco de dados Redis.
- Faça o upload do backup para o Amazon S3.
- Continue restaurando em um cluster do ElastiCache (modo de cluster ativado).

Conteúdo relevante
- feita há um mêslg...
- Resposta aceitafeita há 2 meseslg...
- feita há 10 diaslg...
- feita há 4 meseslg...
- AWS OFICIALAtualizada há um mês
- AWS OFICIALAtualizada há um ano
- AWS OFICIALAtualizada há um ano