Amazon RDS プロキシは、Amazon Relational Database Service (RDS) 向けの高可用性フルマネージド型データベースプロキシで、アプリケーションのスケーラビリティやデータベース障害に対する回復力と安全性を高めます。
最新のサーバーレスアーキテクチャに構築されたアプリケーションなどのアプリケーションの多くは、データベースサーバーへの接続を多数開くことができます。このとき、データベース接続の開閉が高頻度で実行されて、データベースメモリやコンピューティングリソースを消耗する可能性があります。Amazon RDS プロキシでは、アプリケーションがデータベースと確立した接続をプールおよび共有でき、データベースの効率とアプリケーションのスケーラビリティが向上します。RDS プロキシを使用すると、Aurora と RDS データベースのフェイルオーバー時間が最大 66% 短縮し、AWS Secrets Manager および AWS Identity and Access Management (IAM) との統合によりデータベースの認証情報、認証、アクセスの管理が可能となります。
Amazon RDS プロキシは、ほとんどのアプリケーションでコードを変更せずに利用できます。インフラストラクチャを追加してプロビジョニングや管理を実施する必要はありません。料金はシンプルで予測しやすくなっており、例えば、プロキシが有効になっているデータベースインスタンスの vCPU ごとに、料金をお支払いいただきます。 Amazon RDS プロキシは、Aurora MySQL、Aurora PostgreSQL、RDS MySQL、RDS PostgreSQL で一般的に利用できるようになりました。
利点
アプリケーションのパフォーマンスの向上
Amazon RDS プロキシインスタンスは、RDS データベースインスタンスに確立した接続のプールを管理し、新しい接続が確立する際に通常発生するデータベースコンピューティングおよびメモリリソースへのストレスを軽減します。RDS プロキシでは使用頻度の低いデータベース接続も共有するため、RDS データベースにアクセスする接続が少なくなります。 この接続プーリングにより、データベースは多数のアプリケーション接続とアプリケーション接続の頻度を効率的にサポートできるため、パフォーマンスを低下させることなくアプリケーションをスケーリングできます。
アプリケーションの可用性を向上
アプリケーション接続を維持しながら新しいデータベースインスタンスに自動的に接続することにより、データベースの可用性に影響を与える停止より発生するアプリケーションの中断を最小限に抑えます。フェイルオーバーが発生すると、RDS プロキシは要求を新しいデータベースインスタンスに直接ルーティングします。この結果、Aurora および RDS データベースのフェールオーバー時間が、最大 66% 短縮します。
アプリケーションのセキュリティの管理
Amazon RDS プロキシを使用すると、データベースアクセスに IAM 認証を強制的に適用して、データベース認証情報をアプリケーションコードにハードコーディングすることを回避できるため、データセキュリティの制御性をより向上させることができます。また、RDS プロキシは、AWS Secrets Manager を介して、データベースの認証情報を一元管理することもできます。
フルマネージド
データベースプロキシサーバーは、データベースの負荷が増加したときの処理に役立ちます。従来のプロキシサーバーではアプリケーションをより効果的に拡張できますが、デプロイ、パッチ、管理が難しく、優れた製品の開発に費やすことができるはずの時間とエネルギーを消費します。Amazon RDS プロキシは、独自のプロキシサーバーにパッチを適用して管理するといった負担が増えることなく、データベースプロキシの持つ利点を享受できます。RDS プロキシは完全にサーバーレスで、ワークロードに合わせて自動的にスケーリングします。
データベースとの完全な互換性
Amazon RDS プロキシは、サポートしているデータベースエンジンのプロトコルと完全な互換性があり、お客様のアプリケーションコードを変更することなく、アプリケーションに RDS プロキシをデプロイできます。アプリケーション接続を RDS データベースではなくプロキシに向けるだけで、後はシームレスに管理されます。
可用性と耐久性
Amazon RDS プロキシは可用性が高く、インフラストラクチャの障害から保護するために複数のアベイラビリティーゾーン (AZ) にデプロイされています。各アベイラビリティーゾーンは、その独自の、物理的にはっきりと独立したインフラストラクチャ上で稼働しています。また高い信頼性を保つように設計されています。 万が一インフラストラクチャの障害が発生した場合でも、RDS プロキシエンドポイントはオンラインのままであり、一貫性が保たれているため、アプリケーションで引き続きデータベース操作を実行できます。
仕組み
Amazon RDS プロキシは、アプリケーションとリレーショナルデータベースの間に配置されており、データベースへの接続を効率的に管理し、アプリケーションのスケーラビリティを向上します。

