Q74 — AWS SAP-C02 第3章
第 74/75 問 | ← 第3章
Q299. 自動車レンタル会社が、モバイルアプリ向けのデータを提供するサーバーレスなREST APIを構築しました。このアプリは、リージョンエンドポイントを持つAmazon API Gateway API、AWS Lambda関数、およびAmazon Aurora MySQL Serverless DBクラスターで構成されています。同社は最近、このAPIをパートナー企業のモバイルアプリにも公開しました。その結果、リクエスト数が大幅に増加し、断続的なデータベースのメモリエラーが発生するようになりました。APIトラフィックの分析によると、クライアントが短時間のうちに同一クエリに対する複数のHTTP GETリクエストを送信していることが確認されています。トラフィックは営業時間帯に集中しており、祝日やその他のイベント前後にはピークが見られます。同社は、追加の利用需要に対応できるようにしつつ、このソリューションに関連するコスト増加を最小限に抑える必要があります。 これらの要件を満たす戦略はどれですか?
- A. API Gatewayのリージョンエンドポイントをエッジ最適化エンドポイントに変更し、本番ステージでキャッシュを有効化します。 ✓
- B. Amazon ElastiCache for Redisキャッシュを導入してデータベース呼び出しの結果を保存し、Lambda関数を修正してこのキャッシュを利用するようにします。
- C. Aurora Serverless DBクラスターの設定を変更し、利用可能な最大メモリ量を増加させます。
- D. API Gatewayの本番ステージでレート制限(Throttling)を有効化し、受信リクエスト数を制限するためのレートおよびバースト値を設定します。
正解: A. API Gatewayのリージョンエンドポイントをエッジ最適化エンドポイントに変更し、本番ステージでキャッシュを有効化します。
解説
お詫び申し上げます。以前の回答に誤りがありました。要件を再評価した結果、正解となる戦略は以下のとおりです: A. API Gatewayのリージョンエンドポイントをエッジ最適化エンドポイントに変更し、本番ステージでキャッシュを有効化します。 API Gatewayのリージョンエンドポイントをエッジ最適化エンドポイントに変更することで、CloudFrontのグローバルネットワークを活用でき、レイテンシの改善とバックエンドサービスへの負荷低減が実現されます。また、API Gatewayの本番ステージでキャッシュを有効化すれば、頻繁にアクセスされるレスポンスをキャッシュから直接配信できるようになり、バックエンドへのリクエスト数をさらに削減できます。 選択肢B(Amazon ElastiCache for Redisキャッシュの導入)も、データベースクエリ結果のキャッシュによってパフォーマンス向上を図る有効な手段ではありますが、本シナリオでは、API Gateway自体のエンドポイント変更とキャッシュ機能の活用により、追加のキャッシュ層を導入せずに同様の効果が得られます。 選択肢C(Aurora Serverless DBクラスターの最大メモリ量の増加)は、断続的なメモリエラーの緩和には役立つ可能性がありますが、同一クエリの繰り返しによる負荷低減という根本的な課題には対応していません。 選択肢D(API Gateway本番ステージでのレート制限の有効化)は、着信リクエスト数を制限できますが、正当なリクエストにも悪影響を及ぼす可能性があり、同一クエリの繰り返しによる負荷低減という本質的な課題には対応していません。 したがって、追加の利用需要への対応力を高めつつ、コスト増加を最小限に抑えるために最も適した戦略は: A. API Gatewayのリージョンエンドポイントをエッジ最適化エンドポイントに変更し、本番ステージでキャッシュを有効化することです。