パブリックサブネットにあるRDSをプライベートサブネットに移動してみた

2023.05.31

こんにちは、イムチェジョンです。
RDSはセキュリティのためにプライベートサブネットに作成するのを推奨しています。
しかし、RDSをパブリックサブネットに作成する場合もあると思います。
もし、既存にパブリックサブネットで作成したRDSをプライベートサブネットに移動させたい場合にはどうすればいいでしょうか。
今回のブログではサブネットグループを修正することでパブリックサブネットにあるRDSをプライベートサブネットに移動させる方法をまとめました。

アジェンダ

  1. 変更手順
  2. サブネットグループ修正
  3. RDSのマルチAZ設定後再起動
  4. RDSのマルチAZ設定を無効化
  5. サブネットグループ修正(2)

1. 変更手順

-> 目標 : VPC Aのパブリックサブネットにある RDSを VPC Aのプライベートサブネットに移動させる。

変更手順は下記になります。
1. サブネットグループ修正(プライベートサブネットの追加)
2. RDSのマルチAZ設定後再起動
3. RDSのマルチAZ設定を無効化
4. サブネットグループ修正(パブリックサブネット削除)

このブログではRDSの作成は省略します。
今回の手順は下記のブログをご参考しました。

2. サブネットグループ修正

まず、サブネットグループを修正します。

今回に対象のRDSは「ap-northeast-1a」に存在します。
また、サブネットグループは「rds-subnetgroup」に設定されています。

「rds-subnetgroup」に含まれているサブネットはすべてパブリックサブネットです。

サブネットグループの確認をしたので、サブネットグループにプライベートサブネットを追加します。
サブネットグループで「rds-subnetgroup」を選択して[編集]をクリックします。

[サブネットを追加]部分でAZを選択してプライベートサブネットを追加します。

この時、サブネットグループからRDSがないパブリックサブネットは削除します。
RDSがあるパブリックサブネットを残す理由は、サブネットにRDSがあると削除できないからです。
RDSがあるサブネットを削除しようとすると、次のようにエラーが出力されます。

そのため、RDSが作成されたパブリックサブネット+複数のプライベートサブネットを追加して保存します。

RDSが作成されたサブネットとプライベートだけで構成されたサブネットでサブネットグループが保存されました。

3. RDSのマルチAZ設定後再起動

次は、RDSのマルチAZ設定をします。

RDSを選択し、[変更] をクリックします。

そしてマルチAZ設定をします。

変更のスケジュールで [すぐに適用] を選択し、[DB インスタンスの変更] をクリックします。

RDSを選択して[アクション]、[再起動]をクリックします。

フェイルオーバー再起動するにチェックを入れて[確認]をクリックします。
この段階で変更されない場合もありますが、されない場合にはもう一回再起動をしてください。

再起動すると、「ap-northeast-1a」だったサブネットが「ap-northeast-1d」に変更され、プライベートサブネットに変更されます。

4. RDSのマルチAZ設定を無効化

プライベートサブネットに移行されたので、RDSのマルチAZ設定を無効化します。

先のようにRDSを編集してマルチAZ設定を無効化します。

5. サブネットグループ修正(2)

最後に、もう一度サブネット グループを修正して、残りのパブリックサブネットを削除します。

対象のサブネットグループを選択し、[編集]をクリックします。

AZを選択してパブリック サブネットを削除します。

プライベート サブネットのみを存在するサブネットグループになりました。

つまり、RDSをパブリックサブネットからプライベートサービスを移動させたのです。
ここまでがパブリックサブネット上のRDSをプライベートサブネットに移行する方法でした。