ユースケース
サーバーレスアプリケーションの開発
Amazon RDS プロキシではリレーショナルデータベースをより効率的に使用するため、よりスケーラブルで可用性の高いサーバーレスアプリケーションを構築できます。最新のサーバーレスアプリケーションは非常にさまざまなワークロードをサポートするので、新しいデータベース接続のバーストを開こうとしたり、多くの接続を開いたままアイドル状態にしようとする場合があります。接続が急増するまたは多数の接続が開かれることから、データベースサーバーに負荷がかかり、クエリが遅くなり、アプリケーションのスケーラビリティが制限される可能性があります。RDS プロキシでは、既に確立されたデータベース接続をプールおよび共有することで、サーバーレスアプリケーションからより多くの接続に効率的に拡張できます。さらに、開かれるデータベース接続の総数を調整して、データベースパフォーマンスの予測を継続することも可能です。最後に、RDS プロキシは、データベースのパフォーマンスを低下させる可能性がある処理の難しいアプリケーション接続を拒否することで、サーバーレスアプリケーションの可用性を維持します。
Software-as-a-Service (SaaS) および e コマースアプリケーション
SaaS または e コマースアプリケーションではデータベース接続の多くを開いたままにして、ユーザーの応答時間を短縮することがよくありますが、特定の瞬間にアクティブに使用できる接続はこれらの開いているうちのごく一部だけです。これらの開いているがアイドル状態の接続は、依然、データベースメモリとコンピューティングリソースを消費します。データベースをオーバープロビジョニングして大部分のアイドル接続をサポートするのではなく、Amazon RDS プロキシを使用してアプリケーションからのアイドル接続を保持し、アクティブな要求を最適に処理するために必要なデータベース接続のみを確立します。
主なお客様

「当社は、お客様のためにパフォーマンスとスケーラビリティを最適化し、改善するために、常に目を光らせています。Drupal はネイティブに接続プーリングをサポートしていないため、リレーショナルデータベース上のアプリケーション接続をより適切にスケーリングできるソリューションが必要でした。RDS プロキシは、当社にとって完璧な選択肢です! RDS プロキシを使用すると、お客様の Drupal アプリケーションは、確立された接続がすぐに使用できるプールを簡単に利用できます。これにより、ウェブサイトのトラフィックの急激な増加をより適切に管理し、データベースの効率を向上させることができるようになりました」
Acquia 社のチーフアーキテクト、Ed Brennan 氏

「当社には AWS Lambda に基づくサーバーレス API インフラストラクチャがあり、何万人ものユーザーをサポートすることが想定されており、スケーラブルなバックエンドデータストアが必要です。従来、このようなシナリオでは NoSQL データベースに依存してきましたが、この状況では、Amazon RDS および Amazon Aurora データベースによって提供されるデータを管理およびアクセスするための強力な SQL クエリ機能が必要であることが課題となっていました。当社は、RDS および Aurora データベースの前にある RDS プロキシを使用することで、この課題に対処できるようになりました。当社のテストでは、ピーク負荷時に RDS プロキシを使用すると、応答時間が 4 倍向上することがわかりました。RDS プロキシは、リレーショナルデータベースで使い慣れた SQL ステートメントを使用でき、エンドポイントを切り替えるだけで済むため、当社にメリットをもたらしてくれます」
カインズ社の Digital Strategy Division 所属の Masahiro Arai 氏
今すぐ Amazon RDS プロキシを始める
Amazon RDS または AWS Lambda コンソールに移動し、RDS データベースの Amazon RDS プロキシエンドポイントを作成すれば、数回のクリックだけで Amazon RDS プロキシを開始できます。その後、アプリケーションを Amazon RDS プロキシエンドポイントに向けることができます。