AWS Serverless APIs & Apps - A Complete Introduction
Get into serverless computing with API Gateway, AWS Lambda and other Amazon Web Services! Zero server config APIs & SPAs
Start courseServerless computing will shape the future of web development since it allows you to get rid of many issues "traditional" web hosting poses.
Now's the time to dive into this exciting new technology!
Unlike in traditional web hosting, where you spin up servers, configure them and then deploy your code, in serverless applications, you don't manage any servers! Instead, you only provide your code and define when it should get executed. Done!
Without managing any servers, you typically pay way less (since you got no overhead capacity), can react much better to incoming traffic spikes and don't have to worry about server security!
For these very reasons, it's no wonder that serverless computing is on the rise, with more and more companies adopting it! Learn it now to gain an edge and either use it for your own projects or apply for high-paid jobs!
What does this course offer then?
This course will introduce you to serverless computing and then quickly dive into how to build serverless apps with Amazon Web Services (AWS).
Specifically, you will learn:
- how you can build a REST API without worrying about servers, using AWS API Gateway
- to set up your on-demand code via AWS Lambda
- how to execute that Lambda code whenever incoming requests reach your defined REST endpoints
- how you can store data in a database - naturally without managing any database servers!
We won't stop there though! Instead, you'll then dive even deeper into serverless computing and learn:
- how you can add user authentication to your existing frontend apps and how you can then also protect your REST API against unauthenticated access with ease!
- how you can easily integrate a complete user sign up & sign in flow (including user confirmation) into ANY app (web app, iOS or Android app!) with AWS Cognito
- how to deploy your web app in a serverless manner
- how to speed up the delivery of your static web app assets
- how to secure your serverless app
- what else you can build with the services covered in this course and which other services might be interesting to you
- where to dive deeper regarding advanced development workflows
- and much more!
Is this course for you?
Now that you know what this course offers, is it the right choice for you? Which skills should you bring?
This course is absolutely the right choice for you if you're interested in providing great web applications without worrying about the provisioning of servers.
It's also the right choice if you already got experience as a system administrator but are interested in keeping up with the latest developments and the many new possibilities serverless computing offers.
You will need some basic AWS knowledge, or the willingness to dive deeper into AWS alongside taking this course. Additionally, a credit card is required for signing up to AWS.
Finally, you should be familiar with APIs and SPAs (Single-Page-Applications) and which role they play in today's web development environment. You don't need to know how to create them though.
I'd be very happy to welcome you on board!
Course content
Section 1Getting Started
- Introduction2:44
- What is AWS?1:51
- [OPTIONAL] AWS - A Closer Look1:00
- What is Serverless Development?5:36
- Join our Online Learning Community1:00
- Does AWS Cost Money?1:00
- AWS Signup & First Serverless API8:46
- Why AWS?1:01
- Course Structure3:22
- How to get the Most out of this Course2:21
- Useful Resources & Links1:00
Section 2The Core Serverless Services
- Module IntroductionPremium0:43
- An Overview over the Core Serverless ServicesPremium5:31
- More Info About The Core ServicesPremium1:00
- The Course ProjectPremium2:50
- Understanding AWS Permissions (IAM)Premium1:00
Section 3Creating an API with API Gateway & AWS Lambda
- Module IntroductionPremium0:55
- What is API Gateway?Premium2:17
- API Gateway: Useful Resources & LinksPremium1:00
- Accessing the API Gateway ConsolePremium1:03
- General API Gateway FeaturesPremium4:46
- API-specific Features & OptionsPremium4:50
- Introducing the Request-Response CyclePremium4:38
- Understanding the Request-Response CyclePremium6:12
- Creating a New APIPremium3:19
- Creating a Resource (= URL Path)Premium3:15
- Handling CORS and the OPTIONS Preflight RequestPremium4:11
- Creating a (HTTP) MethodPremium4:10
- What is AWS Lambda?Premium2:45
- AWS Lambda: Useful Resources & LinksPremium1:00
- Creating a Lambda FunctionPremium11:12
- Lambda Pricing & Uploading CodePremium1:00
- Connecting Lambda Functions to API Gateway EndpointsPremium1:27
- Accessing the API from the Web & Fixing CORS IssuesPremium7:24
- Assignment: Lambda (Problem)Premium1:14
- Assignment: Lambda (Solution)Premium8:10
- Understanding "event" in Lambda FunctionsPremium1:59
- Forwarding Requests with "Proxy Integration"Premium3:52
- Accessing Lambda LogsPremium2:50
- Getting Started with Body Mapping TemplatesPremium4:44
- Extracting Request Data with Body Mapping TemplatesPremium4:08
- What's the Idea behind Body Mappings?Premium2:09
- Mapping Response DataPremium2:41
- Using Models & Validating RequestsPremium3:14
- Models & MappingsPremium6:42
- Assignment: API Gateway (Problem)Premium1:51
- Assignment: API Gateway (Solution)Premium7:51
- Next StepsPremium1:24
- Adding a DELETE Method Endpoint to the APIPremium2:24
- Using Path ParametersPremium8:42
- What about Query Parameters?Premium1:00
- Accessing the API from the Web - The Right WayPremium7:11
- Wrap UpPremium2:43
Section 4Data Storage with DynamoDB
- Module IntroductionPremium0:44
- What is DynamoDB?Premium2:50
- AWS: DynamoDB Useful Resources & LinksPremium1:00
- How DynamoDB Organizes DataPremium4:57
- NoSQL vs SQLPremium2:51
- Using DynamoDB with LambdaPremium0:52
- Creating a Table in DynamoDBPremium2:40
- Understanding Read & Write CapacityPremium4:11
- Creating and Scanning ItemsPremium2:16
- What about multiple Databases?Premium1:20
- Accessing DynamoDB from LambdaPremium4:36
- Quiz: DynamoDB ConceptsPremium1:00
- Sidenote: How Lambda works behind the ScenesPremium1:42
- Putting Items into a DynamoDB Table from LambdaPremium6:14
- Setting Permissions RightPremium2:18
- Using API Gateway (Request) Data for Item CreationPremium6:29
- Mapping the Response & Web TestingPremium3:05
- Scanning Data in DynamoDB from LambdaPremium7:52
- Improving the IAM PermissionsPremium4:30
- Restructuring Fetched Data in LambdaPremium3:00
- Getting a Single Item from DynamoDB via LambdaPremium5:37
- Testing it from the Web & Passing Correct DataPremium1:37
- Preparing "Delete" PermissionsPremium2:48
- Giving Lambda Logging RightsPremium1:00
- Deleting Items in DynamoDB via LambdaPremium4:41
- Mapping DynamoDB ResponsesPremium6:45
- Wrap UpPremium1:50
Section 5Authenticating Users with Cognito and API Gateway Authorizers
- Module IntroductionPremium1:32
- How to add Authorization to API GatewayPremium2:12
- Understanding Custom Authorizers (API Gateway)Premium4:01
- Creating a Custom Authorizer FunctionPremium10:12
- Using Custom AuthorizersPremium5:50
- Retrieving Users from Custom AuthorizersPremium6:08
- What is AWS Cognito?Premium2:27
- AWS Cognito: Useful Resources & LinksPremium1:00
- Cognito User Pools and Federated IdentitiesPremium1:31
- Creating a Cognito User PoolPremium8:13
- Understanding the Cognito Auth FlowPremium3:19
- Adding Cognito to a Frontend App - Getting StartedPremium5:28
- Using Cognito in iOS or Android AppsPremium1:00
- Adding Signup to the Frontend AppPremium12:00
- Adding User Confirmation to a Frontend AppPremium4:08
- Adding Signin to a Frontend AppPremium5:50
- Managing User State with CognitoPremium3:48
- Using a Cognito Authorizer with API GatewayPremium2:46
- Passing the right User ID to LambdaPremium6:43
- Using Query Params & Cognito from LambdaPremium7:59
- Passing Query Params from the FrontendPremium3:50
- Passing the User Id to the DELETE EndpointPremium5:05
- Wrap UpPremium1:46
Section 6Hosting a Serverless SPA
- Module IntroductionPremium2:00
- What is S3?Premium2:32
- AWS S3: Useful Resources & LinksPremium1:00
- Creating a S3 BucketPremium4:30
- Uploading the Web App to the BucketPremium2:47
- Turning a S3 Bucket into a Static WebserverPremium3:39
- Setting up LoggingPremium1:53
- Optimizing Content Delivery: What is AWS CloudFront?Premium2:28
- AWS CloudFront: Useful Resources & LinksPremium1:00
- Setting up a CloudFront DistributionPremium4:39
- Finishing the CloudFront SetupPremium1:08
- Using a Custom Domain: What is Route53?Premium1:15
- AWS Route53: Useful Resources & LinksPremium1:00
- Registering a DomainPremium1:52
- Connecting a Domain to a CloudFront DistributionPremium7:01
- Wrap UpPremium1:15
Section 7Beyond the Basics - An Outlook
- Module IntroductionPremium3:13
- Documenting an APIPremium2:10
- Other AWS Lambda TriggersPremium8:00
- Going Serverless with a Node/ Express App (Non-API!)Premium1:58
- Running Node/ Express Apps via Lambda + API GatewayPremium9:24
- Pros and Cons of Serverless Node/Express MPAPremium3:08
- Learn more about AWS Serverless + Express AppsPremium1:00
- Serverless Apps and SecurityPremium12:04
- A Case of a Better Development WorkflowPremium1:03
- Getting to know the Serverless FrameworkPremium6:02
- Getting to know SAM (Serverless Application Model) by AWSPremium3:40
- Testing Serverless Apps with localstackPremium3:18
- Other useful AWS ServicesPremium5:38
- Wrap UpPremium1:11
- Useful Resources & LinksPremium1:00
Section 8Course Roundup
- RoundupPremium1:00
Course instructor
Maximilian Schwarzmüller
As a self-taught professional I really know the hard parts and the difficult topics when learning new or improving on already-known languages. This background and experience enable me to focus on the most relevant key concepts and topics. My track record of many 5-star rated courses, more than 1,000,000 students worldwide as well as a successful YouTube channel is the best proof for that.
The most rewarding experience for me is to see how people find new, better jobs, build awesome web applications, work on amazing projects or simply enjoy their hobby with the help of my content. That's why, together with Manuel Lorenz, I founded Academind to offer the best possible learning experience and to share the pleasure of learning with our students.