目標とするビジネス成果 - AWS 規範ガイダンス

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

目標とするビジネス成果

このセクションでは、以下のビジネス成果について説明します。 

  • アプリケーションのスケーラビリティの向上

  • アプリケーションのパフォーマンスの向上

  • アプリケーションの可用性の向上

  • アプリケーションのセキュリティの強化

  • 運用の複雑さの軽減

アプリケーションのスケーラビリティの向上

アプリケーションのスケーラビリティは、同時接続を処理するデータベースの能力に依存します。同時接続の数は、データベースインスタンスタイプによって異なります。例えば、t3.small インスタンスタイプは 187 個の同時データベース接続をサポートできます。データベースへの追加のクライアント接続を試みると、失敗します。Amazon RDS Proxy エンドポイントを使用してデータベースを操作すると、次の図に示すように、必要なクライアント接続がインスタンスタイプでサポートされている最大接続数を超える場合でも、アプリケーションは動作し続けることができます。

RDS Proxy を使用しない場合 13 個の接続が失敗し、RDS Proxy を使用するとすべての接続が成功していることを示すグラフ。

RDS Proxy は接続プーリングを使用しているため、RDS Proxy エンドポイントを使用するテストアプリケーションでは、データベースインスタンスの同時接続数が 187 個に制限されている場合でも、クライアント接続数を 20,000 個までスケールすることができました。

Amazon RDS Proxy は、スケーリングが必要なアーキテクチャに有用なコンポーネントです。

アプリケーションのパフォーマンスの向上

アイドル接続とは、トランザクションを処理していないものの、データベースサーバー上のメモリと CPU を消費しているデータベース接続です。また、未処理のトランザクションがあるクライアントセッションがアイドル状態になると、autovacuum プロセスによるデッドタプルのクリーンアップがブロックされます。デッドタプルはデータベーステーブルの肥大化を引き起こし、SQL クエリの速度が低下します。Amazon RDS for PostgreSQL データベースは、デフォルトでアイドル状態の接続を 24 時間維持しま (idle_in_transaction_session_timeout パラメータで設定)。

RDS Proxy は、アイドル接続をアクティブに管理します。デフォルトでは、アイドル状態が 30 分以上継続している場合は、アイドル状態の接続を閉じます (IdleClientTimeout パラメータで設定)。アイドル状態のセッションとそのセッションで使用されるリソースをより早くクリアすると、CPU、メモリ、autovacuum プロセスへの影響を軽減できます。

Amazon RDS Proxy はアイドル接続を効率的に管理し、アプリケーションのパフォーマンスを向上させます。

アプリケーションの可用性の向上

アプリケーションの可用性は、データベースフェイルオーバーの応答時間に依存します。データベースのフェイルオーバー中に、アプリケーションでは処理中のトランザクションでエラーが発生します。これにより、エンドユーザーに対するアプリケーションの可用性が低下します。

RDS Proxy はデータベースフェイルオーバーに対応しています。データベースフェイルオーバーが発生すると、RDS Proxy は、データベースとの新しい接続を作成できるようになるまで、アプリケーション側からの受信リクエストをキューに入れます。これにより、処理中のトランザクションのエラーを防ぎ、アプリケーションの可用性が向上します。

ブログ投稿「Amazon RDS Proxy を使用したアプリケーションの可用性の向上」では、Amazon Aurora データベースで RDS Proxy を使用する利点について説明しています。RDS Proxy を使用した場合の平均フェイルオーバー時間は 3.1 秒でしたが、データベースへの直接接続を使用した場合は 24 秒でした。これは 87% の増加です。

Amazon RDS Proxy を使用することで、アプリケーションの可用性が向上します。

アプリケーションのセキュリティの強化

RDS Proxy は TLS/SSL と AWS Identity and Access Management (IAM) を使用するため、クライアントアプリケーションと基盤となる Postgres データベース間のセキュリティの追加レイヤーとして機能します。RDS Proxy を使用すると、プロキシへのアプリケーション接続に、より強力なセキュリティ要件 (TLS 1.2 と IAM ロール) を使用できます。

RDS Proxy は からデータベース認証情報を取得し AWS Secrets Manager、RDS Proxy ユーザーの IAM 認証を設定できます。これを行うと、データベースでユーザー名とパスワードなどのネイティブ認証方法を使用している場合でも、データベースへのアクセスに IAM 認証を適用することができます。これにより、アプリケーションでデータベースの認証情報を管理する必要性が減り、アプリケーションのセキュリティ体制が強化されます。

運用の複雑さの軽減

高可用性と負荷分散を実現するには、接続プーラーを追加のプロキシサーバーで補完する必要があります。この設定によって、運用の複雑さがさらに増します。従来のプロキシサーバーでは、デプロイ、パッチ適用、管理が困難でした。このようなサーバーに時間と労力を費やすよりも、製品開発に有効に活用するべきです。

Amazon RDS Proxy では、独自のプロキシサーバーにパッチを適用して管理する手間をかけずに、データベースプロキシの利点を得ることができます。RDS Proxy はサーバーレスで、ワークロードに合わせて自動的にスケーリングされます。RDS Proxy にはセルフサービス設定オプションがあるため、デベロッパーの作業速度が向上し、新しいアプリケーションを迅速に配信できるようになります。