Tutorial: Restaurar un clúster de base de datos de Amazon Aurora desde una instantánea de clúster de base de datos - Amazon Aurora

Tutorial: Restaurar un clúster de base de datos de Amazon Aurora desde una instantánea de clúster de base de datos

Una situación habitual con Amazon Aurora es tener una instancia de base de datos con la que se trabaja de vez en cuando pero que no se necesita todo el tiempo. Por ejemplo, puede usar un clúster de base de datos para almacenar los datos de un informe que se ejecuta solo trimestralmente. Una forma de ahorrar dinero en este caso es tomar una instantánea de clúster de base de datos una vez completado el informe. A continuación, elimine el clúster de base de datos y restáurelo cuando necesite cargar datos nuevos y ejecutar el informe en el siguiente trimestre.

Al restaurar un clúster de base de datos, debe indicar el nombre de la instantánea del clúster de base de datos desde la que se restaura. A continuación, proporcione un nombre para el nuevo clúster de base de datos que se cree a partir de la restauración. Para obtener información detallada sobre cómo restaurar clústeres de base de datos desde instantáneas, consulte Restauración de una instantánea de clúster de base de datos.

En este tutorial, también actualizaremos el clúster de base de datos restaurado de Aurora MySQL versión 2 (compatible con MySQL 5.7) a la versión 3 de Aurora MySQL (compatible con MySQL 8.0).

Restauración de un clúster de base de datos a partir de una instantánea de clúster de base de datos mediante la consola de Amazon RDS

Al restaurar un clúster de base de datos desde una instantánea mediante la AWS Management Console, también se crea la instancia de base de datos principal (escritor).

nota

Mientras se crea la instancia de base de datos principal, aparece como instancia de lector, pero tras su creación es una instancia de escritor.

Para restaurar un clúster de base de datos desde una instantánea de clúster de base de datos
  1. Inicie sesión en la AWS Management Console y abra la consola de Amazon RDS en https://console.aws.amazon.com/rds/.

  2. En el panel de navegación, elija Snapshots (Instantáneas).

  3. Elija la instantánea de clúster de base de datos desde la que desea restaurar.

  4. En Actions (Acciones), elija Restore snapshot (Restaurar instantánea).

    Opción Restore snapshot (Restaurar instantánea) en el menú Actions (Acciones) de la consola de RDS

    Aparecerá la página Restore snapshot (Restaurar instantánea).

  5. En DB instance settings (Configuración de la instancia de base de datos), realice lo siguiente:

    1. Usar la configuración predeterminada para DB engine (Motor de base de datos).

    2. Para Available versions (Versiones disponibles), elija una versión compatible con MySQL 8.0, como Aurora MySQL 3.02.0 (compatible con MySQL 8.0.23).

    Restauración de la página de instantáneas
  6. En Settings (Configuración), en DB instance identifier (Identificador de instancias de bases de datos), especifique el nombre único que quiere usar para la instancia de base de datos restaurada; por ejemplo, my-80-cluster.

  7. En Connectivity (Conectividad), utilice la configuración predeterminada en los siguientes casos:

    • Virtual Private Cloud (VPC) (Nube virtual privada [VPC])

    • DB subnet group (Grupo de subredes de base de datos)

    • Public access (Acceso público)

    • VPC security group (firewall) [Grupo de seguridad de VPC (firewall)]

  8. Elija la clase de instancia de base de datos.

    En este tutorial, elija Burstable classes (includes t classes) [Clases por ráfagas (incluye clases t)] y, a continuación, elija db.t3.medium.

    nota

    Recomendamos que las clases de instancia de base de datos T se utilicen solo para los servidores de desarrollo y de pruebas, o para otros servidores que no se utilicen para la producción. Para obtener más detalles sobre las clases de instancia T, consulte Tipos de clase de instancia de base de datos.

    Configuración de instancias
  9. En Database authentication (Autenticación de bases de datos), utilice la configuración predeterminada.

  10. En Encryption (Cifrado), use la configuración predeterminada.

    Si el clúster de base de datos de origen de la instantánea se cifró, el clúster de base de datos restaurado también se cifra. No puede hacerlo sin cifrar.

  11. Amplíe Additional configuration (Configuración adicional) en la parte inferior de la página.

    Configuración adicional
  12. Realice los siguientes cambios:

    1. En este tutorial, utilice el valor predeterminado para DB cluster parameter group (Grupo de parámetros del clúster de base de datos).

    2. En este tutorial, utilice el valor predeterminado para DB parameter group (Grupo de parámetros de base de datos).

    3. En Log exports (Exportaciones de registros), seleccione todas las casillas de verificación.

    4. En Deletion protection (Protección contra eliminación), marque la casilla de verificación Enable deletion protection (Habilitar la protección contra eliminación).

  13. Elija Restore DB Instance (Restaurar instancia de base de datos).

