LoginSignup
0

posted at

updated at

【AWS RDS】RDSを別のAWSアカウントに共有、復元する手順

目的

クロスアカウントでRDS移行したいとか、障害切り分けの際に別の環境で再現したいというケースがあったので
手順を書いてみました。

やったこと

ソース側AWSアカウント

ソースRDSの手動スナップショットを取得する。

image.png

RDSのコンソールからスナップショットを選択しスナップショットを取得します。

image.png

(スナップショットのサンプル)

ターゲット側AWSアカウントからのアクセスを許可したKMSキーを使ってスナップショットを暗号化コピーする。

image.png

RDSは暗号化の際特に指定しなければマネージドのKMSキーを使用してしまうため、キーポリシーを変更できません。
その場合共有ができても復元ができないので注意が必要です。

別のAWSアカウントでDBのスナップショットを復元する場合はカスタマー管理のキーを作成する必要があります。

image.png

デフォルトのまま次へ

image.png

RDS用とわかるようにエイリアスを入力します。

image.png

KMSを作成しているユーザなどKMSを管理するIAM権限を持つものを設定します。

image.png

ターゲット側AWSアカウントIDにアクセス許可を設定します。

image.png

正常に作成できたらOKです。

image.png

KMSが作成できたら対象のスナップショットをコピーします。

image.png
image.png

コピーを作成する際に先ほど作成したKMSを指定してスナップショットをコピーします。

ターゲット側AWSアカウントとスナップショットを共有する。

image.png

対象のスナップショットで「スナップショットの共有」を選択し、ターゲットのAWSアカウントを追加して保存したら完了です。

ターゲット側の操作

image.png

ターゲットのAWSアカウントでスナップショットの自分と共有の箇所にスナップショットがあればOKです。

共有スナップショットはそのまま復元できないので、ソース側で実行したスナップショットのコピーをして使います。

image.png

コピーの際にソース側で作ったKMSキーのARNを入力しコピーします。

残りは通常のスナップショットからの復元と一緒でインスタンスを作成すれば完了です。

終わりに

別の環境に移してから検証したいという要望が多かったのと、公式サイトのドキュメントがバラバラしてみづらかったり
KMSが絡むとめんどくさくなって敬遠されがちな手順なので纏まられてよかったと思いました。

参考ドキュメント

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
What you can do with signing up
0