💡

RDS Proxy

に公開

RDS Proxy とは?

Amazon RDS Proxy(RDSプロキシ)は、「アプリケーションとデータベースの間に入って、接続をうまく管理してくれる仲介役」です。これを使うとアプリの動きが安定し、スケールしやすくなります。
使い方は、下記のようなイメージです。

接続の「プール」とは?

通常、アプリがデータベースにアクセスするたびに「新しい接続」を作る必要があります。でもこれが急に増えると、データベースがパンクする原因になります。
そこで RDS Proxy を使うと、一度作った接続をプール(貯めておく場所)に入れておき、再利用できるようになります。これにより、下記のようなメリットがあります。

  • 毎回接続を作らなくて済む(CPU・メモリの節約)
  • 接続の急増(サージ)にも耐えられる
  • アプリのスケーラビリティが向上

障害に強くなる

RDS Proxy は、裏で「スタンバイ用のDB」への切り替えを自動で行えます。つまり、もし今使っているDBが落ちても、アプリ側は意識せずに接続を維持できます。結果として、システム全体の 耐障害性(フェイルオーバー対応力) が上がります。

安全な認証管理

RDS Proxy は、下記のような設定をすることができます。

  • IAM(AWSの認証管理)を使った接続ができる
  • 秘密情報(ユーザー名・パスワード)は Secrets Manager に安全に保存できる

これにより、セキュリティ面でも安心です。

接続のコントロールと保護

RDS Proxy は、接続が多すぎるときに、下記のような動きをします。

  • アプリの接続リクエストの順番を管理
  • スロットリング(意図的に遅らせる) して過負荷を防ぐ
  • 一定の限界を超えたら接続を拒否して、DBを守る

これによって、予測不能なアクセスの急増にも柔軟に対応できます。

また、多くのアプリは、コードを変更しなくても RDS Proxy を使えるようになっています。RDS Proxy は、RDS の主要なバージョンと互換性があるので、導入もスムーズです。

まとめ

RDS Proxy のメリット 説明
✅ 接続の再利用 新しい接続を毎回作らずに済む
✅ スケーラブル 接続急増にも耐えやすい
✅ 障害に強い 自動でスタンバイDBに切り替え
✅ 安全な認証管理 IAMやSecrets Managerと連携
✅ アプリ変更不要 そのまま導入できることが多い

参考

https://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/UserGuide/rds-proxy.html

Discussion