過去問ドリル

DEA-C01:AWS Certified Data Engineer - Associate データの取り込みと変換 問7

データの取り込みと変換/プログラミングの概念の適用

取り込み処理を担う AWS Lambda 関数が、トラフィックのスパイク時にスロットリングされ、ほかの重要な関数の同時実行枠も圧迫しています。最も適切な対応はどれですか。

当サイトのオリジナル問題(DEA-C01:AWS Certified Data Engineer - Associateの出題範囲「データの取り込みと変換」に対応。実際の試験問題ではありません)

正解:C

解説

Lambda のスロットリングは同時実行数の枠に起因します。予約済み同時実行数(reserved concurrency)を設定すると、その関数向けの実行枠を確保すると同時に、その関数が使える上限にもなります。これにより、取り込み関数が他の重要な関数の同時実行枠を圧迫するのを防げます。ただし、予約済み同時実行数を設定しただけで流入スパイクのスロットリングが解消するとは限らず、設定した上限自体でスロットリングが起きることもあります。スパイクに備えるには、取り込み側で SQS などによるバッファリングや再試行、必要な同時実行容量の見積もりを別途検討します。なお、プロビジョンド同時実行数(provisioned concurrency)は主に起動遅延(コールドスタート)を減らす仕組みで、任意のスパイクを無制限に処理するものではありません。タイムアウトやメモリの増加、EC2 への移行は、同時実行の制御という本質的な原因に対応しません。

下線の用語は 用語集 で意味を確認できます。

選択肢ごとの解説

  • A誤り。タイムアウトの延長は同時実行のスロットリングを解決しません。
  • B誤り。メモリ増加は処理速度には寄与し得ますが、同時実行枠の問題は解決しません。
  • C正しい。予約済み同時実行数を設定すれば、関数ごとに同時実行枠を確保・制限でき、重要な関数の枠が圧迫されるのを防げます。ただし上限設定自体でスロットリングが起き得るため、スパイク対策にはバッファリングや再試行も併せて検討します。
  • D誤り。EC2 への移行はサーバーレスの利点を失い、根本原因への対応になりません。
DEA-C01:AWS Certified Data Engineer - Associateの問題を演習モードで解く