サブネットに Amazon Relational Database Service (Amazon RDS) DB インスタンスがあります。DB インスタンスを同じ仮想価格クラウド (VPC) 内のプライベートサブネットに移動し、その DB インスタンスをプライベートにしたいと考えています。
簡単な説明
Amazon RDS には、同じ VPC で DB インスタンスのサブネットグループを変更するオプションはありません。ただし、以下の回避策を使用して DB インスタンスをパブリックサブネットからプライベートサブネットに移動できます。この回避策を使用する場合、新しい DB インスタンスを作成したり、スナップショット復元プロセスを使用したりする必要はありません。この回避策により、新しいインスタンスを作成してトラフィックを迂回させる際のダウンタイムも最小限に抑えられます。顕著なダウンタイムが発生するのは、フェイルオーバー時間だけです。
注: この回避策は RDS DB インスタンスにのみ使用します。DB インスタンスが Aurora クラスターの一部である場合は、クローンオプションを使用します。または、この解決策に従ってください。ただし、マルチ AZ をオフにしないでください。代わりに、リーダーを削除して再作成します。
解決策
DB インスタンスのマルチ AZ 配置とパブリックアクセシビリティを無効にする
DB インスタンスが [パブリックアクセシビリティ] パラメータを [いいえ] に設定した状態ですでに [シングル AZ] に設定されている場合は、このステップをスキップします。
DB インスタンスのマルチ AZ 配置を無効にするには、次の手順を実行します。
- Amazon RDS コンソールを開きます。
- ナビゲーションペインで [データベース] を選択します。次に、DB インスタンスを選択します。
- [変更] を選択します。
- [DB インスタンスを変更] ページの [マルチ AZ 配置] と [パブリックアクセシビリティ] で、[いいえ] を選択します。
- [続行] を選択し、変更の概要を確認します。
- [すぐに適用] または [次回の定期メンテナンス時間中に適用] を選択します。
注: 変更により DB が再起動するため、ダウンタイムが発生します。詳細については、「[すぐに適用] の設定を使用する」をご参照ください。
- 変更内容を確認し、よければ [DB インスタンスを変更] を選択して保存します。
DB インスタンスの IP アドレスを見つける
DB インスタンスが [利用可能] 状態に戻ったら、DB インスタンスのエンドポイントで dig を実行して、IP アドレスを見つけます。
dig rds_endpoint
**注:**rds_endpoint を DB インスタンスのエンドポイントに置き換えてください。
出力例:
db-RDS-instance.xxxxxxxx.us-east-1.rds.amazonaws.com. 5 IN A 172.39.5.213
プライベート IP アドレスから、プライマリインスタンスが使用するサブネットを見つけることができます。
この例では次のサブネットがあります。
- サブネット 1: 172.39.5.0/24
- サブネット 2: 172.39.4.0/24
IP アドレスは 172.39.5.0/24 未満であるため、インスタンスはサブネット 1 にあります。
パブリックサブネットを削除し、DB インスタンスでプライベートサブネットを追加する
サブネットグループにすべてのプライベートサブネットを追加します。また、プライマリインスタンスで使用されるパブリックサブネットを除くすべてのパブリックサブネットをサブネットグループから削除します。前の例では、DB インスタンスがこのサブネットを使用しているため、サブネット 1 を除くすべてを削除します。
次の手順を実行します。
- Amazon RDS コンソールを開きます。
- ナビゲーションペインから [サブネットグループ] を選択します。次に、DB インスタンスに関連付けられているサブネットグループを選択します。
- [編集] を選択します。
- [サブネットを追加] セクションから、アベイラビリティーゾーンとプライベートサブネットを選択します。
- 削除するパブリックサブネットを選択し、[削除] を選択します。
- [保存] を選択します。
DB インスタンスでマルチ AZ を有効にする
DB インスタンスのマルチ AZ 配置を有効にします。新しいセカンダリインスタンスは、残りのプライベートサブネットの 1 つで起動します。
フェイルオーバーで DB インスタンスを再起動し、マルチ AZ 配置を無効にする
DB インスタンスがフェイルオーバーすると、セカンダリインスタンスがプライマリインスタンスになります。その結果、新しいプライマリインスタンスはプライベート IP アドレスを使用します。フェイルオーバーして DB インスタンスを再起動したら、パブリックサブネットにある新しいセカンダリインスタンスを削除します。セカンダリインスタンスを削除するには、マルチ AZ 配置を [いいえ] に設定してマルチ AZ を無効にします。
パブリックサブネットを削除する
次の手順を実行します。
- サブネットグループから残りのパブリックサブネットを削除します。
注: RDS 側のサブネットグループからサブネットを削除します。VPC からサブネットを削除する必要はありません。
- サブネットグループにプライベートサブネットだけが存在することを確認します。
- DB インスタンスが以前にマルチ AZ 配置されていた場合は、マルチ AZ 配置を再度オンにします。
関連情報
マルチ AZ DB クラスターのデプロイ