AWS の認定試験勉強中にわからなくなって調べたのでまとめておく。
S3 のバケットは大きな箱で、そのなかに特にフォルダ分けせず、ポイポイデータを投げ込んでいく形式。
しかしこれだとアクセスが集中したときにパフォーマンスが下がってしまう。
「1プレフィックスあたり:PUT/POST/DELETE 3,500回/秒、GET/HEAD 5,500回/秒」という制限があるからだ。
そこでプレフィックスを付けて例えば、以下のように命名してデータを入れていくと…
- a/file0001.jpg
- a/file0002.jpg
- a/file0003.jpg
- b/file0004.jpg
- b/file0005.jpg
- b/file0006.jpg
- c/file0007.jpg
- c/file0008.jpg
- c/file0009.jpg
- ...
a/、b/、c/それぞれのプレフィックスに対して「1プレフィックスあたり:PUT/POST/DELETE 3,500回/秒、GET/HEAD 5,500回/秒」という制限がかかるので、簡単に言うとこの制限が3倍に緩和される。
結果パフォーマンスが下がりづらくなるということらしい。
まとめ
規則性のある命名をしておくと、アクセスが集中したときにS3側が勝手に「ここで分け区切ると良さそう…」と判断してプレフィックスで処理を分けてくれるからパフォーマンスが上がるっていうことか
参考