Using Devops Automation for AWS Deployments
AWS Training Architect II in Content
This course 'Using DevOps Automation for AWS Deployments' can be used as a stand-alone learning module. But is also a mini-course and the first in a learning path that will prepare the student for the AWS Certified DevOps Engineer Professional exam. The mini-course has 3 sections, and the first sections defines DevOps and the DevOps engineer professions. Section one goes on to define CI/CD automation, Disaster Recovery techniques, and Blue/Green Deployments. These are key concepts the DevOps Engineer must master for both the profession and the certification exam. The second section of the course takes a deep dive on the AWS Developer Tools suite, and it's core components: CodeCommit, CodeBuild, CodeDeploy, and CodePipeline. These services are covered heavily in the DevOps Pro certification exam and warrant the detail and attention given in this section. The final section revisits Blue/Green deployments in greater detail, as the topic is heavily covered on the exam, and also covers key topics related to Blue/Green deployments: Canary Deployments, and A/B Testing. Again, this course is designed to stand on its own or be the first in a series of mini-courses in preparation for the DevOps Pro exam.
Core Concepts and Tools
Working as a DevOps Engineer
The lesson defines the role of a DevOps Engineer as well as its origin. DevOps came about as the result of the need for birdging the gap between development and Operations tasks and to facilitate automation.
This lesson describes the concepts of Continuous Integration and Continuous Deployment, as well as Continuous Delivery. The lesson goes on to describe the reasons for CI/CD and the need to achieve automation.
Disaster Recovery with RTO/RPO
This lesson defines Disaster Recovery and Recovery Time Objective (RTO), and Recovery Point Objective (RPO), which are tools used to recover from disasters. The lesson describes the techniques and patterns in AWS used for recovery.
Blue/Green Deployments Overview
Blue/Green deployments are a very important tool in the DevOps Engineer's toolset. This lesson gives an overview of the techniques used to perform Blue/Green deployments in AWS and ensure minimal downtime. The lesson sets the stage for a deeper dive on Blue/Green deployments later in the course.
This lesson details AWS Secrets Manager and how it can be used to safeguard sensitive information. Secrets can be used to help remove sensitive information from such things as our code and CloudFormation Templates.
This lesson walks through configuring and storing a secret in the AWS Secrets Manager console. The subsequent lesson will use the secrets created in this lesson.
This lesson details the steps taken to rotate secrets in AWS Secrets Manager. This is an important feature which sets Secrets Manager apart from AWS Parameter Store.
AWS Parameter Store
This lesson details the features of AWS Parameter store. Parameter store can be used in similar ways as Secrets Manager, and this lesson provides a walkthrough of how sensitive information can be removed from a CloudFormation Template and referenced in Parameter Store. This same function could be performed by Secrets Manager. So with the overlap between Parameter Store and Secrets Manager, the lesson concludes by comparing these two services and highlighting appropriate use cases for each. The CloudFormation template used in this lesson can be downloaded here: https://github.com/linuxacademy/content-aws-devops-pro-2020/tree/master/SysManagerParameterStore
Source Control Strategies and GitHub
This lesson provides an overview of Source Control strategies and continues on into Git and Github. AWS CodeCommit interacts with and uses Git commands and this foundational lesson sets the stage for work with CodeCommit.
Prepping Your Environment for CodeCommit
This lesson begins walking through some of the prerequisite configuration for working with CodeCommit.
Prepping Part 2 - IAM Configuration
This lesson will continue with configuration for CodeCommit. IAM users will be created, added to a group, and the group will have a policy for CodeCommit attached to it.
Configuring SSH for Individual Users
This lesson walks through configuring user to access EC2 instances via ssh. The process will add users to the EC2 instance which is necessary for ssh access.
This lesson provides an introductory overview of AWS CodeCommit. The lesson goes on to discuss the main actions used in interacting with CodeCommit, and concludes with Whiteboarding a scenario.
CodeCommit Repository Actions
This lesson details some of the main commands for working with CodeCommit from the AWS Command Line Interface. The lesson is a walkthrough and the student will be able to execute these command from their own environment.
Cloning, Commit, Pushes, and Pulls
This lesson details the steps necessary to work with CodeCommit by performing commits, pushes, pulls, and also Cloning a repository. These actions are performed from the Command Line Interface.
This lesson addresses the issue of merging conflicts in a CodeCommit repository. Conflicts can occur if two or more developers are working on the same piece of code. The lesson walkthrough reviewing conflicts and merging them by using commands from the AWS Command Line Interface.
This lesson detials the steps needed to branch a repository. Branches are typically created to work on new features or for bug fixes. The lesson walks through creating a branch from the Command Line Interface.
This lesson covers CodeCommit Triggers and the creation of triggers from the AWS Management Console. Triggers are typically created to notify a team when a commit is made to a repository.
CodeCommit Triggers With SNS
This lesson walks through the creation of an SNS Topic and also creation of a trigger which will be attached to the SNS Topic. The lesson includes a walkthrough from the AWS Management Console.
CodeCommit Triggers With Lambda
This lesson walks through the creation of a CodeCommit trigger for AWS Lambda. The Lambda function code for this lesson can be found here: https://github.com/linuxacademy/content-aws-devops-pro-2020/tree/master/CodeCommitTriggersWLambda
CodeCommit Security and Encryption
This lesson details how we can secure our data in CodeCommit. The data can be secured in transit and at rest using encryption. Additionally, we can protect our data from accidental change or deletion by using IAM policies to limit what users can do with the code.
Introduction to CodeBuild
This lesson provides an intorductory look at AWS CodeBuild and sets the stage for a deeper dive into CodeBuild in upcoming lessons.
Getting Started With CodeBuild Walkthrough
This lesson details how CodeBuild works by providing a detailed walkthrough of performing a build with CodeBuild. The files for the lesson can be found here: https://github.com/linuxacademy/content-aws-devops-pro-2020/tree/master/GettingStartedWithCodeBuild
Working With Build Projects and the buildspec File
This lesson dives deeper into CodeBuild by focusing on the buildspec.yml file and the creation of a Build Project.
Performing Builds in CodeBuild
This lesson uses both the AWS Command Line Interface and the Management Console to walk through a CodeBuild build.
Introduction to CodeDeploy
This lesson provides an introduction to CodeDeploy and takes a look at CodeDeploy in the AWS Management Console.
CodeDeploy Setup and Configuration
This lesson walks through the prerequistes to working with CodeDeploy. These steps including creating IAM Users, an IAM Instance Profile, and a Service Role.
Configure an EC2 Instance for Use with CodeDeploy
This lesson continues with preparation by using a bash script to deploy the CodeDeploy Agent on an EC2 instance. The bash script for this lesson can be found here: https://github.com/linuxacademy/content-aws-devops-pro-2020/tree/master/Configure%20an%20EC2%20Instance%20for%20Use%20with%20CodeDeploy
CodeDeploy Application, Deployment Groups, Deployment Configurations
This lesson uses the AWS Management Console to create a CodeDeploy Application. The lesson also uses the AWS Command Line Interface to verify application creation.
CodeDeploy Custom Deployment Configurations
This lesson uses the AWS Command Line Interface to create a CodeDeploy Deployment Configuration. The AWS Management Console is also used to verify the creation of the Deployment Configuration.
This lesson takes a detailed look at the appspec.yml file. This file is necessary in CodeDeploy and is used to provide instructions to CodeDeploy on the deployment. The file used in this lesson can be found here: https://github.com/linuxacademy/content-aws-devops-pro-2020/tree/master/CodeDeploy_appspec
CodeDeploy Create and Upload a Revision to S3
This lesson uses both the AWS Command Line Interface, and the AWS Management Console to walk through uploading a CodeDeploy revision to Amazon S3.
Deploy a Revision From S3
This lesson follows on the work from the previous lesson and deploys a CodeDeploy revision from S3. The lesson uses the AWS Command Line Interface an the AWS Management Console.
Monitoring Deployments via SNS Triggers
This lesson walks through the setup of a trigger for use with CodeDeploy Deployments. The trigger can be tied to an SNS topic and used to notify team members of various deployment actions.
Viewing Deployment Details and Error Logs
This lesson uses both the AWS Command Line Interface and the AWS Management Console to view details about the deployment and any errors if they occurred during the deployment.
CodeDeploy with Lambda
This lesson walsk through the creation of a Lambda function to automate CodeDeploy Deployments. The Lambda Function can be set up to monitor S3 and be triggered by code uploads to S3. The Lambda Execution Policy found for this lesson can be found here: https://github.com/linuxacademy/content-aws-devops-pro-2020/tree/master/CodeDeployWithLambda
CodeDeploy Stopping and Rolling Back Deployments
This lesson walks through stopping and rolling back deployments in cases where issue are present during a deployment.
CodeDeploy with CloudWatch
This lesson details how CloudWatch can be used to work with CodeDeploy. CloudWatch events can be used to monitor deployments and deployment details can be stored in CloudWatch Logs.
What is CodePipeline?
This lesson provides an introductory look at AWS CodePipeline. The lesson sets the stage for several upcoming CodePipeline lessons.
CodePipeline Concepts and Terminology
This lesson looks at the concepts and terminology of CodePipeline and takes a look at CodePipeline in the Management Console. The lesson focuses on all of the artifacts in a code pipeline. These artifacts typically serve as output from one stage of a pipeline and inputs to the next stage.
CodePipeline Approval Actions
The main goal of CodePipeline is to automate our deployments. But there are occasions where it is necessary to stop the deployment and get approval, for such things as additional testing. This lesson looks at Approval Actions and setting up approvals from the AWS Management Console.
CodePipeline Setup and Configuration
This lesson uses the AWS Management Console to perform IAM configuration for users and with a CodePipeline policy.
Manage CodePipeline from the AWS Management Console
This lesson reviews how pipelines can be managed from the AWS Management Console.
Manage A Pipeline From the AWS CLI
This lesson walks through managing a pipeline from the AWS Command Line Interface.
CodePipeline with CodeBuild
This lesson takes a look at CodePipeline and CodeBuild and configures a pipeline from the AWS Management Console. The lesson emphasizes that the CodeBuild and CodeDeploy stages are optional stages, in that one but not both stages can be omitted.
Continuous Delivery with CodePipeline and CloudFormation
This lesson walks through how a code pipeline can be used to deploy CloudFormation templates. The lesson takes an in-depth look at a CloudFormation template and walks through the creation of the CloudFormation Stack through CodePipeline. The files for this lesson can be downloaded from here: https://github.com/linuxacademy/content-aws-devops-pro-2020/tree/master/CodePipelineWithCloudFormation
CodePipeline With CloudWatch
This lesson uses the AWS Management Console in CodePipeline and also CloudWatch to detail how CloudWatch can be used with CodePipeline.
Jenkins with AWS Developer Tools
This lesson takes an in-depth look at using Jenkins with AWS Developer Tools. The lesson uses whiteboarding to show where Jenkins can be used in an AWS pipeline.
Blue/Green Deployments, Canary Deployments, and A/B Testing
This lesson takes a deeper dive into Blue/Green deployments and uses whiteboarding to detail the various Blue/Green deployment techniques.
Canary Deployments and A/B Testing
This lesson takes a look at Canary Testing and A/B Testing in the AWS environment. But the lesson also compares and contrasts A/B Testing, Canary Testing, and Blue/Green deployments which are all very similar at their core.
Take this course and learn a new skill today.
Transform your learning with our all access plan.Start 7-Day Free Trial