Amazon-RDS

暗号化されていないRDSを暗号化する作業がけっこう曲者。

ごあいさつ

こんばんは。
この二か月ほどずっと鍋を食っているもに倉です。

今回は、暗号化されていないRDSをエンドポイントを変えないままで
暗号化する手順をまとめようと思います。

Q.設定変更するだけじゃないの?
A.スナップショットを取って、そのスナップショットを暗号化しつつコピーして、
その暗号化したスナップショットからRDSを復元しないと、
既存のRDSを暗号化させることができません(面倒……!)。

ところで

今RDSを作ると、デフォルトで暗号化が有効になっています(多分。私の環境ではそうでした)。
RDS作成時に暗号化の設定をいじらないかぎり、最近作ったRDSであれば暗号化されているはずです。

あくまで「前まで暗号化いらなかったから設定してなかったけど、今はいるんだよなー」と
思っている方向けのブログですので、ご了承ください。

流れ

①暗号化するRDSのスナップショットを作成
②作成したスナップショットを暗号化を有効にしてコピーする
③コピーしたスナップショットからRDSを復元
④元RDSのインスタンス名を適当な名前に変更
⑤復元したRDSのインスタンス名をもともと使っていたインスタンス名に変更

エンドポイントが変わらないので、Webサイト側の接続情報などを書き換える必要はありません。

準備物


暗号化していないRDS for MySQL(インスタンス名:monikura-rds-desu)&EC2にて
WordPressのサイトを立ち上げました。

中身もなんとなくいじっています。

暗号化作業が完了したのち、このサイトが元とかわらず表示されていればOKです。

RDSのスナップショットを作成

それでは早速RDSを暗号化していきましょう。


暗号化したいRDSを選択し、アクションから「スナップショットの取得」を選択します。


スナップショットの名前は適当につけましょう(今回は「monikura-rds-snap」としました)。


「スナップショットの取得」をクリックするとスナップショット一覧画面に飛びます。
先ほど作ったスナップショットのステータスが「利用可能」になれば完成です。

暗号化が有効になったスナップショットを作成

さて、先ほど作ったスナップショットから、暗号化が有効になったスナップショットを作ります。


先ほど作ったスナップショットを選択し、アクションから「スナップショットをコピー」を選択します。


例によって名前は適当につけましょう(今回は「monikura-rds-snap-new」としました)。

また、タグをコピーはやっておいたほうが無難です。
以下解説

これを「Yes」に設定すると、この DB スナップショットのすべてのコピーに対し、
ソーススナップショットと同じタグが与えられます。
タグのコピー機能は、共有 DB スナップショットではサポートされません。

最後に今回の目的である「暗号を有効化」にチェックを入れて、
一番下にある「スナップショットをコピー」をクリックしましょう。
スナップショットのステータスが「利用可能」になれば完成です。

暗号化されたスナップショットからRDSを復元

ここが一番の難関かもしれません。
スナップショットからRDSを復元します。


暗号化されたスナップショットを選択し、アクションから「スナップショットを復元」を選択します。


例によって名前は適当につけましょう(今回は「monikura-rds-new」としました)。

そのほか、VPC セキュリティグループやアベイラビリティゾーン、
DB インスタンスクラスなどの設定は元のRDSと
同じ設定にしてください。
元のRDSの「設定」タブと見比べつつ設定していくとよいでしょう。


最後に、「暗号を有効化」にチェックが入っていることを確認して、
「DBインスタンスを復元」をクリックしましょう。


ステータスが「利用可能」になれば完成です。

インスタンス名を変更

旧RDSのインスタンス名を変更

ここで旧RDSを削除してもいいのですが、万が一切り戻し作業が必要になったときのために、
ちゃんと暗号化したRDSと入れ替えられたことが確認できるまで残しておきます。


旧RDSを選択して「変更」をクリック。


適当な名前に変更(今回は「monikura-rds-old」としました)。


「すぐに適用」を選択して変更します。


しばらく待つとステータスが「名前変更」になり、もっと待つと無事名前が変更されます。

新RDSのインスタンス名を変更

先ほどと同様の手順でインスタンス名を変更します。
インスタンス名は、もともと使っていたRDSの名前(今回なら「monikura-rds-desu」)にしましょう。
そうするとエンドポイントを変更することなく、RDSを暗号化させることができます。


名前変更が完了したら設定を確認しましょう。
暗号化が有効になっていればOKです!

事後確認


WordPressも無事見られます!

あわせて新旧RDSの設定を見比べて差異がないか確認したり、
DB内のデータも問題ないか確認したりしましょう。

問題ないことを確認できたら旧RDSは削除してOKです。

まとめ

というわけで、RDSの暗号化作業でした。
作業時間はRDSのデカさによるところなので厳密には言えませんが、スナップショットの作成も
スナップショットからの復元も名前変更も少なくとも5分ほどは待つことになるので、
焦らずゆっくり作業していきましょう!

返信を残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA