CodeCommit
CodeBuild
CodeDeploy
CodePipeline
CodeSeries Terraform에서 구축하기
AWS에서 Developer Tools로 분류되어 있는 CodeCommit, Codebuild, CodeDeploy, CodePipeline을 통칭하는 단어
CodeSeries의 저장소 역할로, VCS를 사용
CodeSeries에서 빌드를 담당하는 서비스로, 저장소로부터 resource를 가져와
buildspec.yml
에서 정의된 절차대로 빌드를 진행함
CodeBuild는 CD에 사용되는 서비스
소스 공급자에 소스가 업로드되면 CodeBuild에서 알아서 가져다가 빌드 진행, 빌드 완료 시 artifact를 artifact 저장소에 저장
빌드는 별도로 구성된 docker에서 실행
build의 결과물인 artifacts는 설정에 따라 생성되지 않을 수 있고, 생성 시에는 저장소에 저장
buildspec은 build project 당 1개만 적용 가능하며 경로 및 파일명을 원하는대로 변경 가능
# 버전: 현재는 0.2가 권장사항
version: 0.2
# 빌드 단계별로 원하는 명령 입력
phases:
# 빌드 전 수행할 명령 입력
pre_build:
commands:
- echo Logging in to Amazon ECR...
- aws ecr get-login-password --region $AWS_DEFAULT_REGION | docker login --username AWS --password-stdin $AWS_ACCOUNT_ID.dkr.ecr.$AWS_DEFAULT_REGION.amazonaws.com
# 빌드를 수행할 명령 입력
build:
commands:
- echo Build started on `date`
- echo Building the Docker image...
- docker build -t $IMAGE_REPO_NAME:$IMAGE_TAG .
- docker tag $IMAGE_REPO_NAME:$IMAGE_TAG $AWS_ACCOUNT_ID.dkr.ecr.$AWS_DEFAULT_REGION.amazonaws.com/$IMAGE_REPO_NAME:$IMAGE_TAG
# 빌드 후 수행할 명령 입력
post_build:
commands:
- echo Build completed on `date`
- echo Pushing the Docker image...
- docker push $AWS_ACCOUNT_ID.dkr.ecr.$AWS_DEFAULT_REGION.amazonaws.com/$IMAGE_REPO_NAME:$IMAGE_TAG
EC2 인스턴스, 온프레미스 인스턴스, 서버리스 Lambda 함수 또는 Amazon ECS 서비스로 애플리케이션 배포를 자동화하는 배포 서비스
version: 0.0
os: linux
files:
- source: /index.html #소스 파일 이름
destination: /var/www/html #서버의 dest 경로에 소스 파일 배포
AWS CodePipeline은 릴리스 프로세스 단계의 오케스트레이션을 지원