DEV Community

Cover image for [AWS Experiment] 4 - Using AWS CICD
Sunbeom Kweon (Ben)
Sunbeom Kweon (Ben)

Posted on • Updated on

[AWS Experiment] 4 - Using AWS CICD

AWS CICD consists of CodeCommit, CodeBuild, CodeDeploy, and CodePipeline. I am not big fan of AWS CICD since there are many other ways to test & deploy applications other than using AWS. But I think if you want to develop an application fully using AWS services than AWS CICD services could be one of the best options.

CodeCommit

Things that I 😍

  • User interface of the console was better than I expected. Not too confusing, simple enough.
  • In security terms, I believe CodeCommit is better than GitHub. CodeCommit repositories are private by default But GitHub repositories could be way too public if you don't take care of it.

Things that I 😕

  • Cloning and committing to repositories from local PC require IAM knowledge.

CodeBuild

Things that I 😍

  • I really enjoyed writing buildspec.yml. The experience working with console to write buildspec.yml was pretty easy too.

CodeDeploy

Things that I 😍

  • I think it was handy to select EC2 instances as a deployment group by tagging the same value. But at the same time, I thought it could be hard to manage if you don't be careful about managing tags.

  • appspec.yml was not too hard to understand.

Things that I 😕

  • I had to install CodeDeploy Agent on all EC2 instances in the deployment group.
  • I could use CloudFormation to launch those EC2 instances as specific AMI that already has installed CodeDeploy Agent, but I felt like no one would want to use this if they are not familiar with AWS services.

  • Installing CodeDeploy Agent on EC2 instances

#!/bin/bash

# Installing CodeDeploy Agent
sudo yum update
sudo yum install ruby

# Download the agent (replace the region)
wget https://aws-codedeploy-eu-west-3.s3.eu-west-3.amazonaws.com/latest/install
chmod +x ./install
sudo ./install auto
sudo service codedeploy-agent status
Enter fullscreen mode Exit fullscreen mode

CodePipeline

Things that I 😍

  • It triggers build and deploy stages as soon as I commit the changes to CodeCommit.

  • With CodPipeline, I did not have to do too much work on CodeDeploy part.

  • The User Interface of CodePipeline was very satisfiable.

Things that I 😕

  • Still, you have to learn how to manage deployment group at the CodeDeploy.

  • Hard to reach out CloudWatch log on console.

Top comments (0)