Building and Deploying with AWS CodeBuild : A Step-by-Step Guide

Building and Deploying with AWS CodeBuild : A Step-by-Step Guide

ยท

4 min read


In this article, we'll walk you through the process of setting up a CI/CD pipeline on AWS using CodeBuild. We'll create a simple web page, configure a buildspec file, and build the project using CodeBuild. This guide is designed to be easy to understand, even for beginners.

What is AWS CodeBuild?

AWS CodeBuild is a fully managed build service provided by Amazon Web Services (AWS). It compiles source code, runs tests, and produces software packages that are ready to deploy.

With CodeBuild, you don't need to manage and scale your own build servers. It scales automatically and can run multiple builds at the same time.


Task 1: Setting Up and Understanding the Buildspec File

Step 1: Understand the Buildspec File

A buildspec file is a YAML file that tells CodeBuild how to run a build. It includes commands and settings for different phases of the build process. Here's an example of a simple buildspec file:

version: 0.2

phases:
  install:
    commands:
      - echo Installing dependencies...
      - apt-get update -y
      - apt-get install -y nginx
  pre_build:
    commands:
      - echo Starting pre-build phase...
      - service nginx start
  build:
    commands:
      - echo Building the application...
      - cp index.html /usr/share/nginx/html/
  post_build:
    commands:
      - echo Build completed successfully.

artifacts:
  files:
    - '**/*'

Explanation of the Buildspec File:

  • version: Specifies the version of the buildspec file format.

  • phases: Divides the build process into different stages.

    • install: Installs necessary dependencies. Here, it installs and updates Nginx.

    • pre_build: Performs tasks before the build starts. Here, it starts the Nginx service.

    • build: The main build phase. Here, it copies the index.html file to the Nginx server directory.

    • post_build: Tasks to perform after the build completes. Here, it simply echoes a message indicating the build is complete.

  • artifacts: Specifies the files to include in the build output. The pattern '**/*' includes all files.

Step 2: Create a Simple Web Page

  1. Create a CodeCommit Repository:

    • Go to the AWS CodeCommit console and create a new repository.

    • Clone the repository to your local machine using a Git client.

  2. Add an index.html File:

    • Create a simple HTML file named index.html with the following content:

        <!DOCTYPE html>
        <html lang="en">
        <head>
            <meta charset="UTF-8">
            <meta name="viewport" content="width=device-width, initial-scale=1.0">
            <title>My Nginx Page</title>
        </head>
        <body>
            <h1>Welcome to Nginx running on AWS CodeBuild!</h1>
        </body>
        </html>
      
  3. Push the index.html File to CodeCommit:

    • Add, commit, and push the index.html file to your CodeCommit repository using Git commands:

        git add index.html
        git commit -m "Add index.html"
        git push origin main
      

Step 3: Create the Buildspec File

  1. Create a buildspec.yaml File:

    • In your local repository, create a file named buildspec.yaml with the content provided above.

    • Add, commit, and push the buildspec.yaml file to your CodeCommit repository using Git commands:

        git add buildspec.yaml
        git commit -m "Add buildspec.yaml"
        git push origin main
      

Task 2: Building the Project with CodeBuild

Step 1: Set Up CodeBuild Project

  1. Create a New Build Project:

    • Go to the AWS CodeBuild console and create a new build project.

    • Enter a project name and select your CodeCommit repository.

  2. Configure the Build Environment:

    • Choose the runtime environment (e.g., Ubuntu, standard image).

    • Select the appropriate runtime version (e.g., aws/codebuild/standard:4.0).

  3. Specify the Buildspec File:

    • Ensure that the buildspec.yaml file path is correct (it should be in the root directory of your repository).
  4. Start the Build:

    • Start the build process and monitor its progress in the CodeBuild console.

Step 2: Verify the Build

  1. Check Build Logs:

    • Go to the CodeBuild project and check the logs to ensure that the build phases are executed correctly.
  2. Verify the Build Output:

    • The index.html file should be copied to the Nginx server directory as specified in the buildspec.yaml file.

Conclusion

Congratulations! You have successfully set up a CI/CD pipeline using AWS CodeBuild. You've learned how to create a buildspec file, configure a build project, and run a build process that deploys a simple web page using Nginx. This hands-on experience will help you understand how to use AWS CodeBuild in your projects.

By following these steps, you can now automate the building and deployment of your applications, making your development process more efficient and reliable. Happy coding!

ย