3.65 out of 5
186 reviews on Udemy

Hosting Django: Amazon Web Services (AWS) Fundamentals

A beginner SysAdmin course for Django web developers. Learn to launch, optimize & scale your app in Amazon Web Services.
BlueApple Courses
3,286 students enrolled
English [Auto-generated]
Go from a simple EC2 server on the Free Tier to a load balanced, server cluster that scales automatically depending on the current traffic levels
Understand the different instance types, how much they cost, and how to stay within the Free Tier
Launch an Amazon EC2 server preconfigured with Django
Launch a regular Ubuntu 14.04 server and configure it for Django
Update your Security Group settings with the appropriate amount of access
Connect to your instance via both the command line (SSH) and your browser (Java-SSH)
Setup your your project files on EC2 using FTP
Serve your project files on EC2 (Django will not do this for you in production)
Leverage S3 Cloud Storage & CloudFront CDN to speed up your site
Utilize Amazon's Premium DNS service Route 53 to register and manage your Domain Name
Ways to enhance security on AWS - including Multi-factor authentication, IAM Users, Groups, Policies, and more
Create backup machine images of your project in case of failover and to scale out easily
How to upgrade your servers hardware for an instant performance boost
Separate your web server from your database server with automatic backups and replication using Amazon RDS
Load balance your traffic between several additional EC2 instances
Automatically scale up and down your server cluster depending on the current traffic levels

Setting up servers for your business or startup can be a tedious and expensive process, particularly when you’re just starting out or switching to a new platform. Amazon Web Services is incredible but you can still feel like you’re becoming an accidental System Administrator trying to set everything up correctly. However, with the right instructions, you can get up and running in a few hours–saving you time, money, and a headache.

This course will walk you through Amazon’s Web Services, with a focus on setting up Django and leveraging their Free Tier to keep your project free (for low-bandwidth uses for one year). We’ll start with the very basics of launching and configuring Django on EC2, discussing different ways to connect to your system while keeping it secure, we’ll progress to fine tuning your system with fast and efficient content delivery, and finally we’ll dive into all the ways that you can scale your system on this incredibly elastic platform.

A quick note: Amazon Web Services is used by some of the largest websites on the internet, including Netflix and Yelp, as it’s extremely scalable, but, it’s also a favorite of many entrepreneurs and VC’s who know to take advantage of their Free Tier. It’s just a great deal.

What this course is:

An easy-to-understand walkthrough on how to host Django using Amazon Web Services which covers: launching a Django-ready server in minutes or optionally launching a “plain” Ubuntu server and configuring Django + dependencies manually (see below for server details), setting up and enhancing security, using FTP & SSH to transfer over project files (a sample project is included) securely, serving static (CSS/JS/Image) files from a Django server and leveraging Cloud Storage (S3 and CloudFront CDN) to make your site faster, setting your project up for production, upgrading your instance for immediate performance increases, adding more instances and load balancing them, separating and vertically scaling your database, automatic scaling with cloud monitoring, deploying automatically with Beanstalk, and more. If you’re not happy after taking the course, you will absolutely get your money back.

(Server Configuration Details: Ubuntu Linux 14.04 with Apache, Mod_WSGI, MySQL & Django — but you can easily switch to Nginx/PostgreSQL, if preferred)

What this course is not:

Amazon has a very wide range (hundreds) of features. If you are looking for help on a particular AWS feature, view the curriculum below to make sure that it’s covered. We cover many features but cannot claim to cover everything.

You do not need your own Django project as this course provides a sample for you, however the focus is on hosting and configuring Django not creating projects. If creating Django projects from scratch is an interest, consider downloading my (free) course “Create Your First Django Website – Fast & Free” as supplementary to this course.

Every single question that is raised in the discussion panel is responded to, but this may not be the best resource to diagnose your server issues. Keep in mind that Amazon offers all kinds of support that is available 24×7.

I’ve enjoyed working with Django and AWS these last couple years — it’s what I use for my business — and I would now like to help more people take advantage of this great offer and incredibly scalable stack.