La página Databases (Bases de datos) muestra la instancia de base de datos restaurada, con el estado Creating.

Clúster de base de datos restaurada en la página Database (Base de datos)

Mientras se crea la instancia de base de datos principal, aparece como instancia de lector, pero tras su creación es una instancia de escritor.

Restauración de un clúster de base de datos a partir de una instantánea de clúster de base de datos mediante AWS CLI

Restauración de un clúster de base de datos a partir de una instantánea de clúster de base de datos mediante AWS CLI

Restauración de un clúster de bases de datos

Utilice el comando restore-db-cluster-from-snapshot. Se requieren las siguientes opciones:

  • --db-cluster-identifier: nombre del clúster de base de datos restaurado.

  • --snapshot-identifier: nombre de la instantánea de base de datos desde la que se va a restaurar.

  • --engine: motor de base de datos del clúster de base de datos restaurado. Debe ser compatible con el motor de base de datos del clúster de base de datos de origen.

    Las opciones son las siguientes:

    • aurora-mysql: Aurora compatible con MySQL 5.7 y 8.0

    • aurora-postgresql: Aurora compatible con PostgreSQL.

    En este ejemplo, usaremos aurora-mysql.

  • --engine-version: versión del clúster de base de datos restaurado. En este ejemplo, utilizamos una versión compatible con MySQL 8.0.

El siguiente ejemplo restaura un clúster de base de datos de Aurora compatible con MySQL 8.0 llamado my-new-80-cluster desde una instantánea de clúster de base de datos denominada my-57-cluster-snapshot.

Para restaurar un clúster de bases de datos
  • Utilice uno de los siguientes comandos.

    Para Linux, macOS, o Unix:

    aws rds restore-db-cluster-from-snapshot \ --db-cluster-identifier my-new-80-cluster \ --snapshot-identifier my-57-cluster-snapshot \ --engine aurora-mysql \ --engine-version 8.0.mysql_aurora.3.02.0

    En Windows:

    aws rds restore-db-cluster-from-snapshot ^ --db-cluster-identifier my-new-80-cluster ^ --snapshot-identifier my-57-cluster-snapshot ^ --engine aurora-mysql ^ --engine-version 8.0.mysql_aurora.3.02.0

La salida se parece a la siguiente.

{ "DBCluster": { "AllocatedStorage": 1, "AvailabilityZones": [ "eu-central-1b", "eu-central-1c", "eu-central-1a" ], "BackupRetentionPeriod": 14, "DatabaseName": "", "DBClusterIdentifier": "my-new-80-cluster", "DBClusterParameterGroup": "default.aurora-mysql8.0", "DBSubnetGroup": "default", "Status": "creating", "Endpoint": "my-new-80-cluster.cluster-############.eu-central-1.rds.amazonaws.com", "ReaderEndpoint": "my-new-80-cluster.cluster-ro-############.eu-central-1.rds.amazonaws.com", "MultiAZ": false, "Engine": "aurora-mysql", "EngineVersion": "8.0.mysql_aurora.3.02.0", "Port": 3306, "MasterUsername": "admin", "PreferredBackupWindow": "01:55-02:25", "PreferredMaintenanceWindow": "thu:21:14-thu:21:44", "ReadReplicaIdentifiers": [], "DBClusterMembers": [], "VpcSecurityGroups": [ { "VpcSecurityGroupId": "sg-########", "Status": "active" } ], "HostedZoneId": "Z1RLNU0EXAMPLE", "StorageEncrypted": true, "KmsKeyId": "arn:aws:kms:eu-central-1:123456789012:key/#######-5ccc-49cc-8aaa-############", "DbClusterResourceId": "cluster-ZZ12345678ITSJUSTANEXAMPLE", "DBClusterArn": "arn:aws:rds:eu-central-1:123456789012:cluster:my-new-80-cluster", "AssociatedRoles": [], "IAMDatabaseAuthenticationEnabled": false, "ClusterCreateTime": "2022-07-05T20:45:42.171000+00:00", "EngineMode": "provisioned", "DeletionProtection": false, "HttpEndpointEnabled": false, "CopyTagsToSnapshot": false, "CrossAccountClone": false, "DomainMemberships": [], "TagList": [] } }

Creación de la instancia de base de datos principal (escritora)

