Q58 — AWS SAA-C03 第4章

第 58/105 問 | ← 第4章

Q253. ある企業が Amazon RDS for MySQL のDBインスタンスを起動しました。このデータベースへの接続のほとんどはサーバーレスアプリケーションから発生しています。アプリケーションによるデータベースへのトラフィックは、ランダムな間隔で大きく変動します。高負荷時において、ユーザーはアプリケーションでデータベース接続拒否エラーが発生していると報告しています。 この問題を、最も少ない運用オーバーヘッドで解決するソリューションはどれですか?

正解: A. RDS Proxy にプロキシを作成し、ユーザーのアプリケーションが RDS Proxy を経由して DB インスタンスを利用するように設定する

解説

接続拒否エラー(例:'Too many connections')は、MySQL の最大接続数(max_connections)を超えた場合に発生します。サーバーレスアプリケーション(例:AWS Lambda)は短時間で多数の接続を確立・切断する傾向があり、接続の急増や接続リークにより、DB の接続数制限に達しやすくなります。RDS Proxy は、接続プール機能と自動接続再利用を提供し、アプリケーションからの接続要求を効率的に管理・調整することで、DB の接続数制限を超過することを防ぎます。これは、コード変更やアプリケーションの再設計を最小限に抑え、運用オーバーヘッドが極めて低いソリューションです。一方、ElastiCache for Memcached はキャッシュ用途であり、接続管理には対応しておらず、接続拒否エラーの根本原因を解決しません。インスタンスタイプの変更(C)や Multi-AZ 構成(D)は、可用性やパフォーマンス向上には寄与しても、接続数制限そのものを緩和するものではなく、また追加の構成・監視・障害対応などの運用負荷が発生します。したがって、最も少ない運用オーバーヘッドで問題を解決するのは選択肢 A です。