

# Tutorial: 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
<a name="tut-restore-cluster.CLI"></a>

En este tutorial, restaurará un clúster de base de datos a partir de una instantánea de clúster de base de datos mediante la 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

1. [Restauración de un clúster de bases de datos](#tut-restore-cluster.CLI.restore) utilizando el comando [restore-db-clúster-from-snapshot](https://docs.aws.amazon.com/cli/latest/reference/rds/restore-db-cluster-from-snapshot.html)

1. [Creación de la instancia de base de datos principal (escritora)](#tut-restore-cluster.CLI.create) utilizando el comando [create-db-instance](https://docs.aws.amazon.com/cli/latest/reference/rds/create-db-instance.html)

## Restauración de un clúster de bases de datos
<a name="tut-restore-cluster.CLI.restore"></a>

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)
<a name="tut-restore-cluster.CLI.create"></a>

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](Concepts.DBInstanceClass.Types.md).
+ `--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": []
    }
}
```