Chapter 5.9 - Optimizing S3 Performance Flashcards

1
Q

What are the primary resources and structure of S3?

A

In Amazon S3, buckets and objects are the primary resources, and objects are stored in buckets.

Amazon S3 has a flat structure instead of a hierarchy like you would see in a file system.

S3 is NOT a hierarchical file system (HFS). “You can’t create a bucket from within another bucket.”

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

How are objects organized within buckets?

A

By using prefixes in conjunction with the object name, aka key name.

You can think of prefixes as a way to organize your data in a similar way to directories aka folders and subfolders. However, prefixes are not directories.

A prefix is the string of characters representing the complete path in front of the object name, which includes the bucket name.
Example: BucketName/Project/WordFiles/123.txt

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

How do prefixes affect the S3 performance?

A

The more prefixes you have in S3, the better the performance you get.

3,500 PUT/COPY/POST/DELETE requests per second, per prefix.

5,500 GET/HEAD requests per second, per prefix.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

What are the limitations when using KMS with S3?

A

Built-in request rate limits, by region, due to needing to call GenerateDataKey and Decrypt in the KMS API when uploading and downloading files, respectively.

Uploading and downloading with count towards the KMS quota.

5,500, 10,000 or 30,000 requests per second, depending upon the region.

Currently cannot request a quota increase.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

What are the S3 performance parameters for uploads?

A

Multipart Uploads are:

Recommended for files over 100 MB

Required for files over 5 GB

Parallelize uploads to increase efficiency

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

What are the S3 performance parameters for downloads?

A

S3 Byte-Range Fetches

Parallelize downloads by specifying byte ranges which speeds up downloads

If there is a failure in the download, it’s only for a specific byte range.

Can be used to download partial amounts of files e.g. header information only.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly