タイトル通りでハマった・迷ったところのみ記載。


作成

公式のドキュメントに載ってるままなのですが、照合順序の指定は最初からやっておかないとなので、作る時に下記が必要。

aws-sample01

日本語ベースで使うなら上記は必須かな。

あとセキュリティーグループで1433のポート開放しておかないと、SSMSで繋げなくなる。


復元

復元する場合、基本的にS3にバックアップファイル上げて、そこから復元する。

S3にアクセスするために、オプショングループの割り当てとか必要なのですが、その辺がいまいちわからなかった。

  • オプショングループ作成

aws-sample02

  • 追加したグループにオプションの追加

aws-sample03

  • で、ハマったのがここ

IAMロールを先に作らないとダメなのかと思って公式に記載のアレコレやってたのですが、そうじゃなくて、単純に「新しいロールの作成」選べば、よしなにやってくれる。

aws-sample04

  • インスタンスの変更からオプショングループを指定

aws-sample05

  • 復元

S3の所定のバケット内にバックアップファイルをアップロードして、SSMSで作ったインスタンスに接続して下記クエリを実行。

exec msdb.dbo.rds_restore_database 
@restore_db_name='復元後のDB名', 
@s3_arn_to_restore_from='arn:aws:s3:::bucket_name/file_name';


バックアップ

バックアップは上記復元の設定が出来てればあとはSQLで下記を実行。

exec msdb.dbo.rds_backup_database
@source_db_name='バックアップ対象のDB名', 
@s3_arn_to_backup_to='arn:aws:s3:::bucket_name/file_name';


バックアップ・復元タスクの状況確認

実行したクエリの状況が見たい場合は下記

exec msdb.dbo.rds_task_status

この辺のSQLは公式のこの辺に記載されてるやつを見た方が良い。


あとバックアップの運用について。

スナップショットを自動で取ってはくれるのですが、スナップショットの復元って、必ず別インスタンスに復元されるじゃないですか?

中身のバックアップとってアタッチしたいだけなんだけどなー。

別インスタンスに復元されたところで、アプリのもろもろの設定変えないと意味ないしの。

まーそこから復旧出来るので十分ではあるのかもですが。

DB毎のDaily/Weeklyバックアップ的なのはSQLServerならSQLエージェント側で上記のバックアップSQLとか組んで実行しておくしかないかな?

他にやり方あるのかしら?