August 2024 Update: Because AWS CodeCommit was deprecated by AWS, we replaced it with GitHub in Sections 2 and 3.
Would you like to automate your software deployment process on AWS?
Welcome to learn how to create CI/CD pipelines with AWS CodePipeline and automate your deployments to You will learn with hands-on examples and detailed explanations.
In this course, you will learn AWS CodePipeline step by step:
August 2024 Update: Because AWS CodeCommit was deprecated by AWS, we replaced it with GitHub in Sections 2 and 3.
Would you like to automate your software deployment process on AWS?
Welcome to learn how to create CI/CD pipelines with AWS CodePipeline and automate your deployments to You will learn with hands-on examples and detailed explanations.
In this course, you will learn AWS CodePipeline step by step:
Begin with AWS CodePipeline basics by creating a pipeline between two Amazon S3 buckets as the source and deploy locations.
Trigger your pipelines on CodePipeline using GitHub repositories and Git pushes.
Build and test your code automatically with AWS CodeBuild in each pipeline execution. Understand how Code Build works with AWS CodePipeline.
Integrate AWS CodeDeploy with AWS CodePipeline to deploy to Amazon EC2 instances. You will start with a single instance and proceed with multiple instances behind auto-scaling and load balancing. You will also learn different AWS Code Deploy deployment types and configurations, such as in-place rolling and blue-green.
Use AWS CloudFormation with AWS CodePipeline to create and delete stacks automatically in each pipeline execution. You will also learn to define manual approval actions and configure pipeline notifications.
Learn to build your Docker images with AWS CodeBuild and AWS CodePipeline and deploy them to Amazon ECR or Docker Hub automatically. Deploy your Docker containers to Amazon ECS as rolling deployments using the direct integration of AWS Code Pipeline with Amazon ECS.
You will also learn how to check your build and deployment logs in case of failures with examples.
What will you achieve after this course?
✓ You will understand how AWS CodePipeline works in detail.
✓ You will be able to create pipelines on CodePipeline triggered from private GitHub repositories.
✓ You will be able to use AWS Code Pipeline with other AWS developer tools, AWS CodeBuild, and AWS CodeDeploy, to create your CI/CD pipelines.
✓ You will be able to replace your manual deployment processes with automation to avoid human errors and minimize deployment failures.
✓ You will be able to apply one of the core practices of DevOps, Continuous Integration / Continuous Deployment / Continuous Delivery, in your projects on AWS.
Why learn from me?
✓ AWS verified my knowledge and experience at the top level. I am a senior AWS consultant holding AWS Certified Solutions Architect - Professional and AWS Certified DevOps Engineer - Professional certifications in addition to three core Associate-level AWS certificates.
✓ I have a software engineering background, a BS degree in Computer Engineering, and more than 17 years of professional experience in corporates and startups.
✓ I have been using AWS since 2013. I have built dozens of CI/CD pipelines on AWS using AWS Code Pipeline, AWS CodeBuild, and AWS CodeDeploy for my clients and projects.
✓ I learned by doing, and I teach both theory and practice according to the AWS best practices. I explain the features with hands-on examples and why to use them with advantages and disadvantages. So you will benefit from my experience as well as my knowledge.
Is this course for you?
I designed this course for beginners to AWS CodePipeline and assume that you have no or little experience in it.
This course is not for beginners of AWS. You should have intermediate-level AWS knowledge of core services.
Although I provide hands-on examples during the lectures, you should have basic Git knowledge and experience using Git commands from the command line.
I mostly use a basic Angular application in our practices, but you do not need to know Angular for them. We focus on AWS CodePipeline, not on any particular programming language or framework. The techniques taught in this course also apply to others.
I recommend you watch the free previews before enrolling.
Join this course and start learning AWS CodePipeline step by step with hands-on examples.
Meet the course instructor, Emre Yilmaz, and learn what will be covered in each section of the course briefly.
An introduction to CI/CD and AWS CodePipeline concepts.
Learn which AWS region you should use while doing the examples.
We will introduce you to the AWS CodePipeline Console. You will create your first pipeline between two Amazon S3 buckets as the source and deploy locations.
We use simple static website content as an example.
Learn how to trigger your pipeline by uploading a new version of your website to the source S3 bucket.
Learn how to view pipeline details and execution history on AWS Management Console.
You will learn to edit your pipeline by adding a new deploy action.
You will also learn to release a change manually from the AWS CodePipeline Console.
Learn how to delete your pipeline and associated AWS resources created with it.
Would you like to enforce your learning with a short but challenging quiz on Section 1 topics?
After you finish, you can use it as a guide to review the lectures for the questions you need more information on.
So, let's see how you will do!
Regarding the deprecation of AWS CodeCommit and the use of GitHub as an alternative,
An introduction to Git and how it is used with AWS CodePipeline.
You will learn to connect your GitHub accounts to AWS Developer Tools to create pipelines from them later.
You will also learn some Git-related topics:
Initializing your local Git repositories in your project folders
Staging and committing your changes
Creating GitHub repositories and adding them as remote repositories to your local repository
Pushing your commits to GitHub
You will learn to create a pipeline triggered from your GitHub repository.
You will learn to trigger your pipeline with Git pushes. This lecture uses a GitHub repository as the source location, but the example is valid for other Git providers used with CodePipeline.
Would you like another challenging quiz?
This time, it is about using Git and GitHub repositories with AWS CodePipeline. But it's short.
Good luck!
Learn what will be covered in Section 3.
An introduction to AWS CodeBuild and its concepts as well as how it is used with CodePipeline.
In this lecture, you will prepare the GitHub repository and deployment bucket for this section, which will be used in your new pipeline.
Learn how to add a build stage to your pipeline with AWS CodeBuild.
You will use the GitHub repository and the deployment bucket you created in the previous lecture as source and deployment locations, respectively.
Learn how to provide your build specification and commands with your source code. We use a basic single-page application developed with Angular 9 and Bootstrap 4.
A deep dive into the lifecycle of a build execution on AWS CodeBuild.
Learn how to view your build logs from your CodePipeline action details, on AWS CodeBuild, or CloudWatch Logs.
Learn why you should have automated tests on your CI/CD pipelines.
Learn how to add a test action to your pipeline using CodeBuild and how to provide your test commands with your source code. We use Angular's unit test commands as an example.
Welcome to the Section 3 quiz!
It’s time to see how well you learned AWS CodeBuild and its usage with AWS CodePipeline.
Let’s see how it goes!
Learn what will be covered in Section 4.
An introduction to AWS CodeDeploy and its concepts as well as how it is used with AWS CodePipeline.
In this lecture, you will understand how EC2 instances work with AWS CodeDeploy theoretically and learn to create an IAM role for your EC2 instances for deployments.
Learn how to configure an Amazon EC2 instance for CodeDeploy deployments. We use an Amazon Linux 2 instance as an example.
You will learn how to create an AWS CodeDeploy application and a deployment group for standalone EC2 instances according to their tags.
You will learn to add an AWS CodeDeploy deploy action to your pipeline on AWS CodePipeline.
You will learn to create a CodeDeploy Appspec file and provide your deployment scripts and configurations with your source code.
A deep dive into deployment lifecycle for EC2 instances on AWS CodeDeploy.
Learn how to view AWS CodeDeploy deployment logs on your Amazon EC2 instance.
Learn how to stream your CodeDeploy deployment logs from your EC2 instance to Amazon CloudWatch Logs.
You will learn to create an AWS CodeDeploy deployment group for an EC2 auto-scaling group behind an application load balancer. You will also learn to update your pipeline configuration on AWS CodePipeline accordingly.
Learn how in-place all-at-once deployments work with auto scaling and load balancing, understand their disadvantages.
Learn how your EC2 auto scaling group works with CodeDeploy if you increase your fleet capacity and it launches a new EC2 instance.
Learn how in-place rolling deployments work with its advantages and disadvantages.
Understand what can happen when there are two versions online with the help of our sample Angular application.
Learn how automated rollbacks work with in-place rolling deployments in case of a deployment failure. Understand the advantages and disadvantages with the help of our sample Angular application.
Learn what CodeDeploy blue-green deployments are and how they work with auto scaling and load balancing.
Learn what happens in case of CodeDeploy blue-green deployment failures on auto scaling groups.
Are you ready for a challenging quiz on this section’s topics?
Let’s see how well you understood using AWS CodeDeploy with AWS CodePipeline.
Don’t worry! You can always review the lectures and retake the quiz. It is more crucial to understand the topics than passing this quiz.
However, it will be helpful to enforce your learning.
Good luck!
Learn what will be covered in Section 5.
Learn how to add an AWS CloudFormation deploy action to your pipeline to create a stack automatically in each execution. Understand different CloudFormation action options.
We make an example to create a staging environment automatically.
In this lecture, we add a deploy action to our pipeline to deploy our application revisions to the staging instance created by the CloudFormation deploy action.
Learn how to add a manual approval action to your pipelines between staging and production deployments and where to place it.
Learn how to use action variable namespaces and variables on your pipeline.
We make an example to get the DNS name of the instance created by the CloudFormation deploy action dynamically in the manual approval action.
Learn how to add a CloudFormation action to your pipeline to delete a stack automatically.
As an example, we add a delete stack action for the staging stack created by the previous CloudFormation deploy action, and place it after the manual approval
A deep dive into superseeded pipeline executions by triggering three concurrent executions on our pipeline.
Learn how to configure pipeline notifications by creating a notification rule on your pipeline. We use an existing SNS topic as an example.
It’s time for another quiz. Let’s see how you understood this section’s topics.
Good luck!
Learn what will be covered in Section 6.
A brief introduction to Docker & Amazon ECS concepts for our course.
Learn to create a CodeBuild buildspec file to build your Docker images and push them to Docker Hub. Also, learn to create a Docker Hub personal access token and provide your credentials as environment variables in your build action to sign in to Docker Hub.
Learn to build a pipeline on AWS CodePipeline to build your Docker images with AWS CodeBuild and push them to your Docker Hub user namespace. We will use the buildspec file and the CodeCommit repository we created in the previous lecture.
Learn to use AWS Secrets Manager to store your Docker Hub credentials and access them from your AWS CodeBuild build projects as environment variables. We will cover defining them on your CodePipeline actions and CodeBuild buildspecs.
Learn to define your AWS Systems Manager Parameter Store parameters on your AWS CodeBuild build projects as environment variables.
Learn to push your Docker images built by CodeBuild to your private repositories on Amazon ECR. You will learn to edit your buildspec files accordingly.
Learn to create an Amazon ECS task definition for the Docker images you push to Amazon ECR with AWS CodePipeline and AWS CodeBuild.
Learn to create an Amazon ECS cluster for the ECS resources you will use in our hands-on examples in the following lectures.
Learn to create an Amazon ECS service on AWS Fargate that deploys ECS tasks with containers from the Docker images built by your pipeline.
Learn to configure an Amazon ECS standard deploy action on your pipeline to use the direct integration of AWS CodePipeline and Amazon ECS. You will also learn how ECS rolling deployments work with AWS CodePipeline and AWS CodeBuild.
Learn to use your Git commit IDs on AWS CodeCommit for tagging your Docker images built by AWS CodePipeline and AWS CodeBuild.
Learn to use Amazon ECR Public Gallery for base Docker images in your Dockerfiles and AWS CodeBuild projects.
Learn what happens if a faulty Docker image is built by your pipeline and deployed on Amazon ECS as a rolling deployment by default. We will cover cases when the ECS circuit breaker and automated rollbacks are not enabled.
Learn to enable the ECS deployment circuit breaker and automated rollbacks on your Amazon ECS rolling deployments with AWS CodePipeline.
Understand how min running tasks and max running tasks values work on your Amazon ECS rolling deployments with an example.
Learn what you need to consider while creating an ECS service performing rolling deployments on an Auto Scaling Group capacity provider instead of Fargate.
Learn how ECS rolling deployments work for ECS services on Auto Scaling Group capacity providers and what you need to consider when using them instead of Fargate.
Congratulations for finishing the course!
Learn more about my other courses and get special discounts for them.
OpenCourser helps millions of learners each year. People visit us to learn workspace skills, ace their exams, and nurture their curiosity.
Our extensive catalog contains over 50,000 courses and twice as many books. Browse by search, by topic, or even by career interests. We'll match you to the right resources quickly.
Find this site helpful? Tell a friend about us.
We're supported by our community of learners. When you purchase or subscribe to courses and programs or purchase books, we may earn a commission from our partners.
Your purchases help us maintain our catalog and keep our servers humming without ads.
Thank you for supporting OpenCourser.