- Lab
-
Libraries: If you want this lab, consider one of these libraries.
- Cloud
Build and Operate Your First AWS CI/CD Pipeline
In this AWS lab, you build and operate your first CI/CD pipeline, taking a team's internal status page application from a GitHub repository to a running EC2 deployment. Working in the AWS Management Console and your own GitHub account, you connect the repository with AWS CodeConnections, assemble a pipeline that builds with AWS CodeBuild and deploys with AWS CodeDeploy onto a pre-provisioned instance, and watch the first execution fail at the Deploy stage. You read the pipeline history and the deployment events, isolate a build artifact configuration that leaves the deployment lifecycle scripts out of the bundle, correct it in GitHub, and let the commit trigger a clean run through every stage. The application code is correct throughout; the failure you resolve is configuration. By the end, you can assemble a GitHub-to-EC2 pipeline from provisioned building blocks, trigger executions with code commits, and troubleshoot a failed release from its operational signals.
Lab Info
Table of Contents
-
Challenge
Inspect the pipeline building blocks and prepare the source repository
- Review the pre-provisioned deployment target: the EC2 instance running the CodeDeploy agent, its instance profile, and the security group exposing the web application.
- Review the pre-provisioned CodeDeploy application and deployment group, the CodeBuild project, the artifact bucket, and the service roles the pipeline will use.
- Create your fork of the starter repository in your own GitHub account and review the application files and the build and deployment configuration files it contains.
-
Challenge
Connect GitHub to AWS and assemble the pipeline
- Create a connection to GitHub with AWS CodeConnections and complete the authorization against your GitHub account.
- Create the pipeline with your repository and branch as its source, reusing the pre-provisioned pipeline service role.
- Attach the build stage backed by the pre-provisioned CodeBuild project and the deploy stage backed by the pre-provisioned CodeDeploy application and deployment group, then finish creating the pipeline.
- Observe that pipeline creation starts the first execution automatically.
-
Challenge
Monitor the first execution and diagnose the deployment failure
- Follow the execution across the Source, Build, and Deploy stages and observe it fail at the Deploy stage after a successful build.
- Open the failed deployment in CodeDeploy and read the lifecycle events to find the failed event naming the missing deployment script.
- Compare the repository contents against the build artifact configuration in buildspec.yml to isolate why the deployment scripts were left out of the bundle.
-
Challenge
Correct the configuration, trigger a new execution by commit, and verify the deployment
- Correct the artifacts configuration in buildspec.yml using the GitHub web editor and commit the change to the default branch.
- Observe that the commit automatically triggers a new pipeline execution and follow it to success through all three stages.
- Load the status page from the instance's public address to confirm the deployed release and review the execution history showing the failed run and the successful run side by side.
About the author
Real skill practice before real-world application
Hands-on Labs are real environments created by industry experts to help you learn. These environments help you gain knowledge and experience, practice without compromising your system, test without risk, destroy without fear, and let you learn from your mistakes. Hands-on Labs: practice your skills before delivering in the real world.
Learn by doing
Engage hands-on with the tools and technologies you’re learning. You pick the skill, we provide the credentials and environment.
Follow your guide
All labs have detailed instructions and objectives, guiding you through the learning process and ensuring you understand every step.
Turn time into mastery
On average, you retain 75% more of your learning if you take time to practice. Hands-on labs set you up for success to make those skills stick.