はじめに
EBSに対するアクセス増加に対してはIOPSやスループット重視のストレージタイプにするのでしょうが、S3に対するアクセスが増える場合の対処について、知らなかったのでメモ書き。
対処
ワークロードが急増したときに S3 バケットのパフォーマンスを向上させるには、どうすればよいですか?
https://aws.amazon.com/jp/premiumsupport/knowledge-center/s3-bucket-performance-improve/
平たく言うと、オブジェクト名にランダムな文字列(プレフィックス)を含めることで、書き込まれるパーティションを分散できる、というものらしいです。
参考ページ
リクエスト率およびパフォーマンスのガイドライン
https://docs.aws.amazon.com/ja_jp/AmazonS3/latest/dev/request-rate-perf-considerations.html
ここに書かれているワークロードを超えたら先述の対処を考えなさい、という一つの基準。
- 3,500回以上のPUT/POST/DELETEリクエスト(秒・プレフィックス毎)
- 5,500回以上のGETリクエスト(秒・プレフィックス毎)
プレフィックスが無くてもそこそこの性能が出るようになったのはどうも割と最近みたいです。