If you want to save yourself some time, money, and, possibly a headache, use this guide to speed up the process of understanding this powerful, scalable platform – remember, Amazon hosts everyone – from the busiest sites on the net, to startups on the Free Tier.

Click the enroll button to get started.


Course Introduction

Overview of the course and instructor, including: target audience, curriculum overview, and goals.

The Value Proposition Of Amazon Web Services (AWS)

Learn what distinguishes AWS from Google App Engine, Heroku, Rackspace, & Digital Ocean and why companies from Netflix to many Y-Combinator backed startups go with AWS.

Getting Started

Creating An AWS Account

Learn how to create an Amazon Web Services account. This is separate from your Amazon shopping account.

Logging Into the AWS Dashboard

Logging in is simple, if you know where to start.

Launching Your Cloud Server: EC2 Instances

Introduction to EC2 Servers - Price, Instance Type

Learn about what EC2 or the Elastic Compute Cloud is, what it offers, and the pricing model.

Launching A PreConfigured Django Server (Marketplace AMI)

Learn about Amazon Marketplace Machine Images and how they can make launching a Django server extraordinarily easy. We'll use a Bitnami Django AMI to launch our first preconfigured server.

Launching A "Plain" Server (Ubuntu)

Launch a normal Ubuntu 14.04 (or Microsoft Server, etc.) which is just as easy as launching a Marketplace AMI, you'll just have to configure it later with the software that you need.

Best Practices

Dev To Production - Step By Step

Connecting To Your Instance via SSH and Java-SSH

Connect to your server using both SSH from your command line and a Amazon's graphical user interface with Java-SSH.

Updating Your Security Group Settings

Learn about Security Groups and how to adjust them to allow the appropriate amount of access.

Setting Up FTP with FileZilla To Make Configuring A Breeze

FileZilla is a powerful tool that makes transferring files between your local computer and server a piece of cake. In this video, we will download and install FileZilla and then update our security settings and permissions to make configuring a breeze.

Configuring Your (Bitnami) Server for Django

Bitnami comes preconfigured to host your files but you may want to learn more about how the Bitnami Configuration works so you can customize your instance, as needed.

(Alternatively) Configuring your vanilla Ubuntu server for Django

Set up Django on an Ubuntu 14.04 instance. We install Apache, MySQl, and PostgreSQL. You could easily substitute this setup with Ngin-X and other software, as desired, with the same process.

Free Sample Django Project
You may download this sample project if you do not have your own. It is taken from my free Django course!
Setting Up Your Project On Your AWS Server

Transfer your project, update your configuration files, set up your database, and launch your own project on EC2.

Serving Your Static Files -- See Section 6 For Advanced Alternative

Learn how to serve your Django static files on the same EC2 server that's hosting your Django application. This may not be the most efficient system (see Section 6 for a more advanced method) but it's free and quick to set up.

Production Deployment Security Checklist

It's always a good idea to go through Django's security checklist before switching going live with your project. In this video, we'll walk you through the process.

Switching To Production

Switch your project to production by updating your Allowed Hosts and testing live!

(Optional But Highly Recommended) Back Up Your Server Image ASAP

Setting Up & Managing Your Domain: Amazon Route 53

Introduction to Amazon's Route 53 and Premium DNS

Explore the concept of DNS and Premium DNS, learning why you might want to use a service like Route 53.

Registering a Domain Name via Amazon's Route 53

Learn how to register a domain name in Route 53. I will actually purchase a domain in this process.

(Alternatively) Registering a Domain Name via Namecheap

For users not interested in using Route 53, see how to buy a Domain Name with Namecheap.

Transfering an Existing Domain Name to Route 53

If you already purchased your domain from another registrar, learn how to transfer it to Amazon so you can access your DNS and EC2 from the same dashboard.

Managing your DNS with Route 53 (Replacing Your IP With Your .COM Name)

Point your domain name to your EC2 server using Amazon's Route 53.

