SAA弾力性に優れたアーキテクチャの設計
ある企業はLambda関数を使ったサーバーレスAPIをAPI Gatewayで公開しています。この関数はDynamoDBにアクセスしますが、トラフィックの急増時にDynamoDBへのスロットリングエラーが発生しています。最も適切な対処法はどれですか?
ADynamoDBのプロビジョンドスループットを手動で増加させる
プロビジョンドスループットの手動増加は対応が遅れ、スパイク時には間に合わない場合があります。
BDynamoDBをオンデマンドキャパシティモードに切り替える
✓ 正解
DynamoDBのオンデマンドキャパシティモードは、トラフィックに応じて自動的にスループットをスケールします。プロビジョンドモードでは事前に読み書きキャパシティを設定する必要がありますが、トラフィックが予測困難な場合やスパイクが発生する場合にはオンデマンドモードが適しています。スロットリングエラーが自動的に解消されます。
CLambda関数の同時実行数を制限してDynamoDBへのリクエストを抑制する
Lambda同時実行数の制限はスロットリングを防ぐのではなくAPIの処理能力を制限するため、ユーザーエクスペリエンスが低下します。
DDynamoDB DAXをキャッシュ層として追加する
DynamoDB DAXはキャッシュで読み取りのスロットリング緩和には有効ですが、書き込みのスロットリングには対応しておらず、今回のケースでは根本解決になりません。
解説
DynamoDBのオンデマンドキャパシティモードは、トラフィックに応じて自動的にスループットをスケールします。プロビジョンドモードでは事前に読み書きキャパシティを設定する必要がありますが、トラフィックが予測困難な場合やスパイクが発生する場合にはオンデマンドモードが適しています。スロットリングエラーが自動的に解消されます。
選択肢A のプロビジョンドスループットの手動増加は対応が遅れ、スパイク時には間に合わない場合があります。
選択肢C の Lambda同時実行数の制限はスロットリングを防ぐのではなくAPIの処理能力を制限するため、ユーザーエクスペリエンスが低下します。
選択肢D の DynamoDB DAXはキャッシュで読み取りのスロットリング緩和には有効ですが、書き込みのスロットリングには対応しておらず、今回のケースでは根本解決になりません。
ドメイン別正答率・予想スコアでリアルタイムに実力把握
無限ノックでSAAを徹底対策。全問AI生成のオリジナル問題。
無料で演習を始める →