RDS for SQL Server でネイティブバックアップの rds_backup_database を実行した時にエラーが発生する問題を解決してみた

2024.06.14

いわさです。

先日、Amazon RDS で SQL Server を構築しました。
そして RDS 上のデータベースをローカルの SQL Server へインポートする必要があったため、次のネイティブバックアップ機能を試してみました。

Aborted the task because of a task failure or an overlap with your preferred backup window for RDS automated backup が発生

前述のドキュメントや次の公式ドキュメントを参考にエクスポートプロシージャを実行しました。

開始処理はタスク ID が返却されるだけですぐに終了します。

1> exec msdb.dbo.rds_backup_database @source_db_name='hogedb', @s3_arn_to_backup_to='arn:aws:s3:::hoge0614s3/test.bak', @type='FULL';
2> go

:

Task created successfully.
Task Id: 1
1>

このタスク ID を使って、rds_task_statusで状況を確認することができます。やってみましょう。
タスク状況を確認...あれ??

1> exec msdb.dbo.rds_task_status @db_name='hogedb', @task_id=1;
2> go

:

[2024-06-14 01:44:22.193] Aborted the task because of a task failure or an overlap with your preferred backup window for RDS automated backup.
[2024-06-14 01:44:22.200] Task has been aborted
[2024-06-14 01:44:22.203] Error making request with Error Code F 2024-06-14 01:44:22.203 2024-06-14 01:43:40.297 arn:aws:s3:::hoge0614s3/test.bak

:

なんか失敗していますね。
公式ドキュメントのトラブルシューティング一覧を確認してみます。こちらにはエラーメッセージごとの考えられる原因などがまとまっています。

ただ上記に記載がないですね。

バケットの指定が誤っている、あるいはバケットにアクセスする権限がない

公式ドキュメントではないのですが、AWS 公式フォーラムである「re:Post」のナレッジセンターに上記ドキュメント以外のエラーパターンも解説されていました。

上記ドキュメントによるとこのエラーメッセージはオプショングループで設定した IAM ロールがバケットへアクセスできない場合に発生するエラーとのこと。確認してみましょう。

上記 IAM ロールのポリシーを確認してみると、誤ったバケットへのアクションが許可されていました。なるほど。

ポリシーを見直し、再実行

該当ロールのポリシーを見直し、今回ネイティブバックアップファイルをエクスポートしたいバケットを Resource 句に追加します。

再実行し、ステータスを確認してみます。

1> exec msdb.dbo.rds_task_status @db_name='hogedb', @task_id=2;
2> go

:

[2024-06-14 01:58:22.090] Task execution has started.
[2024-06-14 01:58:22.163] 5 percent processed.
[2024-06-14 01:58:22.170] 11 percent processed.
[2024-06-14 01:58:22.170] 15 percent processed.
[2024-06-14 01:58:22.173] 21 percent processed.
[2024-06-1 2024-06-14 01:59:22.317 2024-06-14 01:58:14.797 arn:aws:s3:::hoge0614s3/test.bak

:

良さそうですね。
エラーが発生せずに完了までいっています。

対象バケットを確認してみると指定したバックアップファイルが生成されていることを確認できました。

さいごに

本日は RDS for SQL Server でネイティブバックアップの rds_backup_database を実行した時にエラーが発生する問題を解決してみました。

公式ドキュメントのトラブルシューティング情報があるのですが、それ以外にもエラーパターンがあることと、re:Post ナレッジセンターが追加の情報として役に立つよという紹介でした。

同様の問題が発生した方の参考になれば幸いです。