Serving Your Files Faster: S3 & CloudFront

Introduction to Amazon S3 & CloudFront (Content Storage & Delivery)

Scalable Cloud Storage and Content Delivery are two powerful services that AWS provides. Learn why using these two tools may speed up your site as well as the price.

Integrating Amazon S3 with Django - Part One

Integrate Amazon's S3 with Django so you can utilize the efficiency of cloud storage while not changing your workflow (you can still use "collectstatic"). Part one.

Integrating Amazon S3 with Django - Part Two
Integrate Amazon's S3 with Django so you can utilize the efficiency of cloud storage while not changing your workflow (you can still use "collectstatic"). Part two.
Integrating Amazon CloudFront (CDN) with Django

For the most efficient content delivery, you'll want to push your content to edge locations all over the world. See how to use CloudFront to speed up your site.

AWS Project Security: Identity & Access Management (IAM)

Introduction to Identity & Access Management

Amazon provides free, easy-to-use tools to keep your project safe. Learn more about them and why you should take advantage.

Enabling Multi-Factor Authentication

Multifactor authentication is a powerful tool to help secure your project. Learn how to set it up on your account.

Creating IAM Users, Groups, and Policies For Your Team

Most projects require more than one person. Learn how to give everyone on your team an individual login and access policy defined by their group.

Removing Security Keys From Settings.py

Learn a simple method to help keep your secret keys a secret.

Backing up & Relaunching: AMIs & Snapshots

Introduction to Images, Snapshots, & Elastic IPs

At some point, your server will likely have issues. Learn about how Amazon has made backing up extremely easy.

Elastic IPs: Don't Lose Your IP When Your Instance Goes Down

Learn about Elastic IPs which are a powerful tool that can be used to maintain one IP address even if you decide to shut down your current instance.

Snapshots & Images: Back Up Your Server's State Often

Create a backup or "machine image" of your server that you use to launch new instances in seconds.

Scaling on AWS: Upgrading Your Instance, Amazon RDS, & ELB

Introduction to Scaling: Vertical vs Horizontal

Compare and contrast two different types of scaling and how Amazon provides easy ways to do both.

Benchmarking Your System, Just An Example

See a handy tool that can be used to analyze your server performance: JMeter.

Vertical Scaling: Upgrading Your Instance Type

Upgrade your instance type for an immediate performance boost.

Horizontal Scaling, Step 1: Separating Database From Application Server with RDS

Separating our database from our web server is the first step we'll take to create a dynamic server cluster.

Horizontal Scaling, Step 2: Adding More Instances & Load Balancing

Create a load balanced, server cluster by adding a load balancer and as many instances you want to your project.

Vertical Scaling: Upgrading Your Database Server with Amazon RDS

Scaling your database server is very similar to scaling a regular EC2 instance but not exactly the same.

AutoScaling on AWS: AutoScaling Groups, Policies & CloudWatch

Introduction to Automatic Scaling (and Cloud Monitoring)

Learn about an incredibly powerful tool called Autoscaling which allows you to scale in and out automatically depending on criteria that you define.

Creating AutoScaling Groups & Launch Configurations

Create your first autoscaling group and launch configuration which will define your desired cluster size.

Triggering Scaling via CloudWatch Monitoring Events

Connect CloudWatch monitoring events to your Autoscaling groups to scale dynamically based on your current traffic levels. I cannot stress how powerful of a feature this is.


Where to go from here.
Thank You
You can view and review the lecture materials indefinitely, like an on-demand channel.
Definitely! If you have an internet connection, courses on Udemy are available on any device at any time. If you don't have an internet connection, some instructors also let their students download course lectures. That's up to the instructor though, so make sure you get on their good side!
3.7 out of 5
186 Ratings

Detailed Rating

Stars 5
Stars 4
Stars 3
Stars 2
Stars 1
30-Day Money-Back Guarantee


5 hours on-demand video
5 articles
Full lifetime access
Access on mobile and TV
Certificate of Completion