弊社では会社全体で1つのアカウントを共有していましたが「管理が面倒!どの部署がどれを使っているのかさっぱり分からん!」という苦情が増えてきたため、部署ごとにアカウントを分ける事になり Aurora 移行の作業を振られたため手順をまとめました。
AWS マニュアルを確認
マニュアル見てると手動スナップショットを共有するだけっぽいので簡単だな!と思っていましたが当然そんなに上手く行かず…デフォルトKMSキーで暗号化されていたため、別アカウントへの共有が不可になっていました。あと KMS キーも別途発行して別アカウントに共有しておく必要があるっぽい。
デフォルトの Amazon RDS 暗号化キーを使用しない、暗号化された手動スナップショットは共有できます。ただし、まず AWS Key Management Service (AWS KMS) キーを、スナップショットを共有するアカウントと共有する必要があります。
デフォルトKMSキーで暗号化されているため、スナップショットのアクセス許可設定を保存できない
現在サポートされていない、という文言から将来はサポートしてくれるんでしょうか
移行元アカウントでの作業
ここから作業手順
KMS キーの作成と共有
デフォルトでない KMS キーが必要なので作成していく
キーを設定
キーのタイプ
対象
キーの使用
暗号化及び復号化
詳細オプション
- キーマテリアルエンジン : KMS 推奨
- リージョンごと : 単一リージョンキー
次へ
ラベルを追加
エイリアス
わかりやすい名前を追加(aurora-snapshot-share-key、みたいな)
説明
必要であれば追加
タグ
必要であれば追加
次へ
キーの管理アクセス許可を定義
キー管理者
必要であれば追加
キーの削除
「キーの管理者がこのキーを削除できるようにします。」にチェック
次へ
キーの使用アクセス許可を定義
キーユーザー
必要であれば追加
別の AWS アカウント
arn:aws:iam::【移行先のAWSアカウント番号】:root
次へ
確認
問題なければ「完了」
Aurora スナップショットを取得
- RDSメニューから、移行元のDBクラスターを選択
- 「アクション」の「スナップショットの取得」
現行だとデフォルトKMSキーで暗号化されているため共有できない。
そのため、先程作成したKMSキーを使って暗号化されたスナップショットをコピーする
スナップショットをコピー
- スナップショットメニューから、取得したスナップショットを選択し「アクション」の「スナップショットのコピー」を選択
スナップショットをコピー
送信先リージョン
必要であれば変更
新しいスナップショットID
コピー元スナップショットIDを適当にちょっと変える
タグをコピー
「タグをコピー」にチェック
暗号化
AWS KMS キー
デフォルト KMS キーではなく、先程新しく作成した KMS キーを選択する
※コピーめっちゃ時間掛かるので適当に時間潰す。29GiB で3時間かかりました。
スナップショットのアクセス許可
- スナップショットメニューから、コピーしたスナップショットを選択し「アクション」の「スナップショットの共有」を選択
設定
AWS アカウントID
移行先の AWS アカウント ID を入力
次へ
移行先アカウントでの作業
スナップショットメニューから、「自分と共有」タブをクリックし、共有したスナップショットが表示されていればOK
この共有スナップショットから、新しい DB クラスターを作成するなりなんなりして完了。
参考サイト