TL; DR
- Lambda から読み書きする先には DynamoDB を使え
先行研究
おまけ
雑にまとめ
S3の読み取り平均時間 0.14秒
DynamoDBの読み取り平均時間 0.03秒
とあるので Lambda からの S3 読み取りは 140ms 消費されて DynamoDB の読み取りは 30ms 消費されていることになります。
入出力処理なので、これはおそらく固定のコストになっていて Lambda の実行に於いて 100ms の違いはなかなかにインパクトのあるものに思えますので Lambda から読み込みをする際にはまず DynamoDB を選ぶのが良いです。
興味深いフローチャート
(勝手に雑訳)
データは400KB以上だ→[S3]
↓
いつも早く読めて欲しい→[DynamoDB]
↓
バージョン管理をしたい→[S3]
↓
複数の項目を確実に同時に編集したい→[DynamoDB]
↓
もしかすると瞬間的にヤバい量のアクセスが生じる→[S3]
↓
データの追記をしたい→[DynamoDB]
↓
バイナリデータである→[S3]
↓
データベースっぽくクエリを使いたい→[DynamoDB]
↓
HTTPSでアクセスしたい→[S3]
↓
ほとんどのデータが4KB未満である→[DynamoDB]
↓
お安く保管したい→[S3]
↓
[どっちでも問題なし]