이두잉의 AWS 세상

AWS S3 I/O 성능

2015.11.23 14:10 - leedoing leedoing

안녕하세요. 이두잉입니다.

금일은 S3의 성능에 관해 짧게 블로깅 하도록 하겠습니다.


S3는 여러 파티션으로 분할된 Storage입니다.

S3는 파티션 별로 객체의 키 값(prefix)를 토대로 인덱싱합니다.


사용할 수 있는 HTTP Method는 PUT/LIST/DELETE 그리고 GET이 있습니다.

보편적으로 각 파티션 I/O는 PUT/LIST/DELETE Method의 경우 초당 100 / GET Method의 경우 초당 300 정도입니다.


해당 성능 범위를 넘어설 경우 S3 업로드 및 다운로드에 제약이 발생될 수 있습니다.

따라서 객체를 업로드 및 다운로드 하실 경우 Prefix를 추가하여 파티션을 분산하면 S3의 I/O 성능을 향상 시킬 수 있습니다.



가령, examplebucket/23-2013-26-05-15-00-00/cust1234234/photo1.jpg 

      examplebucket/7b-2013-26-05-15-00-00/cust3857422/photo2.jpg 대로 Prefix를 추가했다면


2, 7, 23, 7b와 같이 Prefix를 기준으로 파티셔닝 되어 기존 100 RPS에서 400 RPS로 성능이 증가하게 됩니다. 


만약 16진수를 최대로 사용하여 2문자를 추가한 Prefix를 구성하셨다면 16*16 = 25600 RPS까지 성능이 증가됩니다.

Prefix를 추가해서 바로 파티셔닝이 되는 것은 아닙니다. 빈도 수에 따라 성능이 점차 증가됩니다. 갑작스러운 Migration은 대응되지 않습니다.


따라서 해당 요건을 갖춘 뒤 호출 관련한 제한을 해제 요청을 해주셔야 합니다. 메뉴얼한 파티션 작업은 일주일 정도 소요됩니다.


Bucket RPS 제한 해제 요청(일반적인 Limit 해제가 아닌 구성 요건이 필수)

Bucket Region:

Bucket Name:

API Breakup: GET:______TPS, PUT:______TPS, LIST:______TPS, Multipart PUT (Upload Part):______TPS

Key-space design: bucketname/[A-Z0-9][A-Z0-9]/<region>/<customer>/<file>.jpg

Algorithm/method used to generate key-space:

Are keys evenly distributed within the key-space:

Will this bucket be used 'Multi-Part' Uploads:

Will this bucket be used for 'Cross Region Replication'? If so, as the source or destination?


S3 요청 빈도 및 성능 고려 사항 - 

http://docs.aws.amazon.com/ko_kr/AmazonS3/latest/dev/request-rate-perf-considerations.html 


감사합니다.




'Storage&CDN > S3' 카테고리의 다른 글

AWS S3FS vs EBS Performance  (2) 2016.01.27
AWS S3 Region 간 데이터 복제  (0) 2016.01.12
AWS S3 Upload Tool 3rd party solution(CloudBerryExplorer)  (0) 2015.12.08
AWS S3FS 파일 시스템  (0) 2015.12.08
AWS S3 I/O 성능  (0) 2015.11.23
AWS S3 Client Tool 및 CLI 정리  (0) 2015.11.23