Hello! Welcome to 🌟Build an app with AWS Cloud Development Kit egghead.io Workshop🌟
Let's start by addressing some questions you might have:
Excellent question! If you don't want to follow along during the workshop, you don't need to do anything at all.
If you do want to follow along as we build our AWS CDK app (or would like to build it afterwards, remember that a recording will be provided all attendees so you can build the app at your own pace 😊) you'll need to perform the following steps:
(Please go through all of those steps before the workshop because debugging issues with AWS CLI may involve having to share secret access keys and this is NOT something we want to do. If you have any issues with those steps, please reach out to me.)
- Clone this repo.
- Install node.js.
- Run
npm install
in bothfrontend
andtodo-app
directories. - Create an AWS account (if you don't have one already).
- Install AWS CLI (Command Line Interface). We're going to use AWS CLI version 2 which is available for Linux, MacOS and Windows (Note: if you have version 1 currently installed, it's absolutely fine, you don't have to upgrade to v2 for the workshop)
- Configure AWS CLI using this guide
- To verify that the AWS CLI has been successfully installed and configured you can run
aws s3 ls
in your terminal which should list all S3 buckets in the region you've chosen. - Install the AWS SAM (Serverless Application Model) CLI using this guide. AWS SAM CLI is available for Linux, MacOS and Windows and we're going to use it during the workshop to run Lambda functions locally.
- Verify that AWS SAM CLI has been successfully installed by running
sam --version
in your terminal. You should see something similar toSAM CLI, version 0.40.0
. - And finally (I'm sorry for all of those steps, but this is not my fault :( Good news is that you won't have to do go through that again!) install AWS CDK (Cloud Development Kit) by running
npm install -g aws-cdk
- Verify that AWS CDK has been successfully installed by running
cdk --version
in your terminal. You should see something similar to1.26.0 (build e251651)
.
UPDATE: I've recorded an egghead.io lesson that shows how to configure AWS CLI: Create an admin user with IAM and configure AWS CLI to enable programmatic access to AWS
Congrats! You are now ready for the workshop! Let's rock!
Hey! My name is Tomasz Łakomy, born & raised in Poland (that's why this workshop is so ... polished) and I'm a Senior Frontend Engineer at OLX Group and an egghead.io instructor with over 100 lessons published.
I've been programming for a living since 2012 and for the last couple of years I've been giving talks, writing articles and recording lessons about things I'm interested in - mostly React, testing and (that's why you're here!) - AWS.
AWS is a huge topic, so to solidify my own knowledge and making sure I (more or less) know what I'm talking about, I got AWS certified. I'm currently holding (not literally) an AWS Certified Solutions Architect: Associate certificate as well as AWS Certified Developer: Associate.
When it comes to AWS itself, I'm especially interested in serverless solutions and I'm happy to say that there won't be any servers in this workshop 😎
My twitter handle is @tlakomy and Twitter is usually the best way to reach me.
NO. Every service we're going to use (and every resource we'll provision) will stay well within the free tier. I invite you to experiment with different AWS services, but everything that is a part of the course won't incur additional charges.
In order to be 100% sure that you won't have to pay more to AWS than you'd like to - take a look at this (5 minute long) free collection:
Use AWS Billing & Cost Management Dashboard to keep yout AWS bill to minimum
Please take a look at https://aws.amazon.com/free/ to find out more about AWS Free Tier.
Absolutely!
During this course we're going to talk quite a bit about AWS Lambda, DynamoDB and we're going to play with AWS SAM a bit. This is not required but I think you will get more out of the workshop if you take a look at those free resources first (don't worry - I will be explaning those concepts during the workshop as well):
- Learn AWS Lambda from scratch
- Learn AWS Serverless Application Model (AWS SAM) from scratch
- Learn DynamoDB from scratch (currently work in progress)
- Chris Bascardi has an excellent collection of AWS resources as well, take a look a this Intro to DynamoDB collection.
My own notes: https://gist.github.com/tlakomy/f1312ec1fd092ece75a0f72403235fc8
- Lesson 00 - CDK setup and basics
- Lesson 01 - Our very first hello world AWS Lambda function
- Lesson 02 - Changing the properties of a lambda function
- Lesson 03 - Attaching an API Gateway to our lambda function
- Lesson 03.5 - Executing a lambda function locally
- Lesson 04 - Creating an S3 bucket with AWS CDK
- Lesson 05 - Building custom AWS CDK constructs
- Lesson 06 - Reading data from a DynamoDB table with a Lambda function
- Lesson 07 - Debugging Lambda + DynamoDB issues and managing permissions in the Cloud
- Lesson 08 - Adding and removing data from a DynamoDB table
- Lesson 09 - Using external dependencies in a lambda function with CDK
- Lesson 10 - Connecting frontend app to an AWS CDK infrastructure
- Lesson 11 - Deploying the finished app to S3
- Lesson 12 - Deploying the finished app with CDK-SPA-Deploy
- Lesson 13 - Destroying a CDK stack
Open the docs
directory and take a look at before_we_start.md