자습서: DB 클러스터 스냅샷에서 Amazon Aurora DB 클러스터 복원 - Amazon Aurora

자습서: DB 클러스터 스냅샷에서 Amazon Aurora DB 클러스터 복원

Amazon Aurora로 작업할 때 일반적인 시나리오는 가끔 작업하지만 정규직이 필요하지 않은 DB 인스턴스를 갖는 것입니다. 예를 들어 분기별로만 실행하는 보고서의 데이터를 보관하기 위해 DB 클러스터를 사용할 수 있습니다 이러한 시나리오에서 비용을 절약하는 한 가지 방법은 보고서 작성 후 DB 클러스터의 DB 클러스터 DB 클러스터 DB 클러스터 스냅샷을 생성하는 것입니다. 그런 다음 DB 클러스터를 삭제하고 다음 분기 동안 새 데이터를 업로드하고 보고서를 실행해야 할 때 복원합니다.

DB 클러스터를 복원할 때 복원할 DB 클러스터 스냅샷의 이름을 제공합니다. 그런 다음 복원 작업에서 생성되는 새 DB 클러스터의 이름을 입력하면 됩니다. 스냅샷에서 DB 클러스터를 복원하는 방법에 대한 자세한 내용은 DB 클러스터 스냅샷에서 복원 섹션을 참조하세요.

이 자습서에서는 복원된 DB 클러스터를 Aurora MySQL 버전 2(MySQL 5.7과 호환)에서 Aurora MySQL 버전 3(MySQL 8.0과 호환)으로 업그레이드합니다.

Amazon RDS 콘솔을 사용하여 DB 클러스터 스냅샷에서 DB 클러스터 복원

AWS Management Console을 사용하여 스냅샷에서 DB 클러스터를 복원하는 경우 기본(라이터) DB 인스턴스도 생성됩니다.

참고

기본 DB 인스턴스가 생성되는 동안에는 리더 인스턴스로 표시되지만 생성 후에는 라이터 인스턴스로 표시됩니다.

DB 클러스터 스냅샷에서 DB 클러스터를 복원하는 방법
  1. AWS Management Console에 로그인한 후 https://console.aws.amazon.com/rds/에서 Amazon RDS 콘솔을 엽니다.

  2. 탐색 창에서 [Snapshots]를 선택합니다.

  3. 복원 원본으로 사용할 DB 클러스터 스냅샷을 선택합니다.

  4. 작업에서 스냅샷 복원을 선택합니다.

    
                        RDS 콘솔의 작업(Actions) 메뉴에서 스냅샷 복원 옵션

    스냅샷 복원 페이지가 표시됩니다.

  5. DB 인스턴스 설정에서 다음을 수행합니다.

    1. DB 엔진의 기본 설정을 사용합니다.

    2. 사용 가능한 버전에서 Aurora MySQL 3.02.0(MySQL 8.0.23과 호환)과 같은 MySQL–8.0 호환 버전을 선택합니다.

    
                        스냅샷 복원 페이지
  6. 설정 아래의 DB 클러스터 식별자에서 복원된 DB 클러스터에 사용할 고유 이름(예: my-80-cluster)을 입력합니다.

  7. 연결 아래에서 다음에 대해 기본 설정을 사용합니다.

    • Virtual private cloud(VPC)

    • DB 서브넷 그룹

    • 공개 액세스(Public access)

    • VPC 보안 그룹(방화벽)

  8. DB 인스턴스 클래스(DB instance class)를 선택합니다.

    이 자습서에서는 버스트 가능한 클래스(t 클래스 포함)를 선택한 다음 db.t3.small을 선택합니다.

    참고

    T DB 인스턴스 클래스는 개발 및 테스트 서버 또는 기타 비프로덕션 서버에만 사용하는 것이 좋습니다. T 인스턴스 클래스에 대한 자세한 내용은 DB 인스턴스 클래스 유형 섹션을 참조하세요.

    
                        인스턴스 구성
  9. 에 대한데이터베이스 인증, 기본 설정을 사용합니다.

  10. 암호화에 기본 설정을 사용합니다.

    스냅샷의 원본 DB 클러스터가 암호화된 경우 복원된 DB 클러스터도 암호화됩니다. 암호화되지 않은 상태로 만들 수는 없습니다.

  11. 페이지 하단에서 추가 구성(Additional configuration)을 확장합니다.

    
                        추가 구성
  12. 다음과 같이 변경합니다.

    1. 이 자습서에서는 DB 클러스터 파라미터 그룹을 사용합니다.

    2. 이 자습서에서는 DB 파라미터 그룹을 사용합니다.

    3. 로그 내보내기의 경우 모든 확인란을 선택합니다.

    4. 삭제 방지에서 삭제 방지 활성화 확인란을 선택합니다.

  13. DB 인스턴스 복원을 선택합니다.

데이터베이스 페이지에 복원된 DB 클러스터가 Creating 상태로 표시됩니다.


                데이터베이스 페이지의 복원된 DB 클러스터

기본 DB 인스턴스가 생성되는 동안에는 리더 인스턴스로 표시되지만 생성 후에는 라이터 인스턴스로 표시됩니다.

AWS CLI을 사용하여 DB 클러스터 스냅샷에서 DB 클러스터 복원

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

DB 클러스터 복원

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 클러스터를 복원하려면
  • 다음 명령 중 하나를 사용합니다.

    Linux, macOS, 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 인스턴스 생성

기본(라이터) DB 인스턴스를 만들려면 create-db-instance 명령을 사용합니다. 다음 옵션이 필요합니다.

  • --db-cluster-identifier - 복원된 DB 클러스터의 이름.

  • --db-instance-identifier - 기본 인스턴스의 이름.

  • --db-instance-class - 기본 인스턴스에 사용할 DB 인스턴스 클래스의 이름입니다. 이 예제에서는 db.t3.medium을 사용합니다.

    참고

    T DB 인스턴스 클래스는 개발 및 테스트 서버 또는 기타 비프로덕션 서버에만 사용하는 것이 좋습니다. T 인스턴스 클래스에 대한 자세한 내용은 DB 인스턴스 클래스 유형 섹션을 참조하세요.

  • --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 인스턴스를 생성하려면
  • 다음 명령 중 하나를 사용합니다.

    Linux, macOS, 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": [] } }