Para crear la instancia de base de datos principal (escritora), utilice el comando create-db-instance. Se requieren las siguientes opciones:

  • --db-cluster-identifier: nombre del clúster de base de datos restaurado.

  • --db-instance-identifier: nombre de la instancia de base de datos principal.

  • --db-instance-class: clase de instancia de la instancia de base de datos principal. En este ejemplo, usaremos db.t3.medium.

    nota

    Recomendamos que las clases de instancia de base de datos T se utilicen solo para los servidores de desarrollo y de pruebas, o para otros servidores que no se utilicen para la producción. Para obtener más detalles sobre las clases de instancia T, consulte Tipos de clase de instancia de base de datos.

  • --engine: motor de base de datos de la instancia de base de datos principal. Debe ser el mismo motor de base de datos que utiliza el clúster de base de datos restaurado.

    Las opciones son las siguientes:

    • aurora-mysql: Aurora compatible con MySQL 5.7 y 8.0

    • aurora-postgresql: Aurora compatible con PostgreSQL.

    En este ejemplo, usaremos aurora-mysql.

En el siguiente ejemplo se crea una instancia de base de datos principal (escritora) llamada my-new-80-cluster-instance en el clúster de base de datos de Aurora compatible con MySQL 8.0 denominado my-new-80-cluster.

Para crear la instancia de base de datos principal
  • Utilice uno de los siguientes comandos.

    Para Linux, macOS, o Unix:

    aws rds create-db-instance \ --db-cluster-identifier my-new-80-cluster \ --db-instance-identifier my-new-80-cluster-instance \ --db-instance-class db.t3.medium \ --engine aurora-mysql

    En Windows:

    aws rds create-db-instance ^ --db-cluster-identifier my-new-80-cluster ^ --db-instance-identifier my-new-80-cluster-instance ^ --db-instance-class db.t3.medium ^ --engine aurora-mysql

La salida se parece a la siguiente.

{ "DBInstance": { "DBInstanceIdentifier": "my-new-80-cluster-instance", "DBInstanceClass": "db.t3.medium", "Engine": "aurora-mysql", "DBInstanceStatus": "creating", "MasterUsername": "admin", "AllocatedStorage": 1, "PreferredBackupWindow": "01:55-02:25", "BackupRetentionPeriod": 14, "DBSecurityGroups": [], "VpcSecurityGroups": [ { "VpcSecurityGroupId": "sg-########", "Status": "active" } ], "DBParameterGroups": [ { "DBParameterGroupName": "default.aurora-mysql8.0", "ParameterApplyStatus": "in-sync" } ], "DBSubnetGroup": { "DBSubnetGroupName": "default", "DBSubnetGroupDescription": "default", "VpcId": "vpc-2305ca49", "SubnetGroupStatus": "Complete", "Subnets": [ { "SubnetIdentifier": "subnet-########", "SubnetAvailabilityZone": { "Name": "eu-central-1a" }, "SubnetOutpost": {}, "SubnetStatus": "Active" }, { "SubnetIdentifier": "subnet-########", "SubnetAvailabilityZone": { "Name": "eu-central-1b" }, "SubnetOutpost": {}, "SubnetStatus": "Active" }, { "SubnetIdentifier": "subnet-########", "SubnetAvailabilityZone": { "Name": "eu-central-1c" }, "SubnetOutpost": {}, "SubnetStatus": "Active" } ] }, "PreferredMaintenanceWindow": "sat:02:41-sat:03:11", "PendingModifiedValues": {}, "MultiAZ": false, "EngineVersion": "8.0.mysql_aurora.3.02.0", "AutoMinorVersionUpgrade": true, "ReadReplicaDBInstanceIdentifiers": [], "LicenseModel": "general-public-license", "OptionGroupMemberships": [ { "OptionGroupName": "default:aurora-mysql-8-0", "Status": "in-sync" } ], "PubliclyAccessible": false, "StorageType": "aurora", "DbInstancePort": 0, "DBClusterIdentifier": "my-new-80-cluster", "StorageEncrypted": true, "KmsKeyId": "arn:aws:kms:eu-central-1:534026745191:key/#######-5ccc-49cc-8aaa-############", "DbiResourceId": "db-5C6UT5PU0YETANOTHEREXAMPLE", "CACertificateIdentifier": "rds-ca-2019", "DomainMemberships": [], "CopyTagsToSnapshot": false, "MonitoringInterval": 0, "PromotionTier": 1, "DBInstanceArn": "arn:aws:rds:eu-central-1:123456789012:db:my-new-80-cluster-instance", "IAMDatabaseAuthenticationEnabled": false, "PerformanceInsightsEnabled": false, "DeletionProtection": false, "AssociatedRoles": [], "TagList": [] } }