Tags
Language
Tags
January 2025
Su Mo Tu We Th Fr Sa
29 30 31 1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31 1

Deploy A Django Web App With Apache, Amazon Ec2 And Ci/Cd

Posted By: ELK1nG
Deploy A Django Web App With Apache, Amazon Ec2 And Ci/Cd

Deploy A Django Web App With Apache, Amazon Ec2 And Ci/Cd
Published 1/2025
MP4 | Video: h264, 1920x1080 | Audio: AAC, 44.1 KHz
Language: English | Size: 3.25 GB | Duration: 8h 33m

Master Django Deployment: Apache and CI/CD Integration on Amazon EC2 | Theory and hands-on demonstrations

What you'll learn

Deploy your Django app to an Amazon EC2 instance, configuring Apache and mod_wsgi

How to securely connect to your Amazon EC2 Instance via SSH keys in GitHub

Learn how to setup an Apache web server with mod_wsgi

How to access and utilise Amazon EC2 Instance connect

Learn how to integrate various AWS services within Django

Deploy your Django application by following an IaaS approach

Learn various Linux-based commands and issue them within an Ubuntu environment

Provision and configure a PostgreSQL database on Amazon RDS

How to update and manage static files with cache busting

Set up Git and GitHub for version control

Learn how to secure your environment variables with Apache and AWS Secrets Manager

Learn how to manage the basic CI/CD process in AWS

Design an architecture in AWS that is well-structured and designed

Orchestrate a CI/CD pipeline with GitHub, CodeBuild and CodeDeploy

Learn how to register a domain name (Amazon Route53) and provision an SSL certificate (Certbot)

Requirements

Fundamental knowledge of Django and AWS is required

You should also know the basics of HTML/CSS and JavaScript

Knowledge of Linux-based commands and/or DevOps would be advantageous

A strong and stable internet connection with no network configuration issues in terms of restrictions or limitations

Description

