DB スナップショットからの復元 - Amazon Relational Database Service

DB スナップショットからの復元

このセクションでは、DB スナップショットを復元する方法を説明します。

Amazon RDS は DB インスタンスのストレージボリュームのスナップショットを作成し、個々のデータベースだけではなく、その DB インスタンス全体をバックアップします。DB スナップショットからの復元で、新しい DB インスタンスを作成できます。復元の元となる DB スナップショットの名前を指定し、復元によって作成される新しい DB インスタンスの名前を指定します。DB スナップショットから既存の DB インスタンスに復元することはできません。復元すると新しい DB インスタンスが作成されます。

ステータスが available になると、復元された DB インスタンスを使用できます。DB インスタンスはバックグラウンドでデータをロードし続けます。これは遅延ロードと呼ばれています。

まだロードされていないデータにアクセスする場合、DB インスタンスはリクエストされたデータを Amazon S3 から即座にダウンロードし、残りのデータをバックグラウンドでロードし続けます。詳細については、「Amazon EBS スナップショット」を参照してください。

クイックアクセスが必要なテーブルに対する遅延ロードの影響を軽減するには、SELECT * など、テーブル全体をスキャンするようなオペレーションを実行します。これにより、Amazon RDS はバックアップされたテーブルデータをすべて S3 からダウンロードできます。

DB インスタンスを復元し、出典 DB スナップショットとは異なるストレージタイプを使用できます。この場合、新しいストレージタイプにデータを移行するための追加作業が必要になるため、復元処理が遅くなります。マグネティックストレージに復元するか、マグネティックストレージから復元する場合、移行プロセスは最も低速になります。これは、マグネティックストレージにはプロビジョンド IOPS または汎用 (SSD) ストレージの IOPS 機能がないためです。

AWS CloudFormationを使用して、DB インスタンスのスナップショットから DB インスタンスを復元できます。詳細については、AWS CloudFormationユーザーガイドAWS::RDS::DBInstance を参照してください。

注記

共有され暗号化された DB スナップショットから、DB インスタンスを復元することはできません。代わりに、DB スナップショットのコピーを作成し、そのコピーから DB インスタンスを復元できます。詳細については、「DB スナップショットのコピー」を参照してください。

RDS 延長サポートバージョンで DB インスタンスを復元する方法については、「Amazon RDS 延長サポートでの DB インスタンスまたはマルチ AZ DB クラスターの復元」を参照してください。

パラメータグループに関する考慮事項

復元された DB インスタンスを適切なパラメータグループと関連付けることができるように、作成する DB スナップショットの DB パラメータグループは保持しておくことをお勧めします。

別のパラメータグループを選択しない限り、デフォルトの DB パラメータグループが、復元されたインスタンスに関連付けられます。デフォルトのパラメータグループでは、カスタムのパラメータ設定は使用できません。

パラメータグループは、DB インスタンスを復元する際に指定できます。

DB パラメータグループの詳細については、「「パラメータグループを使用する」 」を参照してください。

セキュリティグループに関する考慮事項

DB インスタンスを復元すると、仮想プライベートクラウド (VPC)、DB サブネットグループ、および VPC セキュリティグループはデフォルトのものが、(それらに別のものを選択しない限り) 復元されたインスタンスに関連付けられます。

  • Amazon RDS コンソールを使用している場合は、カスタムの VPC セキュリティグループを指定してインスタンスに関連付けるか、新しい VPC セキュリティグループを作成できます。

  • AWS CLI を使用している場合、restore-db-instance-from-db-snapshot コマンドで --vpc-security-group-ids オプションを指定することにより、カスタムの VPC セキュリティグループを指定して、それをインスタンスに関連付けることができます。

  • Amazon RDS API を使用している場合、VpcSecurityGroupIds.VpcSecurityGroupId.N パラメータを RestoreDBInstanceFromDBSnapshot アクションに含むことができます。

復元が完了し、新しい DB インスタンスが使用可能になり次第、その DB インスタンスを変更して VPC 設定を変更することもできます。詳しくは、「Amazon RDS DB インスタンスを変更する」を参照してください。

オプショングループに関する考慮事項

DB インスタンスを復元すると、多くの場合、デフォルトの DB オプショングループが復元された DB インスタンスに関連付けられます。

この例外となるのは、ソース DB インスタンスが、永続的もしくは不変のオプションを含むオプショングループに関連付けられている場合です。例えば、ソース DB インスタンスで Oracle TDE (Transparent Data Encryption ) が使用されている場合、復元された DB インスタンスでは、TDE オプションを含むオプショングループを使用する必要があります。

DB インスタンスを異なる VPC に復元する場合は、以下のいずれかの操作を実行して、そのインスタンスに DB オプショングループを割り当てる必要があります。

  • その VPC グループのデフォルトのオプショングループを、復元したインスタンスに割り当てる。

  • VPC にリンクされているオプショングループを、復元したインスタンスに割り当てる。

  • 新しいオプショングループを作成し、DB インスタンスに割り当てます。Oracle TDE などの永続的または不変のオプションを使用する場合は、その永続的または不変のオプションを含む新しいオプショングループを作成する必要があります。

DB オプショングループの詳細については、「オプショングループを使用する」を参照してください。

リソースへのタグ付けに関する考慮事項

DB スナップショットから DB インスタンスが復元されると、RDS は新しいタグが指定されているかどうかを確認します。新しいタグが指定されている場合、そのタグは復元された DB インスタンスに追加されます。新しいタグがない場合、RDS は、スナップショットの作成時にソース DB インスタンスから復元された DB インスタンスにタグを追加します。

