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

  1. Courses
  2. AWS Serverless APIs & Apps - A Complete Introduction

Serverless 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!

Section: Getting Started

1. Introduction (2:44)
2. What is AWS? (1:51)
3. [OPTIONAL] AWS - A Closer Look (1:00)
4. What is Serverless Development? (5:36)
5. Join our Online Learning Community (1:00)
6. Does AWS Cost Money? (1:00)
7. AWS Signup & First Serverless API (8:46)
8. Why AWS? (1:01)
9. Course Structure (3:22)
10. How to get the Most out of this Course (2:21)
11. Useful Resources & Links (1:00)

Section: The Core Serverless Services

12. Module Introduction (0:43)
13. An Overview over the Core Serverless Services (5:31)
14. More Info About The Core Services (1:00)
15. The Course Project (2:50)
16. Understanding AWS Permissions (IAM) (1:00)

Section: Creating an API with API Gateway & AWS Lambda

17. Module Introduction (0:55)
18. What is API Gateway? (2:17)
19. API Gateway: Useful Resources & Links (1:00)
20. Accessing the API Gateway Console (1:03)
21. General API Gateway Features (4:46)
22. API-specific Features & Options (4:50)
23. Introducing the Request-Response Cycle (4:38)
24. Understanding the Request-Response Cycle (6:12)
25. Creating a New API (3:19)
26. Creating a Resource (= URL Path) (3:15)
27. Handling CORS and the OPTIONS Preflight Request (4:11)
28. Creating a (HTTP) Method (4:10)
29. What is AWS Lambda? (2:45)
30. AWS Lambda: Useful Resources & Links (1:00)
31. Creating a Lambda Function (11:12)
32. Lambda Pricing & Uploading Code (1:00)
33. Connecting Lambda Functions to API Gateway Endpoints (1:27)
34. Accessing the API from the Web & Fixing CORS Issues (7:24)
35. Assignment: Lambda (Problem) (1:14)
36. Assignment: Lambda (Solution) (8:10)
37. Understanding "event" in Lambda Functions (1:59)
38. Forwarding Requests with "Proxy Integration" (3:52)
39. Accessing Lambda Logs (2:50)
40. Getting Started with Body Mapping Templates (4:44)
41. Extracting Request Data with Body Mapping Templates (4:08)
42. What's the Idea behind Body Mappings? (2:09)
43. Mapping Response Data (2:41)
44. Using Models & Validating Requests (3:14)
45. Models & Mappings (6:42)
46. Assignment: API Gateway (Problem) (1:51)
47. Assignment: API Gateway (Solution) (7:51)
48. Next Steps (1:24)
49. Adding a DELETE Method Endpoint to the API (2:24)
50. Using Path Parameters (8:42)
51. What about Query Parameters? (1:00)
52. Accessing the API from the Web - The Right Way (7:11)
53. Wrap Up (2:43)

Section: Data Storage with DynamoDB

54. Module Introduction (0:44)
55. What is DynamoDB? (2:50)
56. AWS: DynamoDB Useful Resources & Links (1:00)
57. How DynamoDB Organizes Data (4:57)
58. NoSQL vs SQL (2:51)
59. Using DynamoDB with Lambda (0:52)
60. Creating a Table in DynamoDB (2:40)
61. Understanding Read & Write Capacity (4:11)
62. Creating and Scanning Items (2:16)
63. What about multiple Databases? (1:20)
64. Accessing DynamoDB from Lambda (4:36)
65. Quiz: DynamoDB Concepts (1:00)
66. Sidenote: How Lambda works behind the Scenes (1:42)
67. Putting Items into a DynamoDB Table from Lambda (6:14)
68. Setting Permissions Right (2:18)
69. Using API Gateway (Request) Data for Item Creation (6:29)
70. Mapping the Response & Web Testing (3:05)
71. Scanning Data in DynamoDB from Lambda (7:52)
72. Improving the IAM Permissions (4:30)
73. Restructuring Fetched Data in Lambda (3:00)
74. Getting a Single Item from DynamoDB via Lambda (5:37)
75. Testing it from the Web & Passing Correct Data (1:37)
76. Preparing "Delete" Permissions (2:48)
77. Giving Lambda Logging Rights (1:00)
78. Deleting Items in DynamoDB via Lambda (4:41)
79. Mapping DynamoDB Responses (6:45)
80. Wrap Up (1:50)

Section: Authenticating Users with Cognito and API Gateway Authorizers

81. Module Introduction (1:32)
82. How to add Authorization to API Gateway (2:12)
83. Understanding Custom Authorizers (API Gateway) (4:01)
84. Creating a Custom Authorizer Function (10:12)
85. Using Custom Authorizers (5:50)
86. Retrieving Users from Custom Authorizers (6:08)
87. What is AWS Cognito? (2:27)
88. AWS Cognito: Useful Resources & Links (1:00)
89. Cognito User Pools and Federated Identities (1:31)
90. Creating a Cognito User Pool (8:13)
91. Understanding the Cognito Auth Flow (3:19)
92. Adding Cognito to a Frontend App - Getting Started (5:28)
93. Using Cognito in iOS or Android Apps (1:00)
94. Adding Signup to the Frontend App (12:00)
95. Adding User Confirmation to a Frontend App (4:08)
96. Adding Signin to a Frontend App (5:50)
97. Managing User State with Cognito (3:48)
98. Using a Cognito Authorizer with API Gateway (2:46)
99. Passing the right User ID to Lambda (6:43)
100. Using Query Params & Cognito from Lambda (7:59)
101. Passing Query Params from the Frontend (3:50)
102. Passing the User Id to the DELETE Endpoint (5:05)
103. Wrap Up (1:46)

Section: Hosting a Serverless SPA

104. Module Introduction (2:00)
105. What is S3? (2:32)
106. AWS S3: Useful Resources & Links (1:00)
107. Creating a S3 Bucket (4:30)
108. Uploading the Web App to the Bucket (2:47)
109. Turning a S3 Bucket into a Static Webserver (3:39)
110. Setting up Logging (1:53)
111. Optimizing Content Delivery: What is AWS CloudFront? (2:28)
112. AWS CloudFront: Useful Resources & Links (1:00)
113. Setting up a CloudFront Distribution (4:39)
114. Finishing the CloudFront Setup (1:08)
115. Using a Custom Domain: What is Route53? (1:15)
116. AWS Route53: Useful Resources & Links (1:00)
117. Registering a Domain (1:52)
118. Connecting a Domain to a CloudFront Distribution (7:01)
119. Wrap Up (1:15)

Section: Beyond the Basics - An Outlook

120. Module Introduction (3:13)
121. Documenting an API (2:10)
122. Other AWS Lambda Triggers (8:00)
123. Going Serverless with a Node/ Express App (Non-API!) (1:58)
124. Running Node/ Express Apps via Lambda + API Gateway (9:24)
125. Pros and Cons of Serverless Node/Express MPA (3:08)
126. Learn more about AWS Serverless + Express Apps (1:00)
127. Serverless Apps and Security (12:04)
128. A Case of a Better Development Workflow (1:03)
129. Getting to know the Serverless Framework (6:02)
130. Getting to know SAM (Serverless Application Model) by AWS (3:40)
131. Testing Serverless Apps with localstack (3:18)
132. Other useful AWS Services (5:38)
133. Wrap Up (1:11)
134. Useful Resources & Links (1:00)

Section: Course Roundup

135. Roundup (1: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.