Implementing Exponential Backoff When Accessing Amazon S3

Lab Steps

lock
Logging in to the Amazon Web Services Console
lock
Connecting to the Virtual Machine using EC2 Instance Connect
lock
Implementing Exponential Backoff When Accessing Amazon S3

Ready for the real environment experience?

DifficultyBeginner
Time Limit45m
Students23
Ratings
5/5
starstarstarstarstar

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:

Environment before
PREVIEW
arrow_forward
Environment after
PREVIEW
About the Author
Students15740
Labs27
Courses1

Andrew is a Labs Developer with previous experience in the Internet Service Provider, Audio Streaming, and CryptoCurrency industries. He has also been a DevOps Engineer and enjoys working with CI/CD and Kubernetes. He holds the AWS Certified Developer - Associate certification.