Welcome! I'm here to guide you in deploying your Django web applications with Apache on Amazon EC2 and automating your deployment process using CI/CD pipelines.– Please read carefully –In this course we will learn a variety of new concepts, manners of deploying a lot of extra technologies along the way._________________________What you'll learn (In-depth):_________________________Django setup & development:Learn the essentials of building and configuring a Django application for deployment.Set up your development environment for a seamless workflow, focusing on local development environments and ensuring smooth transitions to production.Master Django configuration for production, including setting allowed hosts, static files, and environment variables.Amazon EC2 deployment:Deploy a Django app on an EC2 instance with Apache and mod_wsgi, focusing on the basics of server management.Configure the EC2 instance using Linux-based commands, including managing updates, installing dependencies, and ensuring smooth operation.Secure your EC2 instance, including setting up SSH keys, managing server security groups, and configuring Apache virtual hosts for a reliable production environment.Troubleshoot and test your Apache configuration to ensure it serves your Django app correctly.Linux-Based Commands on EC2 (Ubuntu):Use common Linux commands to manage your EC2 instance (Ubuntu AMI), such as updating the system, installing dependencies, managing files, and monitoring resources.Learn to navigate the terminal for remote access and file management, including SSH into the EC2 instance and basic system administration tasks.Get comfortable using the command line to handle server tasks like starting/stopping services, viewing logs, and debugging errors in production.CI/CD automation:Implement CI/CD pipelines using AWS CodePipeline, CodeBuild, and CodeDeploy to automate your deployment process.Set up and configure each stage of the pipeline to integrate with your GitHub repository, build code, and deploy it automatically to your EC2 instance.Learn the AWS CLI commands and use them to test and manage your CI/CD pipeline directly from the terminal.Ensure fast, reliable, and secure updates to your Django app, reducing manual intervention.Cloud Infrastructure:Work with core AWS services such as EC2 (Elastic Compute Cloud), RDS (Relational Database Service), and IAM (Identity and Access Management) to build and manage a secure, scalable cloud infrastructure for your Django application.Set up a PostgreSQL production database with Amazon RDS and ensure your Django app connects to it securely.Understand IAM roles, security groups, and how to secure sensitive data and access within your AWS environment.Secure environment variables with AWS Secrets Manager:Learn to use AWS Secrets Manager to store and retrieve sensitive data such as database credentials, API keys, and other environment variables securely.Programmatically integrate AWS Secrets Manager with your Django application to dynamically load environment variables, reducing the risk of exposing sensitive information in the codebase.Configure IAM roles and policies to control access to secrets, ensuring that only the necessary services and users can retrieve them.Register a domain name with Amazon Route53 and setup SSL certification with Certbot:Register a domain name with Amazon Route53 and then use Certbot to obtain and install SSL certificates for your domain name, securing the connection to your Django app with HTTPS.Integrate the SSL certificate with Apache to enforce secure communications and protect user data.Simplified IaaS Approach:Focus on an Infrastructure as a Service (IaaS) model where you're working with a single EC2 instance, without the complexity of load balancing or auto-scaling.Learn how to configure and deploy Django on a simple, single EC2 instance, focusing on scalability at the application level and managing the server environment efficiently.Get hands-on experience working with a minimal, cost-effective setup that is easy to manage and scale manually as your application grows.This course is designed to give you a comprehensive understanding of deploying Django apps on AWS using EC2 with a hands-on, practical approach. You’ll build the foundational skills to manage servers, automate deployments, secure your application, and work with cloud infrastructure, all within a simplified and focused environment.I want to help YOU master the fundamentals of deploying your Django web apps to Apache on Amazon EC2 with CI/CD!The Deploy a Django web app with Apache, Amazon EC2 and CI/CD course has been structured in a simple and logical order. Everything that has been designed from the styling to the graphics and topics covered is crafted with the absolute duty of care towards the student.The Deploy a Django web app with Apache, Amazon EC2 and CI/CD course is a highly practical course and allows you to apply your knowledge:There is a wealth of hands-on lectures throughout this course.Your instructor:My name is Arno Pretorius. I'm a qualified IT teacher who has taught programming both in-person and online. My main passions are teaching and technology, so I thought why not just combine the best of both worlds to create something truly amazing and valuable. Over the years, I have created and deployed many real-world Django-based applications, including a job portal for university graduates and an exclusive social network.I'm a Software developer, an AWS Solutions Architect and Developer associate. I have a keen interest in cloud computing, web development and everything that relates to programming and technology.Trust me you are in good hands!This course also comes with:- 8+ hours of on-demand video- Full lifetime access- A Udemy certificate of completion- Downloadable resources- Articles- Access on mobile and TVJoin me in this course if you want to master the fundamentals of deploying your Django web app with Apache, Amazon EC2 and CI/CD!

Overview

Section 1: Course Introduction

Lecture 1 Course welcome!

Lecture 2 Course prerequisites

Lecture 3 Course overview

Lecture 4 Course support

Lecture 5 Thought process

Section 2: Final project resources

Lecture 6 Install and run the final project source code - Windows

Lecture 7 Install and run the final project source code - MacOS

Section 3: Environment setup: Python and VS Code Installation

Lecture 8 Python and Visual Studio Code - Installation - Windows

Lecture 9 Python and Visual Studio Code - Installation - MacOS

Section 4: Build a simple Django starter project - [Recommended]

Lecture 10 Django project setup - Windows

Lecture 11 Django project setup - MacOS

Lecture 12 Django default migration and app setup

Lecture 13 Create a base template, url and view

Lecture 14 Create and register a Django model - [DailyNote]

Lecture 15 Accessing the Django Admin

Lecture 16 Build a basic form for submitting notes - Part 1

Lecture 17 Build a basic form for submitting notes - Part 2

Lecture 18 Configure static files

Lecture 19 Setup our CSS and JavaScript files and test our application

Lecture 20 Apply styling to our form - [Optional]

Section 5: Getting started with AWS

Lecture 21 Create an AWS account

Lecture 22 Explore the AWS management console

Lecture 23 AWS Budgets - [Theory]

Lecture 24 Create and set a designated budget with AWS Budgets

Lecture 25 AWS account free tier - Explained

Lecture 26 Amazon IAM - [Theory]

Lecture 27 IAM - Create a user and a group

Lecture 28 IAM - Utilise our unique URL

Lecture 29 IAM - Secure your AWS accounts with MFA