詳細については、「DB インスタンススナップショットへのタグのコピー」を参照してください。

Db2 に関する考慮事項

BYOL モデルでは、RDS for Db2 DB インスタンスを、IBM Site ID と IBM Customer ID を含むカスタムパラメータグループに関連付ける必要があります。そうしないと、スナップショットから DB インスタンスを復元しようとすると失敗します。詳細については、自分のライセンスを使用するおよびrdsadmin.restore_databaseを参照してください。

Microsoft SQL Server に関する考慮事項

RDS for Microsoft SQL Server DB スナップショットを新しいインスタンスに復元すると、スナップショットと同じエディションに常に復元できるようになります。場合によっては、DB インスタンスのエディションを変更することもできます。エディションを変更する場合の制限は次のとおりです。

  • DB スナップショットでは、新しいエディション用に十分なストレージを割り当てる必要があります。

  • 次のエディションの変更以外はサポートされていません。

    • Standard Edition から Enterprise Edition

    • Web Edition から Standard Edition または Enterprise Edition

    • Express Edition から Web Edition、Standard Edition、Enterprise Edition のいずれか

スナップショットを復元して、サポートされていない新しいエディションに変更する場合は、ネイティブバックアップおよび復元機能を試すことができます。SQL Server は、データベース上で有効にした SQL Server の機能に基づき、データベースが新しいエディションと互換性があるかどうかを検証します。詳しくは、「ネイティブバックアップと復元を使用した SQL Server データベースのインポートとエクスポート」を参照してください。

Oracle データベースに関する考慮事項

Oracle データベースを DB スナップショットから復元する場合、次の点に注意します。

  • DB スナップショットを復元する前に、それを新しい Oracle データベースリリースにアップグレードできます。詳細については、「Oracle DB スナップショットのアップグレード」を参照してください。

  • シングルテナント設定を使用する CDB インスタンスのスナップショットを復元する場合は、PDB 名を変更できます。CDB インスタンスがマルチテナント設定を使用している場合は PDB 名を変更できません。詳細については、「CDB のバックアップと復元」を参照してください。

  • CDB 名は変更できません。これは常に RDSCDB です。この CDB 名は、すべての CDB インスタンスで同じです。

  • DB スナップショット内のテナントデータベースを直接操作することはできません。マルチテナント設定を使用する CDB インスタンスのスナップショットを復元する場合は、そのテナントデータベースをすべて復元します。describe-db-snapshot-tenant-databases を使用すると、復元する前に DB スナップショット内のテナントデータベースを点検できます。

  • Oracle GoldenGate を使用している場合、必ず compatible パラメータと同時にパラメータグループを保持します。DB スナップショットから DB インスタンスを復元するときは、等しいか大きい compatible 値を使用したパラメータグループを指定します。

  • DB スナップショットを復元するときに、データベースの名前を変更することもできます。オンライン REDO ログの合計サイズが 20GB を超える場合、RDS はオンライン REDO ログのサイズをデフォルト設定の 512MB (4 x 128MB) にリセットすることがあります。サイズが小さいほど、妥当な時間内に復元オペレーションを完了できます。後でオンライン REDO ログを再作成し、サイズを変更できます。

スナップショットからの復元

AWS Management Console、AWS CLI、または RDS API を使用して、DB のスナップショットから DB インスタンスを復元できます。

注記

DB インスタンスを復元するときに、ストレージ容量を減らすことはできません。ストレージ割り当てを増やす場合は、少なくとも 10 パーセント単位で増やす必要があります。10 パーセントに満たない単位で増やそうとすると、エラーになります。RDS for SQL Server DB インスタンスを復元するときに、割り当てストレージを増やすことはできません。

DB スナップショットから DB インスタンスを復元するには
  1. AWS Management Console にサインインし、Amazon RDS コンソール (https://console.aws.amazon.com/rds/) を開きます。

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

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

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

  5. [Restore snapshot] (スナップショットの復元) ページで、[DB instance identifier] (DB インスタンス識別子) に、復元された DB インスタンスの名前を入力します。

  6. 割り当てられたストレージサイズなど、その他の設定を指定します。

    各設定の詳細については、「DB インスタンスの設定」を参照してください。

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

DB スナップショットから DB インスタンスを復元するには、AWS CLI の DBスナップショットからDBインスタンスを復元する コマンドを使用します。

この例では、「mydbsnapshot」という以前作成した DB スナップショットから復元します。mynewdbinstance という名前の新しい DB インスタンスに復元します。この例では、割り当てられたストレージサイズも設定しています。

他の設定を指定できます。各設定の詳細については、「DB インスタンスの設定」を参照してください。

Linux、macOS、Unix の場合:

aws rds restore-db-instance-from-db-snapshot \ --db-instance-identifier mynewdbinstance \ --db-snapshot-identifier mydbsnapshot \ --allocated-storage 100

Windows の場合:

aws rds restore-db-instance-from-db-snapshot ^ --db-instance-identifier mynewdbinstance ^ --db-snapshot-identifier mydbsnapshot ^ --allocated-storage 100

このコマンドは、次のような出力を返します:

DBINSTANCE mynewdbinstance db.t3.small MySQL 50 sa creating 3 n 8.0.28 general-public-license

DB スナップショットから DB インスタンスを復元するには、以下のパラメータを指定して Amazon RDS API 関数 RestoreDBInstanceFromDBSnapshot を呼び出します。

  • DBInstanceIdentifier

  • DBSnapshotIdentifier