본문 바로가기

소프트웨어 이야기/인프라

AWS CodeDeploy와 AWS CodeDeploy Agent (1) - 1. CodeDeploy

요즘 AWS CodeDeploy Agent 오픈소스 커미터되기 스터디를 하고 있다.

AWS CodeDeploy Agent 코드를 분석하면서 알게 된 내용들을 틈틈이 정리해보고자 한다  👩‍🎓


1. CodeDeploy

CodeDeploy의 기본적인 구동 방식

( 참고 링크 )

1.  AWS CodeDeploy Agent 코드를 다운받아서, AWS EC2에 실행시켜두기

2. AWS CodeDeploy 에서 배포하기

3. AWS CodeDeploy에서 배포되었다는걸, Agent가 감지하면 코드를 EC2에 복사시켜준다. 


EC2에 CodeDeploy 세팅하는 방법

https://jojoldu.tistory.com/281


CodeDeploy에서 배포할 코드를 가져오는 방법

1. S3에 배포할 파일 압축해서 올려두기 

압축해제하면, appspec.yml 파일이 최상단에 나와야함


2. GitHub에 올려둔 배포할 커밋 지정하기 

( 형상관리로 github를 안쓰면, S3 업로드 방식을 써야할 듯 )


CodeDeploy 배포 설정파일

appspec.yml

( 대략 이런 느낌 appspec.yml )

- AWS CodeDeploy Agent가 appsepc 파일을 읽어서, 배포될 폴더 경로, 로그 관리 등등을 알아차린다.

- 이 파일은 배포할 프로젝트 파일에 둔다.

- destination은 항상 폴더다. ( reference-appspec-file-structure-files )

- files는 여러개를 지정할 수 있다. 한번의 배포로 여러 배포 목적지를 지정할 수 있다. 



CodeDeploy 배포방법

- AWS Console > Code Deploy 페이지에서 배포하거나, 로컬에서 AWS CLI 명령문으로 배포하면 된다.


로컬 CLI 명령문 샘플은 다음과 같다.

aws deploy create-deployment 
--application-name 어플리케이션이름
--deployment-config-name CodeDeployDefault.AllAtOnce 
--deployment-group-name 배포그룹명
--file-exists-behavior 파일이_이미_존재하는_경우_처리방식에_대한_옵션설정
--description "배포 설명" 
--s3-location bucket=배포할파일버킷위치,bundleType=zip,eTag=배포파일eTag,key=배포파일명

AWS CLI - Deploy Create Deployment


빈스톡에서도 두가지 방식으로 배포할 수 있었는데, 다 비슷한듯 ㅎㅎ