Complete AWS ECS Bootcamp (Beginner Friendly)

Video description

The rising popularity of AWS and DevOps is testimony to the fact that companies are able to build and deploy products speedily and reliably using AWS and DevOps practices. This course is packed with?hands-on and practical labs which will help you to build real-world projects.

The course begins with an introduction to DevOps and AWS. You’ll then sign up for an AWS account, create Identity and Access Management (IAM) users, and discover how Elastic Cloud Compute (EC2) instances work. Going further, you’ll find out how application load balancers and Auto Scaling groups help in scaling EC2 instances and explore AWS storage devices. As you advance, you’ll create an Amazon virtual private cloud (VPC) and get an overview of Docker and containerization. You’ll also work with Docker Compose and upload Docker images to Amazon Elastic Container Registry (ECR). Moving ahead, you’ll delve into Amazon Elastic Container Service (ECS), continuous integration (CI), continuous delivery (CD), and continuous deployment. Finally, you’ll work on a project to set up, configure, containerize, and deploy a Laravel PHP application.

By the end of this course, you’ll have gathered the skills needed to deploy containers to production using ECR and ECS.

What You Will Learn

  • Auto-scale EC2 instances based on Auto Scaling groups
  • Work with S3 and Elastic File System (EFS) to store?static websites
  • Upload images to the AWS ECR repository
  • Implement networking in AWS using subnets, routes, and internet getaway
  • Provision and scale?Fargate, EC2, and ECS clusters
  • Deploy your application from the computer via Git using CodeCommit

Audience

If you are a web developer or AWS beginner looking to run containers locally and in production using AWS ECS/ECR, then this course is for you. No prior knowledge of AWS is required; however, basic web development and PHP skills are necessary.

About The Author

Thomas Wiesner: Thomas Wiesner is a senior backend developer and systems architect, currently working with Ethereum. He holds a CS masters degree and has authored eight best-selling blockchain development courses.

