Q34 — AWS SAA-C03 第16章

第 34/100 問 | ← 第16章

Q1234. ある企業がAWS上でサーバーレスなECサイトアプリケーションを実行しています。このアプリケーションでは、Amazon API GatewayがAWS LambdaのJava関数を呼び出しており、Lambda関数はデータ保存のためAmazon RDS for MySQLデータベースに接続しています。最近のセール期間中、ウェブトラフィックが急増し、APIのパフォーマンス低下およびデータベース接続失敗が発生しました。企業は、Lambda関数のレイテンシを最小限に抑え、トラフィックの急増にも対応できるソリューションを実装する必要があります。これらの要件を満たすとともに、アプリケーションへの変更を最小限に抑えるソリューションはどれですか?

正解: B. RDS Proxyエンドポイントを作成します。データベースの認証情報をAWS Secrets Managerに格納し、必要なIAM権限を設定します。Lambda関数を更新してRDS Proxyエンドポイントに接続するようにします。さらに、Lambda関数のプロビジョニング済み同時実行数を増加させます。

解説

サーバーレスECアプリケーションにおける高トラフィック時のAPIパフォーマンス低下とデータベース接続失敗という課題に対処するには、以下の要件を満たすソリューションが必要です:(1)Lambda関数のレイテンシ最小化(特にデータベース接続確立時間の短縮)、(2)トラフィック急増への耐性(接続数の急増への対応)、(3)アプリケーションへの変更を最小限に抑えること。RDS Proxyは、Amazon RDS向けの完全マネージド型データベースプロキシであり、接続プーリング・機能により、サーバーレス環境(例:Lambda)における接続効率を大幅に向上させ、レイテンシ低減と障害耐性を実現します。一方、プロビジョニング済み同時実行数は、Lambda関数の初期化済みインスタンス数を保証し、コールドスタートを抑制して一貫した応答性を提供します。予約済み同時実行数は、他の関数への影響を防ぐための制限機能であり、パフォーマンス改善や接続管理には直接寄与しません。選択肢Aは、ハンドラ外での接続確立により一部のレイテンシ削減は可能ですが、RDS Proxyほどの接続効率化やスケーラビリティは得られず、根本的な解決にはなりません。選択肢Cは、max_connectionsの増加による接続数上限緩和のみで、接続プーリングやLambdaのスケール特性への対応が不十分であり、再起動によるダウンタイムも発生します。選択肢DはRDS Proxyの活用という点で有効ですが、予約済み同時実行数の増加は要件(レイテンシ低減・一貫したパフォーマンス)を満たさないため不適切です。一方、選択肢Bは、RDS Proxyによる接続効率化とプロビジョニング済み同時実行数によるコールドスタート抑制を組み合わせており、アプリケーションコードの変更は接続文字列の更新のみという最小限の変更で要件をすべて満たします。したがって、正解はBです。