RDS for SQL Server によるトランザクションログのバックアップへのアクセス - Amazon Relational Database Service

RDS for SQL Server によるトランザクションログのバックアップへのアクセス

RDS for SQL Server のトランザクションログのバックアップにアクセスすることで、データベースのトランザクションログのバックアップファイルを一覧表示し、ターゲット Amazon S3 バケットにコピーできます。Amazon S3 バケットにトランザクションログのバックアップをコピーすることで、それらをデータベースの完全バックアップや差分バックアップと組み合わせて使用し、特定の時点でのデータベース復元を実行できます。RDS ストアドプロシージャを使用して、トランザクションログのバックアップへのアクセスを設定し、利用可能なトランザクションログバックアップを一覧表示して、Amazon S3 バケットにコピーします。

トランザクションログのバックアップにアクセスすると、次のような機能と利点を利用できます。

  • RDS for SQL Server DB インスタンスにあるデータベースの利用可能なトランザクションログのバックアップのメタデータを一覧表示して表示します。

  • 使用可能なトランザクションログのバックアップを RDS for SQL Server からターゲット Amazon S3 バケットにコピーします。

  • DB インスタンス全体を復元しなくても、データベースのポイントインタイム復元を実行できます。DB クラスターのポイントインタイム復元の方法については、「Amazon RDS の DB インスタンスを特定の時点に復元する」を参照してください。

可用性およびサポート

トランザクションログのバックアップへのアクセスは、すべての AWS リージョンでサポートされています。トランザクションログバックアップへのアクセスは、Amazon RDS でサポートされている Microsoft SQL Server のすべてのエディションとバージョンで使用できます。

要件

トランザクションログのバックアップへのアクセスを有効にする前に、以下の要件を満たす必要があります。

  • DB インスタンスで自動バックアップを有効に設定し、バックアップの保存期間を 1 日以上の値に設定する必要があります。自動バックアップの有効化と保存ポリシーの設定の詳細については、「自動バックアップの有効化」を参照してください。

  • Amazon S3 バケットは、ソース DB インスタンスと同じアカウントとリージョンに存在している必要があります。トランザクションログのバックアップへのアクセスを有効にする前に、トランザクションログのバックアップファイルに使用するため、既存の Amazon S3 バケットを選択するか、新しいバケットを作成します。

  • Amazon RDS によってトランザクションログファイルをコピーできるように、Amazon S3 バケットのアクセス権限ポリシーを次のように設定する必要があります。

    1. バケットのオブジェクトアカウントの所有権プロパティを [Bucket Owner Preferred] (バケット所有者優先) に設定します。

    2. 以下のポリシーを追加します。デフォルトではポリシーがないため、バケットアクセスコントロールリスト (ACL) を使用してバケットポリシーを編集し、追加します。

    次の例では、ARN を使用してリソースを指定しています。リソースベースの信頼関係では SourceArn および SourceAccount のグローバル条件コンテキストキーを使用して、サービスに付与する特定のリソースへのアクセス許可を制限することをお勧めします。ARN での使用の詳細については、「Amazon リソースネーム (ARN)」および「Amazon RDS の Amazon リソースネーム (ARN)」を参照してください。

    例 トランザクションログのバックアップへのアクセスするための Amazon S3 権限ポリシーの例
    { "Version": "2012-10-17", "Statement": [ { "Sid": "Only allow writes to my bucket with bucket owner full control", "Effect": "Allow", "Principal": { "Service": "backups.rds.amazonaws.com" }, "Action": "s3:PutObject", "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/{customer_path}/*", "Condition": { "StringEquals": { "s3:x-amz-acl": "bucket-owner-full-control", "aws:sourceAccount": "{customer_account}", "aws:sourceArn": "{db_instance_arn}" } } } ] }
  • Amazon S3 バケットにアクセスするための AWS Identity and Access Management (IAM) ロール。IAM ロールが既にある場合はそれを使用できます。AWS Management Console を使用して SQLSERVER_BACKUP_RESTORE オプションを追加する際に、新しい IAM ロールの作成を選択することもできます。または、手動で新しいロールを作成することもできます。SQLSERVER_BACKUP_RESTORE による IAM ロールの作成と設定の詳細については、「ネイティブバックアップおよび復元用の IAM ロールの手動作成」を参照してください。

  • SQLSERVER_BACKUP_RESTORE オプションは、DB インスタンスのオプショングループに追加されている必要があります。SQLSERVER_BACKUP_RESTORE オプションの追加についての詳細は、「SQL Server のネイティブバックアップおよび復元のサポート」を参照してください。

    注記

    DB インスタンスでストレージ暗号化が有効になっている場合は、ネイティブバックアップと復元オプショングループで提供される IAM ロールに AWS KMS (KMS) アクションとキーを指定する必要があります。

    オプションで、rds_restore_log ストアドプロシージャを使用してデータベースのポイントインタイム復元を実行する場合は、ネイティブバックアップ、復元オプショングループ、トランザクションログのバックアップへのアクセスに、同じ Amazon S3 パスを使用することをお勧めします。この方法により、Amazon RDS がオプショングループから復元ログ機能を実行する役割を引き受けると、同じ Amazon S3 パスからトランザクションログのバックアップを取得できるようになります。

  • DB インスタンスが暗号化されている場合、暗号化タイプ (AWSマネージドキーまたはカスタマーマネージドキー) に関係なく、IAM ロールと rds_tlog_backup_copy_to_S3 ストアドプロシージャでカスタマーマネージド KMS キーを指定する必要があります。

