appspec.yml 작성하기
codedeploy가 appspec.yml hooks 섹션에 쓰여 있는대로 호출할 스크립트 파일, jar 파일들이 압축파일 형식으로 S3에 업로드 되도록 artifact를 명세한다.
buildspec.yml에 artifact 저장 경로 명세하기
빌드가 끝나고 나서 어느 경로에 있는 파일들을 artifact로써 S3에 업로드할 것인지는 buildspec.yml에 artifacts 섹션에 다음과 같이 써주면 된다. 저장할 S3 경로랑 저장할 때 압축은 할건지, 압축 형식은 뭐로 할건지는 콘솔에서 build project 설정값으로 정한다.
artifacts:
files:
- build/libs/*.jar
codedeploy 작동 프로세스
이렇게 artifact로 남기는 파일들은 ec2에서 서버를 기동하는데 필요한 파일들이다. (예 : jar파일, appspec.yml, script.sh) 빌드가 성공하면 이 파일들이 압축파일 형태로 S3에 업로드되어 있을것이다. 그러면 해당 압축파일의 S3 URI를 카피해서 deployment를 생성한다. code-deploy-agent 입장에선 이 압축파일을 revision이라고 부른다.
codedeploy agent 설치하기
ec2에는 CLI로 code-deploy-agent를 설치해준다. 다음 링크 참고 : Amazon Linux 또는 RHEL용 CodeDeploy 에이전트 설치 - AWS CodeDeploy
$ sudo yum update
$ sudo yum install ruby
$ sudo yum install wget
$ cd /home/ec2-user
$ wget https://aws-codedeploy-ap-northeast-2.s3.ap-northeast-2.amazonaws.com/latest/install
IAM role에 codedeploy 관련 권한 추가하기
이때 중요한 것은 ec2 인스턴스를 기동할 때 붙이는 IAM role이 codedeploy를 돌릴 수 있는 권한을 가져야 한다는 것이다.
- AmazonEC2RoleforAWSCodeDeploy
- AWSCodeDeployFullAccess
- AWSCodeDeployRole
- AWSCodeDeployRoleForECS
4개 모두 필수 인지는 확인 필요
'웹' 카테고리의 다른 글
ORM 사용 이유와 장점 (1) | 2024.12.13 |
---|---|
OSIV와 SSE (0) | 2024.10.29 |
OSIV는 안티패턴? (2) | 2024.10.28 |
OSIV(open-in-view)란? (feat. LazyInitializaionException) (0) | 2024.10.27 |
JAVA 앱 배포하기 (0) | 2020.07.28 |