Course
Skills Expanded
Architecting Highly Available Systems on AWS
In this course, we see how to assemble many powerful AWS components into a resilient, highly available web application with no single point of failure.
What you'll learn
This course describes the techniques and best practices for composing highly available distributed systems on the AWS platform. Throughout the course, we build up a web application that takes advantage of AWS storage, databases, compute, messaging, DNS, and more.
Table of contents
Distributed Systems and AWS
24mins
- Introduction 1m
- What are distributed systems? 2m
- Characteristics of distributed systems 3m
- Distributed web systems in the cloud 3m
- Making distributed cloud systems highly available 4m
- AWS service portfolio 2m
- Reference solution for this course 2m
- Reference architecture for this course 1m
- Goals for this course 2m
- Resources 1m
- Summary 3m
Provisioning Durable Storage with EBS and S3
34mins
- Introduction 1m
- Where we are in the reference architecture 0m
- Types of VM storage 2m
- What type to use in a distributed cloud system? 3m
- About Amazon EBS 2m
- Creating and configuring EBS volumes 2m
- How is EBS failure handled? 2m
- EBS best practices 3m
- About Amazon S3 3m
- Creating and loading S3 buckets 3m
- DEMO: Creating and loading S3 buckets 7m
- How is failure handled? 1m
- S3 best practices 3m
- Summary 3m
Setting Up Databases in RDS and DynamoDB
47mins
- Introduction 1m
- Where we are in the reference architecture 0m
- The role of databases in distributed cloud systems 3m
- About Amazon RDS 4m
- Creating and accessing RDS databases 1m
- Using RDS with ASP.NET applications 3m
- DEMO: Creating an RDS database 6m
- DEMO: Creating an RDS Read Replica 2m
- DEMO: Pointing to RDS databases from ASP.NET 3m
- How is Failure Handled? 2m
- DEMO: Testing RDS failover capabilities 3m
- RDS best practices 3m
- About Amazon DynamoDB 3m
- Creating and using DynamoDB databases 1m
- Adding a shopping cart to DynamoDB 1m
- Using DynamoDB as a session state provider 2m
- DEMO: Using DynamoDB as a session state provider 5m
- How is failure handled? 0m
- DynamoDB best practices 2m
- Summary 2m
Leveraging SQS for Scalable Processing
26mins
- Introduction 1m
- Where we are in the reference architecture 1m
- The role of queues in distributed cloud systems 3m
- About Amazon SQS 3m
- Configuring SQS 2m
- DEMO: Configuring SQS 3m
- Publishing to, retrieving from a queue 2m
- DEMO: Publishing to, retrieving from a queue 7m
- How is failure handled? 1m
- SQS best practices 3m
- Summary 2m
Adding EC2 Virtual Machines
49mins
- Introduction 1m
- Where we are in the reference architecture 1m
- The role of virtual machines in a distributed cloud system 2m
- About Amazon EC2 4m
- Deploying EC2 servers 2m
- DEMO: Creating the IAM role 3m
- DEMO: Creating the servers 5m
- DEMO: Connecting to servers 2m
- Accessing shared content 1m
- Deploying web applications 1m
- DEMO: Deploying the web application 6m
- DEMO: Deploying the queue application 3m
- Creating and using AMIs 1m
- DEMO: Creating and using AMIs 3m
- EC2 best practices 3m
- Using Elastic IPs 2m
- How is failure handled? 1m
- DEMO: Using Elastic IPs 3m
- Elastic IP best practices 3m
- Summary 2m
Using ELB to Scale Applications
18mins
Enabling Auto Scale to Handle Spikes and Troughs
22mins
- Introduction 1m
- Where we are in the reference architecture 0m
- The role of automated scaling in a distributed cloud system 2m
- About Auto Scaling 3m
- How is failure handled? 1m
- Configuring Auto Scaling 3m
- DEMO: Configuring Auto Scaling 6m
- Testing Auto Scaling 1m
- DEMO: Testing Auto Scaling 2m
- Auto Scaling Best Practices 2m
- Summary 2m
Configuring DNS with Route 53
17mins