メニュー
Amazon Relational Database Service
ユーザーガイド (API Version 2014-10-31)

バックアップの使用

Amazon RDS は、DB インスタンスの自動バックアップを作成および保存します。Amazon RDS は DB インスタンスのストレージボリュームのスナップショットを作成し、個々のデータベースだけではなく、その DB インスタンス全体をバックアップします。

Amazon RDS は、DB インスタンスのバックアップ期間中に DB インスタンスの自動バックアップを作成します。Amazon RDS は、指定したバックアップ保持期間に従って DB インスタンスの自動バックアップを保存します。必要に応じて、バックアップ保持期間内の任意の時点でデータベースを復旧できます。

自動バックアップを行うには、DB インスタンスが ACTIVE 状態になっている必要があります。データベースが別の状態の場合 (STORAGE_FULL など)、自動バックアップが行われません。

DB スナップショットを手動で作成することにより、DB インスタンスを手動でバックアップすることもできます。DB スナップショットの作成について詳しくは、「DB スナップショットの作成」を参照してください。

自動および手動 DB スナップショットのコピー、および手動 DB スナップショットの共有を行うことができます。DB スナップショットのコピーに関する詳細は、「DB スナップショットまたは DB クラスタースナップショットのコピー」を参照してください。DB スナップショットの共有に関する詳細は、「DB スナップショットの共有または DB クラスタースナップショット」を参照してください。

バックアップストレージ

各リージョンの Amazon RDS バックアップストレージは、そのリージョンの自動バックアップと手動 DB スナップショットで構成されています。バックアップストレージは、そのリージョンのすべてのインスタンスのデータベースストレージの合計と等しくなります。DB スナップショットを他のリージョンに移動すると、移動先リージョンのバックアップストレージは増加します。バックアップストレージコストの詳細については、「Amazon RDS 料金表」を参照してください。

すべての自動バックアップは、DB インスタンスを削除すると削除されます。DB インスタンスを削除すると、自動バックアップを復元することはできません。Amazon RDS によって DB インスタンスの削除前に最終的な DB スナップショットが作成されるように選択した場合、そのスナップショットを使用して DB インスタンスを復元できます。

手動スナップショットは削除されません。

バックアップウィンドウ

自動バックアップは、優先されるバックアップウィンドウ中に毎日行われます。バックアップウィンドウに割り当てられた時間より長い時間がバックアップに必要な場合、ウィンドウが終了した後もバックアップが完了するまでバックアップが継続します。DB インスタンスの週 1 回のメンテナンス時間とバックアップウィンドウは重複できません。

自動バックアップウィンドウ中、バックアッププロセスの開始時にストレージ I/O が一時中断することがあります (通常は数秒間)。マルチ AZ 配置のバックアップ中は、レイテンシーが数分間高くなることがあります。 MariaDB、MySQL、Oracle、PostgreSQL の場合、バックアップはスタンバイから取得されるため、マルチ AZ 配置のバックアップ中プライマリで I/O アクティビティは中断しません。SQL Server の場合、マルチ AZ 配置のバックアップ中 I/O アクティビティが一時中断します。

DB インスタンスの作成時に推奨バックアップウィンドウを指定しない場合、Amazon RDS によりデフォルトの 30 分のバックアップウィンドウが割り当てられます。このウィンドウは、リージョンごとに 8 時間の時間ブロックからランダムに選択されます。次の表は、デフォルトでバックアップウィンドウが割り当てられる各リージョンの時間を示します。

リージョン 時間ブロック
米国東部 (バージニア北部) リージョン 03:00–11:00 UTC
米国東部(オハイオ)リージョン 03:00–11:00 UTC
米国西部 (北カリフォルニア) リージョン 06:00–14:00 UTC
米国西部 (オレゴン) リージョン 06:00–14:00 UTC
アジアパシフィック (ムンバイ) リージョン 16:30–00:30 UTC
アジアパシフィック (ソウル) リージョン 13:00–21:00 UTC
アジアパシフィック (シンガポール) リージョン 14:00–22:00 UTC
アジアパシフィック (シドニー) リージョン 12:00–20:00 UTC
アジアパシフィック (東京) リージョン 13:00–21:00 UTC
カナダ (中部) リージョン 06:29–14:29 UTC
欧州 (フランクフルト) リージョン 20:00–04:00 UTC
欧州 (アイルランド) リージョン 22:00–06:00 UTC
欧州 (ロンドン) リージョン 06:00–14:00 UTC
南米 (サンパウロ) リージョン 23:00–07:00 UTC
AWS GovCloud (米国) 03:00–11:00 UTC

バックアップ保持期間

DB インスタンスを作成するとき、バックアップ保持期間を設定できます。バックアップの保持期間を設定しないと、デフォルトのバックアップ保持期間は、Amazon RDS API または AWS CLI を使用して DB インスタンスを作成する場合は 1 日、AWS コンソールを使用して DB インスタンスを作成する場合は 7 日間です。Amazon Aurora DB クラスターの場合、DB クラスターの作成方法に関係なく、デフォルトのバックアップ保持期間は 1 日です。DB インスタンスを作成したら、バックアップ保持期間を変更できます。バックアップ保持期間は、1 ~ 35 日間で設定できます。バックアップ保持期間を 0 に設定して、自動バックアップを無効にすることもできます。自動バックアップには、手動スナップショットの制限 (リージョンごとに 100) は適用されません。

