¿Cómo puedo copiar y restaurar una instantánea de Amazon Redshift sin servidor en otra cuenta de AWS?

6 minutos de lectura
0

Deseo copiar y restaurar una instantánea de Amazon Redshift sin servidor de una cuenta de AWS a otra. ¿Cómo puedo hacerlo?

Resolución

Haga una copia y restáurela desde una cuenta de AWS a otra mediante la consola de Amazon Redshift o la interfaz de la línea de comandos de AWS (AWS CLI).

Antes de comenzar, tenga en cuenta lo siguiente:

  • Puede restaurar una instantánea en un espacio de nombresde Amazon Redshift sin servidor únicamente si este se encuentra en estado Disponible y está asociado con un grupo de trabajo disponible.
  • La restauración de un espacio de nombres de Amazon Redshift sin servidor a partir de una instantánea sustituye todas las bases de datos del espacio de nombres con las de la instantánea.
  • Durante la restauración, Amazon Redshift sin servidor no estará disponible.

Copiar y restaurar mediante la consola de Amazon Redshift

Convertir un punto de recuperación de Amazon Redshift sin servidor en una instantánea de la cuenta de origen

  1. Abra la consola de Amazon Redshift.
  2. En el panel de navegación, elija Redshift Serverless (Redshift sin servidor) y, luego, elija el Data backup (Copia de seguridad de datos).
  3. Bajo Recovery points (Puntos de recuperación), elija la Creation time (Hora de creación) del punto que desea convertir en una instantánea.
  4. Elija Create snapshot from recovery point (Crear instantánea desde el punto de recuperación).
  5. Indique unSnapshot identifier (Identificador de instantánea) y un retention period (período de retención).
  6. Elija Create (Crear).

Compartir la instantánea en la cuenta de origen con otra cuenta de AWS

  1. Abra la consola de Amazon Redshift.
  2. En el panel de navegación, elija Redshift Serverless (Redshift sin servidor) y, luego, elija el Data backup (Copia de seguridad de datos).
  3. Elija la instantánea que había creado anteriormente.
  4. ElijaActions, Manage access (Acciones, Gestionar acceso).
  5. Elija Add AWS account (Agregar cuenta de AWS), que se encuentra en Provide access to serverless accounts (Proporcionar acceso a cuentas sin servidor) e introduzca un ID de cuenta de AWS (destino).
  6. Seleccione Save changes (Guardar cambios).

Restaurar la instantánea en un espacio de nombres de Amazon Redshift sin servidor en la cuenta de destino

  1. Abra la consola de Amazon Redshift.
  2. En el panel de navegación, elija Redshift Serverless (Redshift sin servidor) y, luego, elija el Data backup (Copia de seguridad de datos).
  3. Seleccione la instantánea compartida con el ID de la cuenta de AWS que desea restaurar. Únicamente puede restaurar una instantánea a la vez.
  4. Elija Actions, Restore to serverless namespace (Acciones, Restaurar a un espacio de nombres sin servidor).
  5. Elige un espacio de nombres disponible para llevar a cabo la restauración. Puede restaurar solamente a los espacios de nombres que tengan el estadoDisponible.
  6. Seleccione Restore (Restaurar).

Copiar y restaurar mediante la CLI de AWS

Nota: Si recibe errores mientras ejecuta los comandos de AWS CLI, asegúrese de que está utilizando la versión más reciente de dicha interfaz.

Convertir un punto de recuperación de Amazon Redshift sin servidor en una instantánea de la cuenta de origen

1.    Use el comando list-recovery-points para obtener una lista de las instantáneas que se hayan creado después de una hora de inicio (start-time). Ejecute el siguiente comando y sustituya namespacename por su espacio de nombres, us-west-2 por su región de AWS y starttime por la hora de inicio del punto de recuperación, expresada en UTC:

aws redshift-serverless list-recovery-points --namespace-name <namespacename> --region <region name> --start-time <starttime>

En el siguiente ejemplo, el clúster de Redshift sin servidor se encuentra en la región Oeste de EE. UU. (Oregón) con un espacio de nombres predeterminado y, como hora de inicio, 2022-09-06T 07:10 UTC:

aws redshift-serverless list-recovery-points --namespace-name default --region us-west-2 --start-time 2022-09-06T07:10

2.    Use el comando convert-recovery-point-to-snapshot para crear una instantánea y definir un período de retención. Ejecute el siguiente comando y reemplace RecoveryPointID con el resultado del identificador del punto de recuperación del primer paso, days con el número de días que se debe retener la instantánea, snapshot name con el nombre de la instantánea y, por último, us-west-2 con su región de AWS:

aws redshift-serverless convert-recovery-point-to-snapshot --recovery-point-id <recoveryPointId> --retention-period <days> --snapshot-name <snapshot name> --region <region name>

En el siguiente ejemplo, la instantánea se llama snapshot01, posee un período de retención de tres días y se encuentra en la región Oeste de EE. UU. (Oregón).

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 el comando get-snapshot para confirmar que se ha creado la instantánea. Ejecute el siguiente comando y sustituya el snapshot name con el nombre de la instantánea:

aws redshift-serverless get-snapshot --snapshot-name <snapshot name>

Compartir la instantánea en la cuenta de origen con otra cuenta de AWS

Use el comando put-resource-policy para conceder a otra cuenta de AWS acceso a la instantánea. Ejecute el siguiente comando y sustituya destination account ID con el ID de la cuenta de AWS de destino, y snapshot arn con el ARN de la instantánea:

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>

En el siguiente ejemplo, se concede acceso al ARN de la instantánea que tiene el número de cuenta 123456789012:

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 la instantánea en un espacio de nombres de Amazon Redshift sin servidor en la cuenta de destino

1.    Use el comando list-snapshots para mostrar una lista de todas las instantáneas que hay en su región de AWS. Ejecute el siguiente comando y sustituya us-west-2 por su región de AWS:

aws redshift-serverless list-snapshots  --region us-west-2

2.    Utilice el comando restore-from-snapshot para restaurar la instantánea a un Amazon Redshift sin servidor. Ejecute el siguiente comando y sustituya snapshot name por el nombre de la instantánea, workgroup name por el nombre del grupo de trabajo y snapshot arn por el ARN de la instantánea del comando anterior:

aws redshift-serverless  restore-from-snapshot --namespace-name <namespace name > --workgroup-name <workgroup name> --snapshot-arn <snapshot arn>

En el siguiente ejemplo, el ID de cuenta 112233445566 tiene un estado Available (Disponible) en Amazon Redshift sin servidor, con el nombre restore (restauración) para el espacio de nombres y el nombre restore (restauración) para el grupo de trabajo:

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

OFICIAL DE AWS
OFICIAL DE AWSActualizada hace 2 años