Table of contents

  1. Chapter 1 : Introduction
    1. Introduction
    2. Get to Know Your Instructor
    3. What You Should Bring to the Course
    4. Housekeeping
    5. Free Tier and Pricing in AWS
  2. Chapter 2 : DevOps and AWS Fundamentals
    1. This is the DevOps Definition
    2. The Different Types of Cloud Computing, Explained
    3. How to Talk to Management About Cloud Computing
    4. Lab: Signup to AWS
    5. AWS Regions and Availability Zones
    6. The Difference Between AWS Services and a Monolithic Web-Service
    7. Lab: Create Your First EC2 Instance
    8. Lab Recap: Create Your First EC2 Instance
  3. Chapter 3 : Security, Identity, and Access Management (IAM) on AWS
    1. Security on AWS Primer - IAM and Your Root User
    2. Lab: Create an IAM User
    3. This is IAM: The Identity and Access Management in AWS
    4. Lab: Download and Configure AWS CLI
  4. Chapter 4 : Elasticity in AWS - Understanding the Elastic Compute Cloud (EC2)
    1. EC2 Instance - Deep Dive
    2. Lab: Start an EC2 Instance with User Data
    3. Lab Recap: Start an EC2 Instance with User Data
    4. Understanding User Data - Deep Dive
    5. Understanding Metadata in AWS for EC2 Instances
    6. Lab: Run EC2 Instances and Query Metadata
    7. Lab Recap: Run EC2 Instances and Query Metadata
  5. Chapter 5 : Scalability in AWS - Understanding Scaling of Elastic Compute Cloud Resources
    1. An Introduction and Overview of Scalability Objectives
    2. Lab: Create an Auto-Scaling Group with Load Balancing for EC2 Instances
    3. Lab Recap: Creating an Auto-Scaling Group with Load Balancing
    4. Auto-Scaling Group with EC2 Instances
    5. Understanding Launch Templates for EC2 Instances
    6. Load Balancing Introduction and Elastic Load Balancing Overview
    7. Classic Load Balancer versus Application Load Balancer versus Network Load Balancer
  6. Chapter 6 : Storage in AWS - A Deep Dive for Web Developers
    1. Why Cloud Storage?
    2. Understanding S3 - The AWS Simple Storage Service
    3. Lab: Create an S3 Encrypted Versioned Bucket to Host a Public Website
    4. Understanding AWS S3 Bucket Policies
    5. Lab: Interacting with S3 via CLI with IAM Permissions and Deleting the Bucket
    6. Lab Recap and S3 Pricing
    7. AWS EBS: Elastic Block Storage Overview
    8. AWS EFS: Elastic File Storage Overview
    9. Lab: Creating and Interacting with EFS Volumes from Different EC2 Instances
    10. EFS Summary
  7. Chapter 7 : Networking in AWS
    1. AWS Networking Introduction
    2. CIDR Explanation: Understanding Classless Inter-Domain Routing
    3. Virtual Private Cloud - Understanding VPC in AWS
    4. Lab: Create Your Own VPC
    5. VPC Subnet Explanation: Understanding Subnet AZ Placement
    6. Lab: Create Subnets for Your Own VPC
    7. AWS Route Table and Internet Gateway Deep Dive
    8. Lab: Create an Internet Gateway and a NAT Gateway
    9. Understanding NAT Gateways and Egress Only Internet Gateways
    10. Lab: Create and add a NAT gateway
    11. Understanding the Idea of Bastion Hosts in AWS VPCs
    12. Lab: Creating a Bastion Host to Connect to Private EC2 Instances
    13. AWS Security Group Deep Dive
    14. Lab: Creating a Load Balancer and a Private EC2 Instance in a Private Subnet
  8. Chapter 8 : Working in Teams - Code Repositories
    1. Why Git?
    2. Lab: Creating Your CodeCommit Repository
    3. Lab Recap: Creating Your CodeCommit Repository
    4. Lab: Start an EC2 Instance and Automatically Use Code from CodeCommit via IAM
    5. Lab Recap: EC2 Instance and CodeCommit
  9. Chapter 9 : Containerization - Why Use Docker for Your Development?
    1. Container Introduction
    2. Images versus Containers
    3. Lab: Starting a PHP Docker Container
    4. Lab Recap: PHP Docker Container
    5. This is a Dockerfile - An In-Depth Crash Course
    6. Lab: Uploading a Docker Image to ECR, the Elastic Container Registry
    7. Lab Recap: Uploading an Image to ECR
    8. Lab: Understanding and Creating Environments Using Docker-Compose
    9. Lab Recap: Understanding Docker-Compose
  10. Chapter 10 : Elastic Container Service - Creating and Running Containers
    1. ECS Introduction
    2. Task Definition Introduction
    3. Introduction to Fargate
    4. Lab: Creating a TaskDefinition and Start a Fargate Cluster
    5. Lab Recap: Creating a Task Definition and Start a Fargate Cluster
    6. Permissions in ECS
    7. Lab: Creating an S3 Bucket from Within Containers with IAM Policies Attached
    8. Lab Recap: Creating an S3 Bucket from Within Containers with IAM Policies Attached
    9. How Storage and Scaling Works on AWS Fargate
    10. Lab: Scaling a Fargate Service with an Application Load Balancer
    11. Lab Recap: Scaling a Fargate Service with an Application Load Balancer
    12. EC2 Launch Type Overview
    13. ECS EC2 Network Modes
    14. EC2 Lab Introduction
    15. Lab: Creating an ECS EC2 Cluster with a Load Balancer
    16. Lab Recap: Creating an ECS EC2 Cluster with a Load Balancer
    17. Understanding Deployment Types on ECS
    18. Understanding Task Placement Strategies in ECS
    19. ECS EC2 Capacity Providers
    20. Lab: Creating an EC2 Cluster with Capacity Providers for Instance Auto-Scaling
    21. Lab Recap: Creating an EC2 Cluster with Capacity Providers for Instance Auto-Scaling
  11. Chapter 11 : Continuous Integration, Continuous Delivery, and Continuous Deployment
    1. Introduction to Continuous Deployment
    2. Continuous Integration versus Continuous Delivers versus Continuous Deployment
    3. AWS CodePipeline Introduction and Overview
    4. AWS CodeBuild Introduction and Overview
    5. The CodeBuild Buildspec.yml File, Explained
    6. Lab: Creating Your First AWS CodeBuild Project to Create Docker Images
    7. AWS CodeDeploy Introduction and Overview
    8. Lab: Creating a Continuous Deployment Pipeline
    9. Lab: Creating a Continuous Deployment Pipeline Using AWS CodePipeline to ECR
    10. Lab Recap: Creating a Continuous Deployment Pipeline Using AWS CodePipeline to ECR
  12. Chapter 12 : AWS Services - RDS, ElastiCache, SSM Parameter Store, Route53
    1. Introduction
    2. AWS RDS and Aurora
    3. Lab: Creating an RDS Instance and Attaching It to ECS Container via Environmental Var
    4. Lab Recap: Creating an RDS Instance
    5. AWS Systems Manager Parameter Store and AWS Secrets Manager
    6. Lab: Storing and Retrieving Values from The SSM Parameter Store to ECS Services
    7. Lab Recap: Storing and Retrieving Values
    8. Route53 and AWS Certificate Manager Overview
    9. Lab: Adding a Custom Domain to Route53 and SSL Termination with ACM
    10. Lab Recap: Adding a Custom Domain to Route53 and SSL Termination with ACM
    11. AWS CloudFormation Overview and Introduction
    12. Lab: Creating a VPC With a CloudFormation Template
    13. AWS ElastiCache Overview
  13. Chapter 13 : Project - Deploying a Laravel Application into an HA ECS EC2 Cluster
    1. Project Introduction and Overview
    2. Installing Laravel Using Docker and the Composer Image
    3. Laravel Local Development Environment using Docker-Compose
    4. Adding MySQL and Redis into the Local Development Environment
    5. Adding a Register/Login Functionality
    6. Initializing a New Git Repository
    7. Adding the Laravel PHP-FPM and Nginx Docker Images to ECR
    8. Creating an ECS EC2 Launch Type Cluster with a Capacity Provider
    9. Creating and Launching our Laravel Service into the ECS Cluster
    10. Adding and Attaching an RDS Database via SSM Parameter Store
    11. Uploading Newer Images for the Laravel PHP-FPM Service and Nginx to Allow Logins
    12. Establishing Automatic Database Migrations
    13. Adding Redis Through ElastiCache for Session Storage
    14. Route53 Custom Domain Alias with SSL Termination and HTTP to HTTPS Redirect
    15. Establishing a full CI/CD Pipeline

Product information

  • Title: Complete AWS ECS Bootcamp (Beginner Friendly)
  • Author(s): Thomas Wiesner
  • Release date: August 2020
  • Publisher(s): Packt Publishing
  • ISBN: 9781800566132