Amazon RDS Proxy

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

Amazon RDS Proxy を選ぶ理由

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

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

Amazon RDS Proxy は、コードを変更することなく、ほとんどのアプリケーションで有効にすることができます。Amazon 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 のメリット

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

ユースケース

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

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

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

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

予測できないワークロードを伴うアプリケーション

極めて変動の激しいワークロードをサポートするアプリケーションでは、新しいデータベース接続のバーストを開こうとすることがあります。Amazon RDS Proxy の接続ガバナンスにより、データベース接続を効率的に再利用して、予測不可能なワークロードを処理するアプリケーションを適切にスケーリングできます。第 1 に、Amazon RDS Proxy を使用すると、複数のアプリケーション接続がデータベース接続を共有でき、データベースリソースを効率的に使用できるようになります。第 2 に、Amazon RDS Proxy で、開くデータベース接続の数を調整して、予測可能なデータベースパフォーマンスをお客様が維持できるようになります。3 番目に、Amazon RDS Proxy は、アプリケーション全体のパフォーマンスと可用性を維持するために、処理できないアプリケーション要求を削除します。