모두들 안녕하셨는지요~~^^
DevOps 컨텐츠를 업로드 하고 있는 Administrator 팀의 BTC_조랭이입니다 :)
이전 포스트에서 CI/CD 파이프라인에 대해서 알아보았죠?
그렇다면 이 파이프라인을 AWS에서 어떻게 구축하는지에 대해서 이번 포스트에서 같이 알아보도록 해요!
먼저, AWS에서는 CI/CD를 구축하기 위해 몇 가지 서비스를 사용합니다.
CodeCommit, CodeBuild, CodeDeploy, CodePipeline 네 가지 서비스인데요, 이번 포스트에서는 CodeCommit, CodeBuild 구성까지 알아보도록 할게요~!
AWS CI/CD 파이프라인
CI/CD 파이프라인을 위한 AWS의 네 가지 서비스입니다.
AWS 서비스명 | 설명 |
CodeCommit | 먼저 기존 코드를 Github에서 AWS CodeCommit으로 마이그레이션 한다. AWS CodeCommit은 AWS에서 호스팅하는 버전 제어 서비스로 클라우드에서 자산을 비공개로 저장하고 관리하는 데 사용한다. |
CodeBuild | 애플리케이션 코드를 빌드하기 위해 CodeBuild를 구성한다. AWS CodeBuild는 소스 코드를 컴파일하고 테스트를 실행하며 배포 준비가 된 소프트웨어 패키지를 생성하는 완전히 관리된다. |
CodeDeploy | 코드를 EC2 서버에 배포한다. AWS CodeDeploy는 Amazon EC2 인스턴스, 온 프레미스 인스턴스 또는 서버리스 Lambda 기능에 대한 애플리케이션 배포를 자동화하는 배포 서비스이다. |
CodePipeline | 코드를 지속적으로 제공하는 파이프 라인을 구축한다. AWS CodePipeline은 소프트웨어 배포에 필요한 단계를 모델링, 시각화 및 자동화하는 데 사용할 수 있는 지속적인 제공 서비스이다. 코드를 프로덕션에 전달하기 전에 파이프 라인에 승인 프로세스를 통합한다. |
AWS 콘솔에서 구성 방법
1. 리포지토리 생성
CodeCommit에서 리포지토리를 생성합니다. 생성하게 되면 아래 예시처럼 리포지토리가 리스트 됩니다. (참고자료: 이주현님 블로그: https://joobly.tistory.com/5)
파이프라인이 실행되면 이 리포지토리에서 소스 코드를 가져오게 됩니다.
2. 리포지토리에 코드 추가
git init
git add -A
git commit -m "commit message"
git remote add origin https://git-codecommit.ap-northeast-2.amazonaws.com/v1/repos/joohyun-repo
git push -u origin master
git clone https://git-codecommit.ap-northeast-2.amazonaws.com/v1/repos/joohyun-repo
(참고자료: 이주현님 블로그: https://joobly.tistory.com/5)
3. CodeBuild에서 빌드 프로젝트 생성
(비용이 발생하는 관계로 이주현님의 블로그 이미지를 사용하였습니다.)
리포지토리에는 CodeCommit에서 생성한 리포지토리 이름을 선택해줍니다.
AWS CodeBuild가 관리하는 도커 이미지를 사용하려면 관리형 이미지를 선택합니다. 다른 도커 이미지를 사용하려면 사용자 지정 이미지를 선택합니다. (ARM, Linux, Linux GPU, or Windows 등)
사전에 CodeBuild 서비스 역할을 생성하여, 기존 서비스 역할을 선택합니다. 추후 Amazon S3 버킷에 빌드 출력을 저장하려면 Amazon S3를 선택합니다. 또한 Amazon CloudWatch Logs 로그나 Amazon S3 로그를 생성할 수 있습니다.
소스 코드에 buildspec 파일이 있는 경우 빌드 사양 파일 사용을 선택합니다.
buildspec은 CodeBuild가 빌드를 실행하는 데 사용하는 YAML 형식의 빌드 명령 및 관련 설정의 모음입니다.
buildspec은 아래와 같이 작성될 수 있습니다.
version: 0.2
phases:
install:
commands:
- npm install
pre_build:
commands:
- npm run lint
build:
commands:
- npm test
post_build:
commands:
- echo Build completed
artifacts:
files:
- '**/*'
* version : 사용 중인 빌드 사양 표준의 버전
* phases : CodeBuild가 명령을 실행하도록 지시할 수 있는 빌드 단계. 빌드 단계 이름의 철자는 변경할 수 없으며 추가로 빌드 단계 이름을 생성할 수 없습니다.
* artifact : CodeBuild가 출력 버킷에 업로드하는 빌드 출력 결과물.
* buildspec은 YAML 형식에 맞아야하고, 디렉터리 구조를 맞춰야 합니다.
오늘은 CodeBuild에서 빌드 프로젝트를 생성하는 방법까지 알아보았습니다.
다음 포스트에서, CodeDeploy 및 CodePipeline 연결 하는 방법까지 알아보도록 할게요~
모두들 오늘 하루도 빠이팅빠이팅!!
'INFRA > DevOps' 카테고리의 다른 글
k8s 노드간 통신 (0) | 2022.05.13 |
---|---|
yaml 문법 (0) | 2022.05.12 |
ReplicaSet (0) | 2022.05.02 |
Kubectl 명령어 실습 (0) | 2022.05.02 |
[AWS]Kubernetes (0) | 2022.05.01 |
댓글