Apps Development, AWS, Cloud Computing

6 Mins Read

Streamlining Node.js CI/CD Pipeline with AWS CodeDeploy and AWS CodeBuild

Overview

Implementing a CI/CD (Continuous Integration/Continuous Deployment) pipeline in AWS for business organizations involves leveraging AWS services and best practices to automate and optimize software development and deployment processes.

A CI/CD application pipeline automates code integration, testing, and deployment, benefiting organizations by detecting integration issues early, maintaining consistent code quality, and facilitating collaboration among developers.

Automated testing reduces bugs, instills confidence, and ensures code stability. Continuous deployment enables frequent, reliable releases while monitoring tools offer real-time insights for proactive issue detection and performance optimization.

Introduction

The CI/CD pipeline for Node.js applications using AWS CodeDeploy and AWS CodeBuild involves hosting the source code in a version control system, configuring an AWS CodeBuild project to build the application and create deployment artifacts, setting up AWS IAM roles and permissions, creating a AWS CodeDeploy application and deployment group with appropriate configurations, integrating AWS CodeBuild with AWS CodeDeploy to trigger deployments automatically, and establishing a trigger mechanism for changes in the source code. When code changes occur, AWS CodeBuild builds the app, tests it, and uploads artifacts to an Amazon S3 bucket, triggering AWS CodeDeploy to deploy the latest version to the target environment. AWS CodeDeploy allows for rollback conditions in case of deployment failures. This section has three sections setting up the AWS CodePipeline, AWS CodeBuild, and AWS CodeCommit. The process goes like this: first, we need to update the source code section, then we need to update the AWS CodeBuild section, and then we need to update the code deploy section. Combining all these three sections, we call it the AWS CodePipeline.

Pioneers in Cloud Consulting & Migration Services

  • Reduced infrastructural costs
  • Accelerated application deployment
Get Started

Pre-Requisites

Configuring AWS CodePipeline:

  • Setup infrastructure in AWS
  • Create and attach AWS IAM role for Amazon EC2 instance. The role should be as “AmazonEC2RoleforAWSCodeDeploy”
  • Create a role for AWS CodeDeploy. The role should be as “AmazonEC2RoleforAWSCodeDeploy”
  • After creating the role, attach the role to the ec2 instance.
  • Install AWS CodeDeploy-Agent on Amazon EC2 and start and enable the service. The role should be as “AmazonEC2RoleforAWSCodeDeploy”

Requirements:

  • Need bitbucket access or GitHub
  • env file.

Step-by-Step Guide

Step 1 – AWS CodePipeline

Click on Create AWS CodePipeline.

Step 2 – AWS CodeCommit

step2

Select the source from which we need to commit. For example, I am getting my code from GitHub. Select GitHub and click on Next.

step2b

Add the connection, select the repository and branch names, and click next.

step2c

step2d

Step 3 – AWS CodeBuild

  • In the next step, we should select the AWS CodeBuild
  • If we create it through the AWS CodeBuild directly, we can see the source section as extra because there should be a connection to Bitbucket or whatever service we use.
  • The AWS CodeBuild section has an option to create a project. Using that, we should create a project.

step3

step3b

  • Click on Create Project.
  • Enter the Project name, Environment image as managed image, and the Ubuntu operating system.
  • In the build spec update the version
  • Add this to the build spec.

step3c

step3d

Open build projects and go to the build details section, edit the environment section, and update the env in the Name and Value.

step3e

step3f

step3g

Now update the Buildspec. Click on the edit section, and click on insert build with commands. Then click on the editor section and update the below file.

step3h

Scripts for Buildspec file:

  • In build section we have to update the Appspec.yaml files in the repository
  • Go to the bitbucket repo and we need to update the Appspec.yml
  • In Appspec.yml we have to update this

Scripts for Appspec file:

Scripts for After_script file:

Scripts for Before_script file:

  • In the After_install script, we must give the process name to run.

Step 4 – AWS CodeDeploy

step4

Go to the deploy section and create an application

In the AWS CodeDeploy section, create a deploy section and select Amazon EC2/On-Premises

step4b

In creating a deployment group, create an AWS IAM user of AWS CodeDeploy and attach the ARN to the deployment group.

step4c

step4d

step4e

Attach the service role of code-deploy in the deployment group section.

step4f

In the env configuration, select Amazon EC2 and attach the name of the instance.

step4g

In deployment settings, select “AWSCodeDeployDefault” one at a time.

step4h

step4i

In the Appspec.yml, which was created in the Bitbucket, add After_script.sh and Before_script.sh scripts.

step4j

Check the overview of the AWS CodePipeline and click on Create Pipeline.

step4k

step4l

Click on Create a Pipeline.

Conclusion

The integration of AWS CodeDeploy and AWS CodeBuild offers a robust and scalable solution for deploying Node.js applications easily and efficiently. Development teams can significantly reduce manual errors, accelerate time-to-market, and improve overall software quality by automating the build, testing, and deployment processes.

Drop a query if you have any questions regarding AWS CodeDeploy and AWS CodeBuild and we will get back to you quickly.

Making IT Networks Enterprise-ready – Cloud Management Services

  • Accelerated cloud migration
  • End-to-end view of the cloud environment
Get Started

About CloudThat

CloudThat is an official AWS (Amazon Web Services) Advanced Consulting Partner and Training partner, AWS Migration Partner, AWS Data and Analytics Partner, AWS DevOps Competency Partner, Amazon QuickSight Service Delivery Partner, AWS EKS Service Delivery Partner, and Microsoft Gold Partner, helping people develop knowledge of the cloud and help their businesses aim for higher goals using best-in-industry cloud computing practices and expertise. We are on a mission to build a robust cloud computing ecosystem by disseminating knowledge on technological intricacies within the cloud space. Our blogs, webinars, case studies, and white papers enable all the stakeholders in the cloud computing sphere.

To get started, go through our Consultancy page and Managed Services PackageCloudThat’s offerings.

FAQs

1. How does the CI/CD pipeline benefit development teams?

ANS: – The CI/CD pipeline offers several benefits to development teams, including faster and more frequent releases, reduced manual errors, improved code quality through automated testing, increased collaboration and visibility, and simplified deployment processes. It enables development teams to respond quickly to customer feedback, deliver new features rapidly, and maintain a stable and reliable software delivery process.

2. What is the role of AWS IAM in the CI/CD pipeline with AWS services?

ANS: – AWS IAM (Identity and Access Management) in the CI/CD pipeline is crucial for managing access to AWS resources and services. It ensures that only authorized users or services have the necessary permissions to perform actions on AWS resources, protecting the pipeline from unauthorized access or security breaches. AWS IAM roles and policies must be properly configured for AWS CodeDeploy and AWS CodeBuild to securely interact with other AWS services.

3. Is the CI/CD pipeline suitable for all applications and programming languages?

ANS: – Yes, the CI/CD pipeline concept applies to various applications and programming languages. AWS CodeDeploy and AWS CodeBuild support various programming languages and platforms, making them versatile and suitable for different development environments. Whether it’s web applications, microservices, mobile apps, or backend services, the CI/CD pipeline can be adapted to suit the specific requirements of the application.

WRITTEN BY Yamini Reddy

Share

Comments

    Click to Comment

Get The Most Out Of Us

Our support doesn't end here. We have monthly newsletters, study guides, practice questions, and more to assist you in upgrading your cloud career. Subscribe to get them all!