チュートリアル: DB クラスターのスナップショットから Amazon Aurora DB クラスターを復元する - Amazon Aurora

チュートリアル: DB クラスターのスナップショットから Amazon Aurora DB クラスターを復元する

Amazon Aurora を使用した作業でよくあるシナリオとして、ときどき DB インスタンスで作業をするが常に必要なわけではない、ということがあります。例えば、四半期ごとにのみ実行するレポートのデータを保持するために DB クラスターを使用する場合があります。このようなシナリオで経費を節約する 1 つの方法として、レポートが完了した後、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 にサインインし、Amazon RDS コンソール (https://console.aws.amazon.com/rds/) を開きます。

  2. ナビゲーションペインで、[Snapshots] を選択します。

  3. 復元の元にする DB クラスタースナップショットを選択します。

  4. [アクション][スナップショットを復元] の順に選択します。

    RDS コンソールのアクションメニューのスナップショットの復元オプション

    [Restore snapshot (スナップショットの復元)] ページが表示されます。

  5. [DB instance settings] (DB インスタンスの設定) で、次のようにします。

    1. DB エンジンのデフォルト設定を使用します。

    2. 使用可能なバージョンについては、Aurora MySQL 3.02.0 (MySQL 8.0.23 と互換) など、MySQL—8.0 と互換性があるバージョンを選択します。

    スナップショットの復元ページ
  6. [Settings] (設定) の [DB cluster identifier] (DB クラスター識別子) に、復元する DB クラスターに使用する名前を入力します (例: my-80-cluster)。

  7. [Connectivity] (接続) では、次のデフォルトの設定を使用します。

    • Virtual Private Cloud (VPC)

    • DB サブネットグループ

    • パブリックアクセス

    • VPC セキュリティグループ (ファイアウォール)

  8. DB インスタンスクラスを選択します。

    このチュートリアルでは、[Burstable classes (includes t classes)] (バースト可能クラス (t クラスを含む)) を選択してから、[db.t3.medium] を選択します。

    注記

    T DB インスタンスクラスは、開発およびテストサーバー、またはその他の本稼働以外のサーバーにのみ使用することをお勧めします。T インスタンスクラスの詳細については、「DB インスタンスクラスタイプ」を参照してください。

    インスタンス設定
  9. [Database authentication] (データベース認証) では、デフォルトの設定を使用します。

  10. [Encryption] (暗号化) では、デフォルトの設定を使用します。

    スナップショットのソース DB クラスターが暗号化されている場合、復元される DB クラスターも暗号化されます。暗号化を解除することはできません。

  11. ページの下部の [Additional configuration] (追加設定) を開きます。

    追加設定
  12. 以下の選択を行います。

    1. このチュートリアルでは、DB クラスターパラメーターグループのデフォルト値を使用します。

    2. このチュートリアルでは、DB パラメーターグループのデフォルト値を使用します。

    3. [Log exports] (ログのエクスポート) で、すべてのチェックボックスをオンにします。

    4. [Deletion protection] (削除保護) で、[Enable deletion protection] (削除保護の有効化) チェックボックスをオンにします。

  13. DB インスタンスの復元 を選択します。

[Databases] (データベース) ページには、ステータスが Creating である復元された DB クラスターが表示されます。

[Database] (データベース) ページの復元された DB クラスター

プライマリ DB インスタンスは、作成中はリーダーインスタンスとして表示されますが、作成後はライターインスタンスになります。

AWS CLI を使用して DB クラスターのスナップショットから DB クラスターを復元する

AWS CLI を使用してスナップショットから DB クラスターを復元するには、次の 2 つのステップを実行します。

DB クラスターの復元

restore-db-cluster-from-snapshot コマンドを使用します。以下のような必須オプションがあります。

  • --db-cluster-identifier - 復元された DB クラスターの名前。

  • --snapshot-identifier - 復元の元となるスナップショットの名前。

  • --engine - 復元された DB クラスターのデータベースエンジン。復元するクラスターは、ソース DB クラスターのデータベースエンジンと互換性がある必要があります。

    選択肢は次のとおりです。

    • aurora-mysql – Aurora MySQL 5.7 および 8.0 互換。

    • aurora-postgresql – Aurora PostgreSQL 互換。

    この例では、aurora-mysql を使用します。

  • --engine-version - 復元された DB クラスターのバージョン。この例では、MySQL-8.0 と互換性があるバージョンを使用します。

次の例では、my-57-cluster-snapshot という名前の 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 インスタンスの名前。

  • --db-instance-class - プライマリ DB インスタンスのインスタンスクラス。この例では、db.t3.medium を使用します。

    注記

    T DB インスタンスクラスは、開発およびテストサーバー、またはその他の本稼働以外のサーバーにのみ使用することをお勧めします。T インスタンスクラスの詳細については、「DB インスタンスクラスタイプ」を参照してください。

  • --engine— プライマリ DB インスタンスのデータベースエンジン。データベースエンジンは、復元された DB クラスターが使用するエンジンと同じである必要があります。

    選択肢は次のとおりです。

    • aurora-mysql – Aurora MySQL 5.7 および 8.0 互換。

    • aurora-postgresql – Aurora PostgreSQL 互換。

    この例では、aurora-mysql を使用します。

次の例では、my-new-80-cluster という名前の復元された Aurora MySQL 8.0 互換 DB クラスターで my-new-80-cluster-instance という名前のプライマリ (ライター) 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": [] } }