S3 Prefix

버킷 이름과 이미지 이름 사이의 경로를 prefix라고한다

ex) mybucketname/folder1/subfolder1/filename.jpg ⇒ /folder1/subfolder1

접두사에 따른 S3 성능 차이

다른 prefix에 걸쳐 읽기를 분산하여 더 나은 성능을 얻을 수 있다. 예를 들어 두 개의 접두사를 사용하는 경우 초당 11,000개의 요청을 달성할 수 있다.

만약 4개의 접두사를 사용하는 경우 초당 22,000개의 요청을 달성할 수 있다.

KMS 사용 시 S3 제한

  • SSE-KMS를 사용하여 S3에서 객체를 암호화하는 경우 KMS 제한을 염두에 두어야한다.
  • 파일을 업로드할 때, KMS API에서 GenerateDataKey를 호출한다.
  • 파일을 다운로드할 때, KMS API에서 Decrypt를 호출한다.
  • Uploading/downloading은 KMS 할당량에 포함된다.
  • KMS에 대한 할당량 증가를 요청할 수 없다.
  • 지역별로 다르지만 초당 5,500, 10,000 또는 30,000 요청이다.

S3 성능 : 업로드

Multipart Uploads

  • 100MB 이상의 파일에 권장
  • 5GB 이상의 파일에 필수
  • 병렬 업로드 (효율성 증대)

S3 성능 : 다운로드

S3 Byte-Range Fetches

  • 바이트 범위 지정 병렬 다운로드
  • 다운로드에 실패하면 특정 바이트 범위에만 해당된다.
  • 다운로드하는 속도를 올릴 수 있다
  • 파일의 일부만 다운로드하는데 사용할 수 있다.