DVAトラブルシューティングと最適化
DynamoDBテーブル(PROVISIONEDモード、WCU=1000に設定)で、特定の時間帯にProvisionedThroughputExceededExceptionが頻発している。CloudWatchで確認すると、テーブル全体のConsumedWriteCapacityUnits(消費済み書き込みキャパシティユニット)は平均250程度であるにもかかわらず、エラーが発生し続けている。最も可能性の高い原因はどれか?
Aテーブル全体のWCUプロビジョニング量が不足している
テーブル全体のWCUに余裕があるため総プロビジョニング不足は否定されます。
B特定のパーティションキーに書き込みが集中するホットパーティション問題が発生している
✓ 正解
テーブル全体のConsumedWCUは250/1000と余裕があるにもかかわらずスロットリングが発生する場合、ホットパーティションが原因である可能性が高いです。DynamoDBのスループットはパーティション単位で均等に分散されるため、特定のパーティションキーへ書き込みが集中するとそのパーティションの上限を超えます。解決策はパーティションキーの設計見直しやキーへのランダムサフィックス付与(シャーディング)などです。
CDynamoDBのVPCエンドポイントへのネットワーク接続が不安定になっている
VPCエンドポイントのネットワーク不安定はタイムアウトや接続エラーを引き起こしますが、ProvisionedThroughputExceededExceptionではなくConnectionErrorやRequestTimeoutとして現れます。
DLambda関数からのDynamoDB呼び出しで同時実行数がアカウント上限に達している
Lambda同時実行数の上限超過はLambda側のTooManyRequestsExceptionを引き起こすものであり、DynamoDB側のProvisionedThroughputExceededExceptionとは無関係です。
解説
テーブル全体のConsumedWCUは250/1000と余裕があるにもかかわらずスロットリングが発生する場合、ホットパーティションが原因である可能性が高いです。DynamoDBのスループットはパーティション単位で均等に分散されるため、特定のパーティションキーへ書き込みが集中するとそのパーティションの上限を超えます。解決策はパーティションキーの設計見直しやキーへのランダムサフィックス付与(シャーディング)などです。
選択肢A:テーブル全体のWCUに余裕があるため総プロビジョニング不足は否定されます。
選択肢C:VPCエンドポイントのネットワーク不安定はタイムアウトや接続エラーを引き起こしますが、ProvisionedThroughputExceededExceptionではなくConnectionErrorやRequestTimeoutとして現れます。
選択肢D:Lambda同時実行数の上限超過はLambda側のTooManyRequestsExceptionを引き起こすものであり、DynamoDB側のProvisionedThroughputExceededExceptionとは無関係です。
ドメイン別正答率・予想スコアでリアルタイムに実力把握
無限ノックでDVAを徹底対策。全問AI生成のオリジナル問題。
無料で演習を始める →