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.
4.4 (63 ratings)
Instead of using a simple lifetime average, Udemy calculates a
course's star rating by considering a number of different factors
such as the number of ratings, the age of ratings, and the
likelihood of fraudulent ratings.
2,268 students enrolled
$19
$45
58% off
Take This Course
  • Lectures 46
  • Length 5.5 hours
  • Skill Level All Levels
  • Languages English
  • Includes Lifetime access
    30 day money back guarantee!
    Available on iOS and Android
    Certificate of Completion
Wishlisted Wishlist

How taking a course works

Discover

Find online courses made by experts from around the world.

Learn

Take your courses with you and learn anywhere, anytime.

Master

Learn and practice real-world skills and achieve your goals.

About This Course

Published 10/2015 English

Course Description

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 24x7.

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.

What are the requirements?

  • Internet Access

What am I going to get from this course?

  • 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

What is the target audience?

  • (Django) Web Developers

What you get with this course?

Not for you? No problem.
30 day money back guarantee.

Forever yours.
Lifetime access.

Learn on the go.
Desktop, iOS and Android.

Get rewarded.
Certificate of completion.

Curriculum

Section 1: Introduction
01:32

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

05:36

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.

Section 2: Getting Started
05:44

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

02:32

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

Section 3: Launching Your Cloud Server: EC2 Instances
05:01

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

09:09

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.

10:59

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
Article
Section 4: Dev To Production - Step By Step
05:48

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

06:34

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

13:00

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.

13:18

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.

10:59

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.

Article
You may download this sample project if you do not have your own. It is taken from my free Django course!
11:31

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

07:33

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.

10:31

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.

03:48

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

(Optional But Highly Recommended) Back Up Your Server Image ASAP
Article
Section 5: Setting Up & Managing Your Domain: Amazon Route 53
05:36

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

04:56

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

04:17

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

08:37

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.

05:16

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

Section 6: Serving Your Files Faster: S3 & CloudFront
03:01

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.

17:16

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.

10:25
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.
12:32

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.

Section 7: AWS Project Security: Identity & Access Management (IAM)
01:06

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

05:42

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

15:42

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.

08:37

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

Section 8: Backing up & Relaunching: AMIs & Snapshots
02:41

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

04:31

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.

08:52

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

Section 9: Scaling on AWS: Upgrading Your Instance, Amazon RDS, & ELB
02:18

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

07:03

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

11:32

Upgrade your instance type for an immediate performance boost.

15:18

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

16:29

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

02:29

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

Section 10: AutoScaling on AWS: AutoScaling Groups, Policies & CloudWatch
02:15

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

10:33

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

10:12

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.

Section 11: Conclusion
Where to go from here.
Article
Thank You
Article

Students Who Viewed This Course Also Viewed

  • Loading
  • Loading
  • Loading

Instructor Biography

BlueApple Courses, Developers, Entrepreneurs

BlueApple offers software courses for entrepreneurs and web developers designed to speed up your understanding of new frameworks and tools. A huge part of learning is figuring out where to find the information that you need and our courses bundle this information into digestible lessons. Time is money, so why make it harder for yourself to learn the fundamentals of anything.

Jacob and Joshua have 10+ years of software experience involving technical consulting, mobile development, web development, and academic research.

In college, they performed software research at some great institutions, including: UCI's Beckman Laser Institute and UCBerkeley's Nuclear Engineering Department.

After graduating, they Co-Founded a funded mobile gaming company where we used Cocos2D, Objective-C, Java & Python to create mobile games on both iPhones and Androids.

Recently, after a two-year stint as a management consultant, they've founded their own company called BoostLegal which runs a scalable platform on Django and AWS.

In their spare time, they love to Kitesurf, Surf, Hike, & Sail


Ready to start learning?
Take This Course