Amazon RDS Proxy

アプリケーションのスケーラビリティ、復元力、および安全性を向上させる

Amazon RDS Proxy は、Amazon リレーショナルデータベースサービス (RDS) 向けの高可用性フルマネージ型データベースプロキシで、アプリケーションのスケーラビリティやデータベース障害に対する回復力と安全性を高めます。

最新のサーバーレスアーキテクチャに構築されたアプリケーションなどのアプリケーションの多くは、データベースサーバーへの接続を多数開くことができます。このとき、データベース接続の開閉が高頻度で実行されて、データベースメモリやコンピューティングリソースを消耗する可能性があります。Amazon RDS Proxy では、アプリケーションがデータベースと確立した接続をプールおよび共有でき、データベースの効率とアプリケーションのスケーラビリティが向上します。RDS Proxy を使用すると、Aurora と RDS データベースのフェイルオーバー時間が最大 66% 短縮し、AWS Secrets Manager および AWS Identity and Access Management (IAM) との統合によりデータベースの認証情報、認証、アクセスの管理が可能となります。

Amazon RDS Proxy は、コードを変更することなく、ほとんどのアプリケーションで有効にすることができます。RDS Proxy の利用を開始するために、追加のインフラストラクチャをプロビジョニングまたは管理する必要はありません。料金はシンプルで、基盤となるデータベースインスタンスの容量に基づきます。Amazon Aurora Serverless v2 インスタンスでは Aurora Capacity Unit (ACU) ごとに、プロビジョニングされたインスタンスでは vCPU ごとに課金されます。Amazon RDS Proxy は、Amazon Aurora PostgreSQL 互換エディション、Amazon Aurora MySQL 互換エディション、Amazon RDS for PostgreSQL、Amazon RDS for MySQL、Amazon RDS for MariaDB、および Amazon RDS for SQL Server に利用できます。

Amazon RDS Proxy のご紹介 (12:13)

RDS プロキシの利点

Amazon RDS Proxy インスタンスは、RDS データベースインスタンスに確立した接続のプールを管理し、新しい接続が確立する際に通常発生するデータベースコンピューティングおよびメモリリソースへのストレスを軽減します。RDS Proxy では使用頻度の低いデータベース接続も共有するため、RDS データベースにアクセスする接続が少なくなります。この接続プーリングにより、データベースは多数のアプリケーション接続とアプリケーション接続の頻度を効率的にサポートできるため、パフォーマンスを低下させることなくアプリケーションをスケーリングできます。
RDS Proxy はアプリケーション接続を維持しながら新しいデータベースインスタンスに自動的に接続することにより、データベースの可用性に影響を与える停止より発生するアプリケーションの中断を最小限に抑えます。フェイルオーバーが発生すると、RDS Proxy は要求を新しいデータベースインスタンスに直接ルーティングします。この結果、Aurora および RDS データベースのフェールオーバー時間が、最大 66% 短縮します。RDS Proxy はマルチ AZ もサポートしており、通常 35 秒未満でのフェイルオーバーできるように 2 つの読み取り可能なスタンバイ、書き込みレイテンシー 2 倍向上、読み取り容量の増加、マイナーバージョンアップグレードのダウンタイム通常 1 秒未満に短縮などの特徴があります。
Amazon RDS Proxy を使用すると、データベースアクセスに IAM 認証を強制的に適用して、データベース認証情報をアプリケーションコードにハードコーディングすることを回避できるため、データセキュリティの制御性をより向上させることができます。また、RDS Proxy は、AWS Secrets Manager を介して、データベースの認証情報を一元管理することもできます。
データベースプロキシサーバーは、データベースの負荷が増加したときの処理に役立ちます。従来のプロキシサーバーではアプリケーションをより効果的に拡張できますが、デプロイ、パッチ、管理が難しく、優れた製品の開発に費やすことができるはずの時間とエネルギーを消費します。Amazon RDS Proxy は、独自のプロキシサーバーにパッチを適用して管理するといった負担が増えることなく、データベースプロキシの持つ利点を享受できます。RDS Proxy は完全にサーバーレスで、ワークロードに合わせて自動的にスケーリングします。
Amazon RDS Proxy は、サポートしているデータベースエンジンのプロトコルと完全な互換性があり、お客様のアプリケーションコードを変更することなく、アプリケーションに RDS Proxy をデプロイできます。アプリケーション接続を RDS データベースではなくプロキシに向けるだけで、後はシームレスに管理されます。

仕組み

Amazon RDS Proxy は、アプリケーションとリレーショナルデータベースの間に配置されており、データベースへの接続を効率的に管理し、アプリケーションのスケーラビリティを向上します。

Amazon RDS Proxy の仕組み

ユースケース

サーバーレスアプリケーションの開発

Amazon RDS Proxy ではリレーショナルデータベースをより効率的に使用するため、よりスケーラブルで可用性の高いサーバーレスアプリケーションを構築できます。最新のサーバーレスアプリケーションは非常にさまざまなワークロードをサポートするので、新しいデータベース接続のバーストを開こうとしたり、多くの接続を開いたままアイドル状態にしようとする場合があります。接続が急増するまたは多数の接続が開かれることから、データベースサーバーに負荷がかかり、クエリが遅くなり、アプリケーションのスケーラビリティが制限される可能性があります。RDS Proxy では、既に確立されたデータベース接続をプールおよび共有することで、サーバーレスアプリケーションからより多くの接続に効率的に拡張できます。さらに、開かれるデータベース接続の総数を調整して、データベースパフォーマンスの予測を継続することも可能です。最後に、RDS Proxy は、データベースのパフォーマンスを低下させる可能性がある処理の難しいアプリケーション接続を拒否することで、サーバーレスアプリケーションの可用性を維持します。

Software-as-a-Service (SaaS) および e コマースアプリケーション

SaaS または e コマースアプリケーションではデータベース接続の多くを開いたままにして、ユーザーの応答時間を短縮することがよくありますが、特定の瞬間にアクティブに使用できる接続はこれらの開いているうちのごく一部だけです。これらの開いているがアイドル状態の接続は、依然、データベースメモリとコンピューティングリソースを消費します。データベースをオーバープロビジョニングして大部分のアイドル接続をサポートするのではなく、Amazon RDS Proxy を使用してアプリケーションからのアイドル接続を保持し、アクティブな要求を最適に処理するために必要なデータベース接続のみを確立します。

よくある質問で他のユースケースを探す