重要

このパラメーターを 0 から 0 以外の値、0 以外の値から 0 に変更した場合、機能停止が発生します。

自動バックアップの無効化

特定の状況では、自動バックアップを一時的に無効にすることもできます。たとえば、大量のデータをロードしているときなどです。

重要

自動バックアップは、無効にするとポイントインタイムリカバリも無効になるため、無効にしないことを強くお勧めします。DB インスタンスの自動バックアップを無効にすると、そのインスタンスの既存の自動バックアップがすべて削除されます。自動バックアップを無効にしてから再度有効にした場合、自動バックアップを再度有効にした時点からしか復元できません。

この例では、バックアップ保持パラメーターを 0 に設定することによって、mydbinstance という名前の DB インスタンスの自動バックアップを無効にします。

AWS マネジメントコンソール

自動バックアップをすぐに無効にするには

  1. AWS マネジメントコンソールにサインインし、Amazon RDS コンソール (https://console.aws.amazon.com/rds/) を開きます。

  2. ナビゲーションペインで、[DB Instances] を選択し、変更する DB インスタンスを選択します。

  3. [Instance Actions] を選択してから、[Modify] を選択します。[Modify DB Instance] ウィンドウが表示されます。

  4. [Backup Retention Period] で [0] を選択します。

  5. [Apply Immediately] を選択します。

  6. [Continue] を選択します。

  7. 確認ページで、[Modify DB Instance] を選択して変更を保存し、自動バックアップを無効にします。

CLI

自動バックアップをすぐに無効にするには、modify-db-instance コマンドを使用して、バックアップ保持期間を 0 に設定し --apply-immediately を指定します。

次の例では、自動バックアップをすぐに無効にします。

Linux、OS X、Unix の場合:

Copy
aws rds modify-db-instance \ --db-instance-identifier mydbinstance \ --backup-retention-period 0 \ --apply-immediately

Windows の場合:

Copy
aws rds modify-db-instance ^ --db-instance-identifier mydbinstance ^ --backup-retention-period 0 ^ --apply-immediately

変更が有効になるタイミングを知るにはタイミングを知るには、バックアップ保持期間の値が 0 になり mydbinstance のステータスが available になるまで、DB インスタンスに対して describe-db-instances を呼び出します。

Copy
aws rds describe-db-instances --db-instance-identifier mydbinstance

API

自動バックアップをすぐに無効にするには、以下のパラメーターを指定して Amazon RDS API アクション ModifyDBInstance を呼び出します。

  • DBInstanceIdentifier = mydbinstance

  • BackupRetentionPeriod = 0

Copy
https://rds.amazonaws.com/ ?Action=ModifyDBInstance &DBInstanceIdentifier=mydbinstance &BackupRetentionPeriod=0 &SignatureVersion=2 &SignatureMethod=HmacSHA256 &Timestamp=2009-10-14T17%3A48%3A21.746Z &AWSAccessKeyId=<AWS Access Key ID> &Signature=<Signature>

自動バックアップの有効化

DB インスタンスで自動バックアップが有効になっていない場合、いつでも有効にすることができます。バックアップ保持期間を 0 以外の正の値に設定することで自動バックアップを有効にすることができます。自動バックアップが有効になっていて、機能停止が発生すると、バックアップは直ちに作成されます。

この例では、mydbinstance という名前の DB インスタンスのバックアップ保持期間パラメーターを 0 以外の値 (この場合は 3) に設定することにより、DB インスタンスの自動バックアップを有効にします。

AWS マネジメントコンソール

自動バックアップをすぐに有効にするには

  1. AWS マネジメントコンソールにサインインし、Amazon RDS コンソール (https://console.aws.amazon.com/rds/) を開きます。

  2. ナビゲーションペインで、[DB Instances] を選択し、変更する DB インスタンスを選択します。

  3. [Instance Actions] を選択してから、[Modify] を選択します。[Modify DB Instance] ページが表示されます。

  4. [Backup Retention Period] で、ゼロ以外の正の値 (3 など) を選択します。

  5. [Apply Immediately] を選択します。

  6. [Continue] を選択します。

  7. 確認ページで、[Modify DB Instance] を選択して変更を保存し、自動バックアップを有効にします。

CLI

自動バックアップをすぐに有効にするには、AWS CLI の modify-db-instance コマンドを使用します。

この例では、バックアップ保持期間を 3 日に設定することで、自動バックアップを有効にします。

以下のパラメーターを含めます。

  • --db-instance-identifier

  • --backup-retention-period

  • --apply-immediately または --no-apply-immediately

Linux、OS X、Unix の場合:

Copy
aws rds modify-db-instance \ --db-instance-identifier mydbinstance \ --backup-retention-period 3 \ --apply-immediately

Windows の場合:

Copy
aws rds modify-db-instance ^ --db-instance-identifier mydbinstance ^ --backup-retention-period 3 ^ --apply-immediately

API

自動バックアップをすぐに有効にするには、AWS CLI の ModifyDBInstance コマンドを使用します。

この例では、バックアップ保持期間を 3 日に設定することで、自動バックアップを有効にします。

以下のパラメーターを含めます。

  • DBInstanceIdentifier = mydbinstance

  • BackupRetentionPeriod = 3

  • ApplyImmediately = true

Copy
https://rds.amazonaws.com/ ?Action=ModifyDBInstance &DBInstanceIdentifier=mydbinstance &BackupRetentionPeriod=3 &ApplyImmediately=true &SignatureVersion=2 &SignatureMethod=HmacSHA256 &Timestamp=2009-10-14T17%3A48%3A21.746Z &AWSAccessKeyId=<AWS Access Key ID> &Signature=<Signature>

サポートされない MySQL ストレージエンジンを使用した自動バックアップ

MySQL DB エンジンの場合、自動バックアップは InnoDB ストレージエンジンでのみサポートされます。MyISAM など、他の MySQL ストレージエンジンでこれらの機能を使用すると、バックアップからの復元中に信頼できない動作が生じる可能性があります。具体的には、MyISAM などのストレージエンジンは信頼性の高いクラッシュ回復をサポートしていないため、クラッシュ時にテーブルが破損する可能性があります。このため、InnoDB ストレージエンジンを使用することをお勧めします。

  • 既存の MyISAM テーブルを InnoDB テーブルに変換するには、alter table コマンドを使用できます。以下に例を示します。ALTER TABLE table_name ENGINE=innodb, ALGORITHM=COPY;

  • MyISAM の使用を選択した場合、REPAIR コマンド (http://dev.mysql.com/doc/refman/5.5/en/repair-table.html を参照) を使用して、クラッシュ後に破損したテーブルの修復を手動で試みることができます。ただし、MySQL ドキュメントで説明されているとおり、すべてのデータを復旧できない可能性が高くなります。

  • 復元の前に MyISAM テーブルのスナップショットを作成する場合は、以下のステップに従います。

    1. MyISAM テーブルに対するすべてのアクティビティを停止します (つまり、すべてのセッションを閉じます)。

      SHOW FULL PROCESSLIST コマンドから返される各プロセスの mysql.rds_kill コマンドを呼び出すことによって、すべてのセッションを閉じます。

    2. 各 MyISAM テーブルをロックしてフラッシュします。たとえば、次のコマンドは、myisam_table1 および myisam_table2 という名前の 2 つのテーブルをロックしてフラッシュします。

      Copy
      mysql> FLUSH TABLES myisam_table, myisam_table2 WITH READ LOCK;
    3. DB インスタンスのスナップショットを作成します。スナップショットが完了したら、ロックを解除し、MyISAM テーブルでのアクティビティを再開します。次のコマンドを使用して、テーブルのロックを解除できます。

      Copy
      mysql> UNLOCK TABLES;

    これらのステップでは、MyISAM のメモリに保存されたデータがディスクに強制的にフラッシュされるため、DB スナップショットから復元する際に確実にクリーンスタートできます。DB スナップショットの作成の詳細については、「DB スナップショットの作成」を参照してください。

サポートされない MariaDB ストレージエンジンを使用した自動バックアップ

MySQL DB エンジンの場合、XtraDB ストレージエンジンでのみ自動バックアップがサポートされます。Aria など、他の MariaDB ストレージエンジンでこれらの機能を使用すると、バックアップからの復元中に信頼できない動作が生じる可能性があります。Aria が MyISAM の代替となる耐クラッシュ性を備えたものであっても、テーブルはクラッシュ時に破損する可能性があります。このため、XtraDB ストレージエンジンを使用することをお勧めします。

  • 既存の Aria テーブルを XtraDB テーブルに変換するには、ALTER TABLE コマンドを使用できます。以下に例を示します。ALTER TABLE table_name ENGINE=xtradb, ALGORITHM=COPY;

  • Aria の使用を選択した場合、REPAIR TABLE コマンドを使用して、クラッシュ後に破損したテーブルの修復を手動で試みることができます。詳細については、http://mariadb.com/kb/en/mariadb/repair-table/ を参照してください。

  • 復元の前に Aria テーブルのスナップショットを作成する場合は、以下のステップに従います。

    1. Aria テーブルに対するすべてのアクティビティを停止します (つまり、すべてのセッションを閉じます)。

    2. 各 Aria テーブルをロックしてフラッシュします。

    3. DB インスタンスのスナップショットを作成します。スナップショットが完了したら、ロックを解除し、Aria テーブルでのアクティビティを再開します。これらのステップでは、Aria のメモリに保存されたデータがディスクに強制的にフラッシュされるため、DB スナップショットから復元する際に確実にクリーンスタートできます。

関連トピック