Inspired by a couple of posts I thought I’d resume my blogging effort. This is predominantly for me than the void I’m sending this into. Last year, was trying on lots of fronts, as for all us in our own ways i am sure. I like to think as a result of it that I’ve grown in a few ways, unfortunately, one of those ways was indeed around my waist since the motivation to keep active lost its shine somewhere around June and I’ve been a potato ever since.

Highlights reel

  • Project success — With my current employer Push Doctor, I lead…

This is just a short record of a discovery [late 😬] I made yesterday. There I was, working away on Kent C Dodd’s Epic react fundamentals (highly recommended by the way) when he’s demonstrating something via a console log and enter $0 to get the selected DOM node in his dev tools…

Well tickle me pink, this was news to me. I asked a few colleagues and not one knew about it either. I fired out a tweet about it thanking Kent and announcing my regret for years lost using document.query

I recently tested my newly created API Gateway pointing at Lamda using

npx aws-api-gateway-cli-test

It took quite a lot of parameters…

Well anyway… long story short, I got this … a lot

npx: installed 110 in 13.123s
Authenticating with User Pool
Getting temporary credentials
Making API request
{ status: 403,
statusText: 'Forbidden',
data: { message: 'Forbidden' } }

So it’s time to learn how to add logging my little pointless API.

The goals

  1. Adding Cloudwatch to API Gateway
  2. Adding Cloudwatch to Lamda’s

Part one — create the API Gateway Role and get ARN

  1. Go into IAM
  2. Open Roles
  3. Click Create Role
  4. Select API Gateway
  5. Complete the wizard and capture the ARN reference

Part 2 — Add the ARN to your API Gateway

Serverless and Stripe payment intents

Small log today to just talk about a snag I ran into integrating Stripe into the serverless stack following :

Payment intents

While not strictly needed if you’re in the US but:

On September 14, 2019, Strong Customer Authentication (SCA) took effect in Europe. Under this regulation, card payments require additional authentication. Transactions that don’t follow the new guidelines may be declined.

I know this because it bit us hard in our own app where we had micropayments in a time-sensitive situation. So I wanted to follow that learning and use the payment intents stuff from Stripe.

So since I've started dually learning some serverless application development using this awesome guide. I was able to skip through quite a few but they’re starting off with DynamoDB, which is awesome… because I’ve not used them before 😀 so I'm excited to see how it compares to the likes of MongoDB (Which I'll caveat with — been a while since I used that daily too).

What is Dynamo DB?

Amazon says…

Amazon DynamoDB is a fast and flexible NoSQL database service for all applications that need consistent, single-digit millisecond latency at any scale. …

S3 General

  • Object-based storage — some might call it blob, can be any bytes, immutable once created.
  • Durability by duplication across the network
  • 0–5TB file limit
  • No limit on storage per account
  • Buckets are flat, unique in name across all AWS
  • Buckets can be accessed via URL
  • Uploading to S3 returns a 200


  • Designed for 99.99% availability
  • Guarantee 99.9% availability
  • Guarantee 99.999999999% durability

S3 Behaviours

  • S3 gives you read after write consistency, creating new content means you get that back right away
  • S3 gives you eventual consistency from updating existing objects. This is because of the duplication. It takes time to propagate.
  • There are…

What is it?

My take

It’s a CDN for static and dynamic content. It replicates your content across AWS zones but also what they call edge locations which I just see as cached content closer to the end-user with the lowest latency it can grant you.

Do I use it currently?

Yes, I personally use it in production to front an S3 bucket we deploy a single-page-app into. This is pretty cheap to run but you need to know the gotchya's of using the CDN and Edge locations TTL (time to live or time it sticks around if the term isn’t familiar for you) to avoid situations where cached…

This is a continuation of There I was looking at managing the buckets and objects in S3 in a really high-level holistic way.

Today I’d like to try out some S3 commands on the AWS CLI.


Installing the AWS CLI

It’s a bit pointless to explain this in detail so instead, you should go to and install the v2 version.

When you’ve done it you can verify it like so

$ aws --version
aws-cli/2.0.5 Python/3.7.5 Windows/10 botocore/2.0.0dev9

Configure the CLI

If this is your first time setting up is pretty simple, you will just use:

aws configure

It will ask you for some details like…

This is a continuation — where I took a deeper look at s3 on AWS. Hopefully today I’ll have some practical stuff too.

I’ve had to go slower for a few days to get well with the first cold of 2020. Not COVID, just a headache and mucus drowned brain. 🎉🎉

Today’s topic

Amazon S3 — Simple Storage Service (continued)


Unstructured data storage, high-level theory, and some practical stuff via the AWS console.

Accelerating transfer

Jumping right in, we left off yesterday talking about the various classes which offer trade-offs between durability, cost of storage, and in some cases like Glacier, real-time access.

I’m starting with something I’m sort of familiar with, of all the AWS services, this one is probably one of the older ones, and it's probably something we’ve all used without realizing it.

This is not an exhaustive article, I’m learning and writing about this in one day (an hour or so ideally).
Do visit if you want to dive deeper into things.
I also recommend Bernard Golden’s the-ultimate-aws-certified-solutions-architect-associate Udemy course

Today's topic

Amazon S3 — Simple Storage Service


Unstructured data storage, high-level theory, and some practical stuff via the AWS console.

What is S3?

According to Amazon their elevator pitch on S3 is

Kevin Jones

Fullish-stack engineer ( and Lead front-end engineer @Pushdoctor with 15+ years developing web apps, installations, AR toys and other fun stuff.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store