AWS로 CI/CD 파이프라인 구축하기
이 글은 github와 aws 개발자도구를 이용한 파이프라인 구축 과정입니다.
파이프라인 구축
클라이언트 파이프라인
S3에 버킷 생성
중복되지 않은 이름의 버킷을 생성한다.
codebuild를 위한 build.yml 파일 생성
예시)
version: 0.2
phases:
pre_build:
commands:
- cd client
- npm install
build:
commands:
- npm run build
artifacts:
files:
- '**/*'
base-directory: client/build
파이프라인 구성
- 이름 설정 후 깃헙 연결
- 빌드 프로젝트 생성, 환경이미지 설정
- 배포 스테이지 추가, 버킷 선택
서버 파이프라인
AWS 개발자 도구 서비스를 이용해서 배포 자동화 파이프라인을 구축해야 한다.
시작하기전에,
- EC2 인스턴스를 생성합니다.
- EC2 런타임 환경 구축(nvm, npm, node)
- 생성된 EC2에 태그 추가
- I AM 역할 수정(AmazonS3FullAccess, AmazonSSMFullAccess, AWSCodeDeployRole)
- 신뢰 관계 편집(Service에 codedeploy.ap-northeast-2.amazonaws.com 추가)
보안그룹
- 80, 443 포트 설정
appspec.yml생성
- 배포자동화를 도와주는 CodeDeploy-Agent가 인식하는 파일을 만들어준다.
각종 스크립트 파일이 담긴 폴더 생성
ex)start.sh, initialize.sh, stop.sh
CodeDeploy의 애플리케이션 생성
- ec2/온프레미스 선택
배포그룹 생성
- IAM role 선택
- 인스턴스 선택, 태그 선택
- 로드 밸런싱 체크 해제
파이프라인 생성
- 깃허브 레포지토리 선택
- 빌드 스테이지 건너뛰기
- 애플리케이션, 배포그룹 선택
만약 codedeploy-agent가 없다면??
클라이언트 환경변수 설정
시작전,
- RDS가 생성되어 있어야 한다.
- EC2인스턴스 안에 AWS CLI가 설치되어 있어야 한다.
$ curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
$ unzip awscliv2.zip
$ sudo ./aws/install
빌드 프로젝트
- 선택 후 환경 -> 추가구성 -> 환경변수 설정
백앤드 환경변수 설정
parameter store
- 이름,값을 설정하여 필요한 환경변수를 생성
환경변수를 적용 할 스크립트 파일 수정
예시)
#!/bin/bash
cd /home/ubuntu/im-sprint-practice-deploy/server
export DATABASE_USER=$(aws ssm get-parameters --region ap-northeast-2 --names DATABASE_USER --query Parameters[0].Value | sed 's/"//g')
export DATABASE_PASSWORD=$(aws ssm get-parameters --region ap-northeast-2 --names DATABASE_PASSWORD --query Parameters[0].Value | sed 's/"//g')
export DATABASE_PORT=$(aws ssm get-parameters --region ap-northeast-2 --names DATABASE_PORT --query Parameters[0].Value | sed 's/"//g')
export DATABASE_HOST=$(aws ssm get-parameters --region ap-northeast-2 --names DATABASE_HOST --query Parameters[0].Value | sed 's/"//g')
authbind --deep pm2 start app.js
주의사항
- 파이프라인 돌릴땐 codedeploy-agent가 실행 되어 있어야 한다.
aws ec2 사용시 nvm , npm , node를 최신버전으로 다운했음에도 옛날버전을 사용하는 오류 해결 방법입니다
node.js 업데이트 (3개의 명령어를 차례차례 입력하세요.)
sudo npm cache clean --force
sudo npm install -g n
sudo n stable
npm 업데이트
sudo npm install -g npm
Author And Source
이 문제에 관하여(AWS로 CI/CD 파이프라인 구축하기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@dnflekf2748/aws-CICD저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)