Amazon RDS Proxy
アプリケーションのスケーラビリティ、復元力、および安全性を向上させる
RDS Proxy とは何ですか?
RDS Proxy は、Amazon RDS の、可用性が高く、使いやすいフルマネージドデータベースプロキシ機能です。この機能を使用することで、アプリケーションにおいて、1) データベース接続のプールと共有によってよりスケーラブルになり、2) データベースのフェイルオーバー時間を最大 66% 短縮し、フェイルオーバー時であってもアプリケーションの接続を維持することで、回復力がより向上し、3) AWS IAM 認証をデータベースにオプションで強制適用し、認証情報を AWS Secrets Manager にセキュアに保存することでよりセキュアになります。
RDS Proxy の利用を開始するために、追加のインフラストラクチャをプロビジョニングしたり、管理したりする必要はありません。ほとんどのアプリケーションでコード変更なしで有効にできます。
Amazon RDS Proxy の利点
RDS Proxy は、RDS データベースインスタンスに確立した接続のプールを管理し、新しい接続が確立する際に通常発生するデータベースコンピューティングおよびメモリリソースへのストレスを軽減します。使用頻度の低いデータベース接続も共有するため、RDS データベースにアクセスする接続が少なくなります。この接続プーリングにより、データベースは多数のアプリケーション接続とアプリケーション接続の頻度を効率的にサポートできるため、パフォーマンスを低下させることなくアプリケーションをスケーリングできます。
RDS Proxy はアプリケーション接続を維持しながら新しいデータベースインスタンスに自動的に接続することにより、データベースの可用性に影響を及ぼす停止から発生するアプリケーションの中断を最小限に抑えます。フェイルオーバーが発生すると、RDS Proxy はリクエストを新しいデータベースインスタンスに直接ルーティングします。この結果、Aurora および RDS データベースのフェイルオーバー時間が最大 66% 短縮されます。RDS Proxy はマルチ AZ もサポートしており、通常 35 秒未満でのフェイルオーバーを実現するための 2 つの読み取り可能なスタンバイ、2 倍改善された書き込みレイテンシー、追加された読み取りキャパシティを備えているほか、マイナーバージョンアップグレードのダウンタイムが通常 1 秒未満に短縮されます。
RDS Proxy を使用すると、データベースアクセスに IAM 認証を強制的に適用して、データベース認証情報をアプリケーションコードにハードコーディングすることを回避できるため、データセキュリティに対する追加のコントロールが得られます。また、Secrets Manager を介して、データベースの認証情報を一元管理することもできます。
データベースプロキシサーバーは、データベースの負荷が増加したときの処理に役立ちます。従来のプロキシサーバーではアプリケーションをより効果的にスケールできますが、デプロイ、パッチ、管理が難しく、優れた製品の開発に費やすことができるはずのリソースを消費します。RDS Proxy は完全にサーバーレスのフルマネージドデータベースプロキシであるため、ワークロードに合わせて自動的にスケールし、独自のプロキシサーバーのパッチ適用や管理の負担を軽減します。
RDS Proxy は、サポートしているデータベースエンジンのプロトコルと完全な互換性があり、お客様のアプリケーションコードを変更することなく、アプリケーションにデプロイできます。アプリケーション接続を RDS データベースではなくプロキシにポイントするだけで、後はシームレスに管理されます。
Amazon RDS Proxy の開始方法
RDS Proxy の使用をすぐに開始する方法についての情報をお探しですか? 以下に、RDS Proxy の使用を数ステップで開始する方法を示す、極めて重要な技術文書ガイド、ユーザーガイド、およびチュートリアルを示します。
よくある質問
全般
すべて開く予測不能なワークロードのあるアプリケーション: 極めて変動の激しいワークロードをサポートするアプリケーションでは、新しいデータベース接続のバーストを開こうとすることがあります。RDS Proxy の接続ガバナンスにより、データベース接続を効率的に再利用して、予測不可能なワークロードを処理するアプリケーションを適切にスケーリングできます。第 1 に、RDS Proxy を使用すると、複数のアプリケーション接続がデータベース接続を共有でき、データベースリソースを効率的に使用できるようになります。第 2 に、RDS Proxy で、開くデータベース接続の数を調整して、予測可能なデータベースパフォーマンスをお客様が維持できるようになります。3 番目に、RDS Proxy は、アプリケーション全体のパフォーマンスと可用性を維持するために、処理できないアプリケーションリクエストを削除します。
データベース接続を頻繁に開閉するアプリケーション: サーバーレス、PHP、Ruby on Rails などのテクノロジーに基づいて構築したアプリケーションはデータベース接続を頻繁に開閉して、アプリケーションリクエストを処理する場合があります。RDS Proxy を使用すると、お客様はデータベース接続のプールを維持できるため、新しい接続を確立するためにデータベースのコンピューティングとメモリに不必要な負荷をかける必要がなくなります。
接続を開いたままでアイドル状態のアプリケーション: SaaS や e コマースなどの業界のアプリケーションは、データベース接続をアイドル状態に維持して、顧客が再エンゲージするときの応答時間を最小限に抑えます。データベースをオーバープロビジョニングしてほとんどのアイドル接続をサポートするのではなく、RDS Proxy を使用してアイドル接続を保持し、アクティブなリクエストを最適に処理するために必要なデータベース接続のみを確立します。
一時的な障害のために可用性を必要とするアプリケーション: RDS Proxy を使用すると、複雑な障害処理コードを記述することなく、データベース障害を透過的に許容できるアプリケーションを構築できます。RDS Proxy はアプリケーション接続を維持しながら、トラフィックを新しいデータベースインスタンスに自動的にルーティングします。RDS Proxy はドメインネームシステム (DNS) のキャッシュもバイパスして、RDS と Aurora のマルチ AZ データベースのフェイルオーバー時間を最大 66% 削減します。データベースのフェイルオーバー中には、アプリケーションのレイテンシーが増加し、進行中のトランザクションを再試行する必要がある場合があります。
セキュリティの強化と認証情報の一元管理: RDS Proxy は、リレーショナルデータベースで IAM ベースの認証を強制適用する選択肢を提供することで、お客様がよりセキュアなアプリケーションを構築できるようサポートします。RDS Proxy を使用することで、お客様は AWS Secrets Manager を介して、データベースの認証情報を一元管理できます。
RDS Proxy は、リレーショナルデータベースの力とシンプルさを活用する最新のサーバーレスアプリケーションを構築するためのアプローチを変革します。第 1 に、RDS Proxy は、データベース接続をプールして再利用することで、サーバーレスアプリケーションが効率的にスケールするのを可能にします。第 2 に、RDSプロキシを使用すると、Lambda コードでデータベースの認証情報を処理する必要がなくなります。Lambda 関数に関連付けられた IAM 実行ロールを使用して、RDS プロキシとデータベースで認証できます。第 3 に、新しいインフラストラクチャやコードを管理する必要なく、リレーショナルデータベースに支えられたサーバーレスアプリケーションの可能性を最大限に活用できます。RDS Proxy はフルマネージドで、アプリケーションの要求に基づいて容量を自動的にスケールします。
RDS Proxy は、MySQL 互換の Amazon Aurora、PostgreSQL 互換の Amazon Aurora、Amazon RDS for MariaDB、Amazon RDS for MySQL、Amazon RDS for PostgreSQL、Amazon RDS for SQL Server で使用可能です。サポートされるエンジンのバージョンのリストについては、「Amazon Aurora ユーザーガイド」または「Amazon RDS ユーザーガイド」をご覧ください。
Amazon RDS コンソールで数回クリックするだけで、Amazon RDS データベースの RDS Proxy を有効にできます。RDS Proxy を有効にする際に、RDS Proxy にアクセスする VPC とサブネットを指定します。Lambda ユーザーとして、Amazon RDS データベースの RDS Proxy を有効にし、Lambda コンソールを離れることなく、数回クリックするだけでアクセスする Lambda 関数を設定することができます。
- クライアントとプロキシ間の接続に IAM 認証を使用し、プロキシとデータベース間の接続に Secrets Manager を使用する
- クライアントとプロキシ間およびプロキシとデータベース間の接続の両方に IAM 認証を使用し、Secrets Manager へのデータベースのパスワードの保存を不要にする
RDS Proxy を通じたアプリケーションとデータベース間の認証には、複数のオプションを使用できます。
従来のユーザー名とパスワードによる認証を使用し、データベース認証情報を AWS Secrets Manager に保存することで、アプリケーションの認証情報の管理を一元化、保護、簡素化できます。Secrets Manager を使用する場合、データベースに接続するのと同じ方法で RDS Proxy に接続できます。入力したユーザー名とパスワードは、Secrets Manager に保存されている認証情報と照合され、その後にデータベース接続に使用されます。
セキュリティを強化するために、IAM ベースの認証を使用できます。ユーザー名とパスワードを指定する代わりに、アプリケーションは AWS Lambda や EC2 などのサービスに関連付けられた IAM 実行ロールを使用して RDS Proxy で認証できます。IAM 認証には 2 つのオプションがあります:
RDS Proxy を使用した認証の詳細については、「RDS Proxy を介したデータベースへの接続」をご覧ください。
はい。Amazon RDS Proxy SLA の詳細については、Amazon RDS Proxy SLA の詳細ページをご覧ください。
お客様
Acquia
「当社は、お客様のためにパフォーマンスとスケーラビリティを最適化し、改善するために、常に目を光らせています。Drupal はネイティブに接続プーリングをサポートしていないため、リレーショナルデータベース上のアプリケーション接続をより適切にスケーリングできるソリューションが必要でした。RDS Proxy は、当社にとって完璧な選択肢です! RDS Proxy を使用すると、お客様の Drupal アプリケーションは、確立された接続がすぐに使用できるプールを簡単に利用できます。これにより、ウェブサイトのトラフィックの急激な増加をより適切に管理し、データベースの効率を向上させることができるようになりました」
Acquia、Chief Architect、Ed Brennan 氏
CAINZ
「当社には 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 氏
CloudHealth by VMware
「最近、当社の MySQL データベースを Amazon Aurora に移行しました。当社のアプリケーションは多数のデータベース接続を開いたままにしており、接続が急増するとデータベースにストレスがかかり、お客様にサービス停止を引き起こします。Aurora に移行すると、RDS Proxy は、アプリケーションをスケールしてコストを最適化するためのアーキテクチャの重要な部分になりました。RDS Proxy を使用することで、アプリケーションはプロキシへの接続をより多く開くことができ、その結果、ピーク時のデータベース接続数を最大 90% 削減し、データベースを多数の接続による負荷から保護することができました。RDS Proxy は、当社のシステムの安定性の向上とコスト削減に役立ちました。データベース接続に費やすシステムリソースを削減することで、データベースをより少ない Aurora クラスターに統合し、合計運用コストを削減できました」
VMware、Senior Software Architect – CloudHealth、Peter Fein 氏
Dream 11
「RDS Proxy は、2023 年のインドプレミアリーグで私たちにとってゲームチェンジャーでした。これにより、データベースのパフォーマンスと可用性を損なうことなく、ラウンドロック中の大量のトラフィックの急増に対処できました。また、リソースを動的にスケーリングし、コストを最適化することもできました。ユーザーにシームレスなエクスペリエンスを提供することができました。RDS Proxy は、予測不能で大量のトラフィックを処理する必要があるオンラインゲームプラットフォームにとってなくてはならないものです」
Dream 11、Principal Engineer、Bipul Karnani 氏