Active study with AWS using S3

From last week’s action plan, you would hopefully have got an overview of the things that AWS has to offer.

I hope you also did your homework and managed to create 10 additional questions per topic? If I did my job properly, I hope I was able to get your ideas flowing.

We’ll study S3, the SDK and the CLI

With an overview of the technologies done, I’d like to build on that. We’re going to use AWS S3, as it’s a fundamental building block of AWS, it’s used for storage and organisation. Use cases are as diverse as organising artefacts you wish to deploy and providing the assets for deploying a website.

We’ll also look at using the AWS SDK and CLI to deal with S3. That way we’re taking two important concepts, but keeping the examples simple to start with. All of these concepts will be crucial to the exam, so it’s important to start with first principles.

Using the CLI and the SDKs is ‘active’ learning

I’ve talked in the past about how we need to actually phrase learning as it pertains to us, in order that we can make concepts stick. By coming up with your own exercises (with some guidance from me), you’ll be able to draw upon experience and your own memory come exam time. In addition, you’ll have a set of tools that will make you more proficient with the technologies AWS has to offer.

What we’ll build this week

By the end of this week, we’ll have:

Some flashcards and scripts that will form our high level learning around S3.

Some deeper learning by getting experience using the CLI

‘Learning tests’ using the SDK

Let’s start with S3:

Read just the overview for S3 initially

So S3 is defined as storage for the internet, and allows us to retrieve any amount of data, at at any time, from anywhere on the web. The documentation goes on to mention:

  •  Amazon S3 stores data as objects within buckets.
  • An object consists of a file and optionally any metadata that describes that file.
  • To store an object in Amazon S3, you upload the file you want to store to a bucket.
  • When you upload a file, you can set permissions on the object and any metadata.

It goes on to talk about buckets:

  • Buckets are the containers for objects.
  • You can have one or more buckets.
  • For each bucket, you can control access to it
  • For each bucket you can view access logs for it and its objects
  • For each bucket you can choose the geographical region where Amazon S3 will store the bucket and its contents.

Extract meaning from the first page that you read

Think back to the last time you read a chapter from a textbook – they outlined the highest level concepts first starting the chapter, and drilling into detail. So I want to ‘prime’ my brain for these overall concepts before reading further. Additionally, I want to think about how this will fit into the overall world of AWS.

Before I progress beyond the overview page, I am thinking in these terms:

When I test myself tomorrow, in 3 days time, in a weeks time, what are the highest level principles I want to recall and understand?

Personally I just take notes and underline things and enter them into flashcards later – this helps me to keep my flow.

And don’t worry about this being long-winded, this is happening automatically for me as I’m drilled to do it. You’ll increase in speed, and you’ll get the time back in the long run anyway.

So before progressing past the overview page, I have the following questions:

QuestionAnswer
What is S3 defined as?Storage for the internet
What are the two players in S3?Object and buckets
What are the two attributes of an object?The file itself
The meta-data associated with the file
What would be determined by buck
et-level permissions?
Who can create objects
Who can delete
Who can list
What else can I control about a bucket?Which region it sits in

Think about this for a second. If I haven’t already any more information about the subject, then this has to be the simplest possible overview I can build for myself. And when I come back to this tomorrow, 3 days, and in a week, I can be sure I’m ‘staying true’ to the overview of the subject.

That’s not to say we won’t review the cards over time. As you dive into more detail going through the subsequent pages, you’ll have absorbed the overall concept, and might not need it anymore. You can obviously delete cards that you don’t need anymore, although personally, I just separate cards out in to ‘overview’ and specialised decks when that happens.

Play around quickly with the console

With your overview ‘pinned’, I’d encourage you to play around with the examples on the subsequent pages. Using the console is the easiest way to get started. Don’t forget to clean up so you don’t incur any cost.

As you play around with the simple examples, think of important things that you learned. More importantly, think about how you would phrase that learning as a question in your flashcard set.

As an example, with creating a bucket, there are certain criteria that must be met. Phrasing that as a flashcard question:

QuestionAnswer
What restrictions are there on bucket creation?The name cannot be changed once set
It must be DNS compliant
It must be unique across all existing bucket names in S3

With your overview and console examples done, you should now have a set of preliminary or ‘overview’ flashcards. Just like last week, you should be adding your own questions whenever they crop up.

Now we have an overview, we’ll build on our flashcard, by adding questions from the Developer Guide. Let’s go there next.