AWS
S3

【AWSメモ】S3の書き込み/読み込み性能が向上

docomo Developer support@akatsukahaです

下記の通りAWSからS3のパフォーマンス向上について発表がありました.

下記のサイトでも記載されていますが,簡潔に何がどうなったのか記載します.


S3の書き込み/読み込みの性能が向上

S3の書き込み/読み取りの性能は下記の通りに変更


  • PUT/POST/DELETE:3,500リクエスト/秒/プレフィックス

  • GET:5,500リクエスト/秒/プレフィックス

ポイントはプレフィックス毎というところです.

これまでは,プレフィックスごとにデータを分散することでS3への書き込み/読み込み性能を向上させることが可能となっていました.要するにS3に保存されているデータはプレフィックスごとに分散されて保存されているので,プレフィックスを意識しデータを保存することで書き込み/読み込みの性能を改善出来るということです.基本的にはこの方針は変わらず,単純に今回はプレフィックスごとの書き込み/読み込み性能が改善したという内容です.


プレフィックスを意識したデータ構造とは?

下記の通りexamplebucketというS3バケットがあり,下記のようなデータが入っている場合は,プレフィックスは0001の1個なので,GETですと,5,500リクエスト/秒の読み取り性能が期待できます.

samplebucket/0001/photo1.jpg

samplebucket/0001/photo2.jpg
samplebucket/0001/photo3.jpg
samplebucket/0001/photo4.jpg
samplebucket/0001/photo5.jpg
samplebucket/0001/photo6.jpg

下記の通りexamplebucketというS3バケットがあり,下記のようなデータが入っている場合は,プレフィックスは000100020003の3個で,GETですと,それぞれ5,500リクエスト/秒の読み取り性能が期待でき,データのアクセスが均等の場合は,16,500リクエスト/秒の読み取り性能が期待できます.

samplebucket/0001/photo1.jpg

samplebucket/0001/photo2.jpg
samplebucket/0002/photo3.jpg
samplebucket/0002/photo4.jpg
samplebucket/0003/photo5.jpg
samplebucket/0003/photo6.jpg

今回の変更で単純にプレフィックスごとの読み取り,書き込み性能が向上していますが,よりスループットを上げたい場合は,これまで通り,プレフィックスを意識した構造を検討する必要があります.