Implementing Exponential Backoff When Accessing Amazon S3
Description
Amazon S3 is a data storage service from AWS. It's reliable, highly-scalable, and low cost. Amazon S3 has a simple HTTP interface making it easily accessible from anywhere and it is employed in a wide variety of solutions when using AWS for cloud infrastructure.
Under the hood, Amazon S3 is a distributed system, which makes it very responsive and fault-tolerant. However, Amazon S3 does have request limits, and when working with potentially large workloads you should be aware of what they are and how to handle them.
In this lab you will see what happens when Amazon S3 issues error responses asking the client to reduce their request rate, and you will learn how to handle this situation so your solutions continue to perform.
Learning Objectives
Upon completion of this beginner-level lab, you will be able to:
- Use the AWS command-line tool to create a bucket
- Upload a file directly to Amazon S3 using Python
- Implement the AWS recommended retry strategy using Python
- Use Amazon S3 effectively to avoid hitting request limits
Intended Audience
- Candidates for the AWS Certified Developer - Associate certification
- Cloud Engineers
- Developers
Prerequisites
Knowledge and experience with the following will be beneficial but is not required:
- Amazon S3
- The Linux Bash shell
- The Python scripting language
The following courses can be used to fulfill the requirements: