S3는 여러 파티션으로 분할된 Storage
S3는 파티션 별로 객체의 키 값(prefix)를 토대로 인덱싱
사용할 수 있는 HTTP Method는 PUT/LIST/DELETE 그리고 GET
보편적으로 각 파티션 I/O는 PUT/LIST/DELETE Method의 경우 초당 100 / GET Method의 경우 초당 300 정도입니다. 업로드의 경우 현재 성능이 매우 개선되어 고려할 필요가 없을 정도가 되었음.
아래 명령어 수행 후 cp 혹은 sync 수행(CPU/Bandwidth가 중요하며, Path 별 구분을 통해 Parallel하게 수행 권장
aws configure set default.s3.max_concurrent_requests 20(default 10)
aws configure set default.s3.max_queue_size 10000
해당 성능 범위를 넘어설 경우 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 요청 빈도 및 성능 고려 사항 -
'Storage&CDN > S3' 카테고리의 다른 글
Amazon S3-CloudFront Redirect(IDC Content S3로 이관 시) (0) | 2017.04.07 |
---|---|
Amazon S3FS vs EBS Performance (2) | 2016.01.27 |
Amazon S3 Region 간 데이터 복제 (0) | 2016.01.12 |
Amazon S3 Upload Tool 3rd party solution(CloudBerryExplorer) (0) | 2015.12.08 |
Amazon S3 Client Tool 및 CLI 정리 (0) | 2015.11.23 |