

# 자습서: AWS CLI을 사용하여 DB 클러스터 스냅샷에서 DB 클러스터 복원
<a name="tut-restore-cluster.CLI"></a>

이 자습서에서는 AWS CLI를 사용하여 DB 클러스터 스냅샷에서 DB 클러스터를 복원합니다. AWS CLI를 사용하여 스냅샷에서 DB 클러스터를 복원하는 데는 두 단계가 있습니다.

1. [restore-db-cluster-from-snapshot](https://docs.aws.amazon.com/cli/latest/reference/rds/restore-db-cluster-from-snapshot.html) 명령을 사용한 [DB 클러스터 복원](#tut-restore-cluster.CLI.restore)

1. [create-db-instance](https://docs.aws.amazon.com/cli/latest/reference/rds/create-db-instance.html) 명령을 사용한 [기본(라이터) DB 인스턴스 생성](#tut-restore-cluster.CLI.create)

## DB 클러스터 복원
<a name="tut-restore-cluster.CLI.restore"></a>

`restore-db-cluster-from-snapshot` 명령을 사용합니다. 다음 옵션이 필요합니다.
+ `--db-cluster-identifier` - 복원된 DB 클러스터의 이름입니다.
+ `--snapshot-identifier` - 복원하는 데 사용되는 스냅샷의 이름입니다.
+ `--engine` - 복원된 DB 클러스터의 데이터베이스 엔진입니다. 소스 DB 클러스터의 데이터베이스 엔진과 호환되어야 합니다.

  선택할 수 있는 항목은 다음과 같습니다.
  + `aurora-mysql` – Aurora MySQL 5.7 and 8.0 호환.
  + `aurora-postgresql` – Aurora PostgreSQL과 호환됩니다.

  이 예제에서는 `aurora-mysql`을 사용합니다.
+ `--engine-version` - 복원된 DB 클러스터의 이름. 이 예에서는 MySQL-8.0 호환 버전을 사용합니다.

다음 예에서는 이라는 DB 클러스터 스냅샷에서 명명된 `my-new-80-cluster` Aurora MySQL 8.0 호환 DB 클러스터를 복원합니다.

**DB 클러스터를 복원하려면**
+ 다음 명령 중 하나를 사용합니다.

  대상 LinuxmacOS, 또는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
  ```

  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
  ```

다음과 유사하게 출력됩니다.

```
{
    "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": []
    }
}
```

## 기본(라이터) DB 인스턴스 생성
<a name="tut-restore-cluster.CLI.create"></a>

기본(라이터) DB 인스턴스를 만들려면 `create-db-instance` 명령을 사용합니다. 다음 옵션이 필요합니다.
+ `--db-cluster-identifier` - 복원된 DB 클러스터의 이름.
+ `--db-instance-identifier` - 기본 인스턴스의 이름.
+ `--db-instance-class` - 기본 인스턴스에 사용할 DB 인스턴스 클래스의 이름입니다. 이 예제에서는 `db.t3.medium`을 사용합니다.
**참고**  
T DB 인스턴스 클래스는 개발 및 테스트 서버 또는 기타 비프로덕션 서버에만 사용하는 것이 좋습니다. T 인스턴스 클래스에 대한 자세한 내용은 [DB 인스턴스 클래스 유형](Concepts.DBInstanceClass.Types.md) 섹션을 참조하세요.
+ `--engine` - 프라이머리 DB 인스턴스의 데이터베이스 엔진입니다. 복원된 DB 클러스터에서 사용하는 것과 동일한 데이터베이스 엔진이어야 합니다.

  선택할 수 있는 항목은 다음과 같습니다.
  + `aurora-mysql` – Aurora MySQL 5.7 and 8.0 호환.
  + `aurora-postgresql` – Aurora PostgreSQL과 호환됩니다.

  이 예제에서는 `aurora-mysql`을 사용합니다.

다음 예제에서는 `my-new-80-cluster-instance`라는 이름의 복원된 Aurora MySQL 8.0 호환 DB 클러스터에 이름이 `my-new-80-cluster`라고 지정된 기본(라이터) DB 인스턴스를 생성합니다

**기본(라이터) DB 인스턴스를 생성하려면**
+ 다음 명령 중 하나를 사용합니다.

  대상 LinuxmacOS, 또는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
  ```

  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
  ```

다음과 유사하게 출력됩니다.

```
{
    "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": []
    }
}
```