Section 6: Production database setup

Lecture 30 Amazon RDS - [Theory]

Lecture 31 Provisioning a PostgreSQL database with Amazon RDS - Part 1

Lecture 32 Provisioning a PostgreSQL database with Amazon RDS - Part 2

Lecture 33 Generate sample data for production testing

Section 7: GitHub and Git Integration

Lecture 34 Create a GitHub account

Lecture 35 Install and setup Git

Lecture 36 Generate a requirements.txt file

Lecture 37 Configure our environment variables

Lecture 38 How will we keep our sensitive information secure? - [Theory]

Lecture 39 Prepare our static files for production

Lecture 40 Deployment preparation

Lecture 41 Generate a GitHub personal access token

Lecture 42 Push source code to GitHub with Git

Section 8: Deploy a Django web app with Apache and Amazon EC2

Lecture 43 Amazon EC2 - [Theory]

Lecture 44 Launch our first EC2 Instance with Ubuntu

Lecture 45 SSH configuration to clone a private repo to EC2

Lecture 46 Environment setup: Python, Git and a virtual environment

Lecture 47 Install and enable Apache with mod_wsgi

Lecture 48 Apache site virtual host configuration

Lecture 49 Testing and restarting Apache configuration

Lecture 50 Configuring allowed hosts and loading environment variables

Lecture 51 Testing and fixing form styling Issues - Part 1

Lecture 52 Testing and fixing form styling Issues - Part 2

Lecture 53 Manual redeployment with Git

Lecture 54 Command guide list - [Reference]

Lecture 55 What to expect in the next section? - [Important]

Section 9: Automating deployment with CI/CD for Amazon EC2

Lecture 56 What is the definition of DevOps? - [Theory]

Lecture 57 What is CI/CD and how can we utilise It? - [Theory]

Lecture 58 CI/CD pipeline architecture - [Theory]

Lecture 59 AWS CodeBuild - [Theory]

Lecture 60 Create a CodeBuild project

Lecture 61 AWS CodeDeploy - [Theory]

Lecture 62 CodeDeploy setup and process overview - [Theory]

Lecture 63 Setup a CodeDeploy role, application and deployment group

Lecture 64 Create and attach an IAM role to an EC2 Instance

Lecture 65 Installing and setting up the CodeDeploy agent on EC2

Lecture 66 AWS Secrets Manager - [Theory]

Lecture 67 Protecting sensitive data in AWS Secrets Manager

Lecture 68 Granting IAM role permissions for AWS Secrets Manager access

Lecture 69 Installing the AWS CLI for AWS Secrets Manager

Lecture 70 Dynamically load environment variables - Part 1

Lecture 71 Dynamically load environment variables - Part 2

Lecture 72 AWS CodePipeline - [Theory]

Lecture 73 Setting up build, deploy and start scripts for automation

Lecture 74 Grant IAM role permissions for AWS CodeBuild to retrieve an AWS Secret

Lecture 75 Pushing our scripts to GitHub and testing the BuildSpec process

Lecture 76 Integrating source, build and deploy stages with CodePipeline

Lecture 77 Invoking the CodePipeline process

Lecture 78 Managing and updating static files with cache busting

Section 10: Domain name and SSL certification

Lecture 79 Amazon Route53 - [Theory]

Lecture 80 Register a domain name with Amazon Route53

Lecture 81 Amazon Route53 - Domain name issues

Lecture 82 Certbot - [Theory]

Lecture 83 Map your server IP address to a domain name

Lecture 84 Configure our security group for HTTPS

Lecture 85 Installing and configuring an SSL certificate with Certbot

Lecture 86 Resource cleanup

Section 11: Additional functionality - [Optional]

Lecture 87 Renewing SSL certificates with Certbot - [Optional]

Lecture 88 Adding and associating an Elastic IP with EC2 - [Optional]

Section 12: Thank you!

Lecture 89 Thank you! - A final message

Lecture 90 Bonus lecture

Intermediate or advanced Django developers who want to learn about deploying their Django applications with Apache on Amazon EC2 whilst following CI-CD principles,Junior DevOps developers looking to expand their skills,Django developers who want to learn how to make use of various AWS services