Q96 — AWS SAA-C03 第14章

第 96/100 問 | ← 第14章

Q1096. ある企業には、大量のメッセージを受信・処理するETL(Extract, Transform, Load)ジョブがあります。この負荷は1日に数回、急激に増加することがあります。ETLジョブでは、オンプレミスでホストされているカスタマーデータサービスを利用しています。企業は、このカスタマーデータを用いて受信メッセージを強化(enrich)したいと考えています。しかし、このカスタマーデータサービスは、大量のリクエストを処理する際に不安定になる可能性があります。そのため、ソリューションは、カスタマーデータサービスが過負荷になるのを防ぐ必要があります。これらの要件を満たす中で、運用オーバーヘッドが最も少ないソリューションはどれですか?

正解: B. Amazon API Gateway の REST API を作成し、これをカスタマーデータサービスへのプロキシとして使用します。カスタマー識別キー(customer identification key)に基づく API Gateway のキャッシュ機能を有効にします。メッセージ処理器内でこの API を呼び出し、カスタマーデータを用いてメッセージを強化します。

解説

正解は B です。カスタマーデータサービスの過負荷を防ぎながら、ETLジョブの入力メッセージを強化する最適なソリューションを判断するため、各選択肢を検討します。選択肢Aでは、API Gatewayのレート制限によりリクエスト数を制御できますが、これは単にリクエストを遅延または拒否するだけであり、サービスの高負荷下での根本的な不安定性を解決しません。リアルタイムETL処理には不向きな場合があります。選択肢Bでは、API Gatewayのキャッシュ機能をカスタマー識別キーに基づいて有効化することで、同一顧客データに対する繰り返しリクエストをキャッシュから応答できるようになります。これにより、バックエンドのカスタマーデータサービスへの負荷を大幅に低減でき、過負荷状態を防止できます。選択肢Cでは、DynamoDBへの全データ複製が必要となり、データ同期やストレージコストなどの追加の運用・管理負荷が発生します。特にカスタマーデータが頻繁に更新される場合、このアプローチはコストと複雑さの面で非効率です。選択肢Dでは、Lambda関数の予約済み同時実行数により並列実行数を制御できますが、Lambda自体が依然としてカスタマーデータサービスを呼び出すため、サービスの負荷耐性向上には直接寄与しません。したがって、最小限の運用オーバーヘッドでカスタマーデータサービスの過負荷を防ぐには、選択肢Bが最も適しています。API Gatewayのキャッシュは設定・運用が容易であり、既存のアーキテクチャへの変更も最小限で、メッセージ処理器との統合もスムーズです。