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

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

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

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

「最近、当社の MySQL データベースを Amazon Aurora に移行しました。当社のアプリケーションは多数のデータベース接続を開いたままにしており、接続が急増するとデータベースにストレスがかかり、お客様にサービス停止を引き起こします。Amazon Aurora に移行すると、RDS Proxy は、アプリケーションをスケーリングしてコストを最適化するためのアーキテクチャの重要な部分になりました。RDS Proxy を使用することで、アプリケーションはプロキシに対してはるかに多くの接続を開くことができました。これにより、ピーク時にデータベース接続が最大 90% 削減され、データベースが多数の接続から隔離されました。RDS Proxy は、システムの安定性を向上させるだけでなく、コストの削減にも役立ちました。データベース接続に使用されるシステムリソースが減るため、データベースをより少数の Amazon Aurora クラスターに統合でき、総運用コストを削減できます」
CloudHealth by VMware のシニア ソフトウェア アーキテクト、Peter Fein 氏
今すぐ Amazon RDS Proxy を始める
Amazon RDS または AWS Lambda コンソールに移動し、RDS データベースの Amazon RDS Proxy エンドポイントを作成すれば、数回のクリックだけで Amazon RDS Proxy を開始できます。その後、アプリケーションを Amazon RDS Proxy エンドポイントに向けることができます。