制限と推奨事項

トランザクションログのバックアップへのアクセスには、次の制限と推奨事項があります。

  • バックアップの保存期間が 1 日から 35 日の間に設定されている任意の DB インスタンスについて、過去 7 日間のトランザクションログのバックアップを一覧表示してコピーできます。

  • トランザクションログのバックアップのアクセスに使用する Amazon S3 バケットは、ソース DB インスタンスと同じアカウントとリージョンに存在している必要があります。クロスアカウントおよびクロスリージョンコピーはサポートされていません。

  • トランザクションログのバックアップのコピー先として設定できる Amazon S3 バケットは 1 つだけです。rds_tlog_copy_setup ストアドプロシージャを使用して、新しいターゲット Amazon S3 バケットを選択できます。新しいターゲット Amazon S3 バケットの選択の詳細については、「トランザクションログのバックアップへのアクセス設定」を参照してください。

  • RDS インスタンスでストレージ暗号化が有効になっていない場合、rds_tlog_backup_copy_to_S3 ストアドプロシージャを使用するときに KMS キーを指定することはできません。

  • マルチアカウントコピーはサポートされていません。コピーに使用される IAM ロールは、DB インスタンスの所有者アカウント内の Amazon S3 バケットへの書き込みアクセスのみを許可します。

  • RDS for SQL Server DB インスタンスでは、どのような種類のタスクでも 2 つまでしか実行できません。

  • 1 つのデータベースに対して、同時に実行できるコピータスクは 1 つだけです。DB インスタンス上の複数のデータベースのトランザクションログのバックアップをコピーする場合は、データベースごとに個別のコピータスクを使用します。

  • 既に Amazon S3 バケットに同じ名前で存在するトランザクションログのバックアップをコピーすると、既存のトランザクションログのバックアップは上書きされます。

  • プライマリ DB インスタンスのトランザクションログのバックアップへのアクセス権が提供されているストアドプロシージャのみを実行できます。これらのストアドプロシージャは、RDS for SQL Server のリードレプリカや、マルチ AZ DB クラスターのセカンダリインスタンスでは実行できません。

  • rds_tlog_backup_copy_to_S3 ストアドプロシージャの実行中に RDS for SQL Server DB インスタンスを再起動すると、DB インスタンスがオンラインに戻ったときに、タスクは自動的に最初から再開されます。再起動前に、タスクの実行中に Amazon S3 バケットにコピーされたトランザクションログのバックアップはすべて上書きされます。

  • Microsoft SQL Server システムデータベースと RDSAdmin データベースは、トランザクションログのバックアップにアクセスするように設定できません。

  • SSE-KMS で暗号化されたバケットへのコピーはサポートされていません。