Temporal
Course Description
Deploy production-ready SPAs on AWS. Keep your apps lightning-fast with static hosting on S3 and a CloudFront global CDN with caching. Create IAM roles to secure access to the infrastructure. Gain experience with CloudFront Functions and Lambda@Edge, giving you the tools to manipulate requests and responses at the edge. Confidently navigate the AWS console and ship real apps.
Prerequisite: Complete Intro to Web Development or experience with building websites and frontend applications.
Preview
Course Details
Published: June 18, 2026
Learning Paths
Topics
Learn Straight from the Experts Who Shape the Modern Web
Your Path to Senior Developer and Beyond
- 300+ In-depth courses
- 24 Learning Paths
- Industry Leading Experts
- Live Interactive Workshops
Table of Contents
Introduction
Section Duration: 10 minutes
Steve Kinney introduces the course by outlining the goals of deploying web applications on AWS, covering challenges and the evolution of hosting methods. The course focuses on leveraging AWS, setting up a CDN, and making it programmable to enhance performance and adaptability. Steve also walks through the resources available for the lesson, including the course website, example apps, and JSON configuration files
Setup AWS Account
Section Duration: 43 minutes
Steve covers the initial AWS account setup, emphasizing the importance of securing the root user and enabling multi-factor authentication. He also explains transitioning to an admin user and the option to assign alternative contacts for account recovery.
Steve demonstrates how to create an admin user in AWS, walking through group setup, permission assignment, and user creation with a custom password. He highlights security measures like requiring a password reset at first sign-in.
Steve explains the concept of a daily driver account, including setting up a unique console login URL and two-factor authentication. He clarifies the distinction between the admin and root user and why maintaining both improves overall account security.
Steve breaks down Identity and Access Management (IAM), explaining how it governs access to AWS resources through users, groups, roles, and policies. He emphasizes the principle of least access and the importance of granular permission control.
Steve guides students through setting up the AWS CLI, including configuration options and creating access keys. He also demonstrates creating policies and users via both the UI and the command line.
Static File Hosting
Section Duration: 1 hour, 2 minutes
Steve tours the core AWS technologies covered in the course: S3, CloudFront, and Lambda. He explains how they connect and previews how CloudFront's programmability, Lambda@Edge, and API Gateway can be used to manipulate requests and responses at the edge.
Steve dives into S3, explaining object storage concepts and walking through bucket creation, including settings for namespacing, public access, versioning, and encryption. He also covers the significance of globally unique bucket names and practical use cases for S3.
Steve presents a sample single-page React app students can clone as a starting point, then covers S3 storage classes like Standard, Infrequently Accessed, and Glacier. He also demonstrates configuring a bucket for static website hosting, including setting the index.html and redirection rules.
Steve explains how to configure a public read-only bucket policy and discusses caching strategies for different asset types, such as index.html versus fingerprinted JS and CSS bundles. He also covers using the AWS CLI to sync directories to S3 and touches on authentication options at the S3 and CDN level.
Steve discusses strategies for limiting access to S3 resources, demonstrating how to set permissions for specific file types within a bucket. He highlights the efficiency of the AWS CLI for scripting tasks like checking public access settings and managing bucket interactions.
Steve covers advanced S3 features relevant to web developers, focusing on pre-signed URLs as a way to grant secure, time-limited access to private objects. He demonstrates how to generate these URLs programmatically using an S3 client.
Regions & CDNs
Section Duration: 1 hour, 7 minutes
Steve walks through creating a CloudFront distribution and configuring the web application firewall for added security. He also covers copying the required bucket policy and outlines potential costs associated with CloudFront content delivery.
Steve explains how regional edge caches work and why distributing infrastructure closer to users improves data retrieval performance. He emphasizes measuring before implementing changes and uses real-world CDN examples to illustrate reliability and caching benefits.
Steve reviews key settings in the CloudFront distribution, including the default root object, price class, and edge location options. He demonstrates how to adjust and save these settings and notes how the CLI simplifies the process.
Steve explains cache invalidation, including when and how to invalidate specific files like index.html and the cost implications beyond the free monthly limit. He then covers custom error responses, showing how to handle client-side routes by configuring behavior for 403 and 404 HTTP status codes.
Steve demonstrates a full app deployment using CLI commands, discussing necessary script variable adjustments. He also addresses caching behavior, explaining how browser cache and CloudFront work together and how caching rules can be customized per asset type.
Steve explains how 404 and 403 errors are configured to return index.html, enabling client-side routing to function correctly while still adhering to proper HTTP response codes. He previews the use of Lambda and CloudFront functions for more advanced request and response manipulation.
Edge Compute
Section Duration: 24 minutes
Steve compares CloudFront Functions and Lambda@Edge, outlining the trade-offs in runtime capability, flexibility, and proximity to the origin server. He demonstrates how Lambda@Edge enables more powerful serverless logic by allowing request and response modifications at multiple points in the CDN cycle.
Steve demonstrates associating a CloudFront behavior with a Lambda@Edge function to handle specific client-side routes. He shows how to manipulate the event object within the function to return the correct status codes for matching requests.
Wrapping Up
Section Duration: 9 minutes
Steve wraps up the course by connecting the day's work to broader AWS possibilities like databases, API Gateway, and backend-for-frontend patterns. He highlights Lambda@Edge use cases such as A/B testing and cookie management, and points students toward related courses for automating and extending what they've built.