이전글
https://dvpdvp.tistory.com/196
4-2. AWS EC2와 CodeDeploy 연동하기
이전글 https://dvpdvp.tistory.com/195?category=996035 4-1. AWS EC2와 CodeDeploy 연동하기 이전글 https://dvpdvp.tistory.com/194?category=996035 AWS EC2에 배포를 해보려 한다. 첫 번째 할 일은" data-og-..
dvpdvp.tistory.com
전체 과정
Push로 Travis 빌드 -> IAM키 발급 > AWS S3를 통해 업로드 -> AWS CodeDeploy -> AWS EC2에 배포
이번 포스트에선
1. EC2에 배포 디렉토리 생성
2. Travis와 CodeDeploy 연동 이 두가지 작업을 해보려한다.
이제 이 작업이 마무리되면 배포스크립트 작성만하면 된다!
배포 디렉토리는 원하는 위치에 생성하면 된다.
나는 /home/ec2-user/app/deploy/zip 이렇게 생성하였다.
mkdir /home/ec2-user/app/deploy && /home/ec2-user/app/deploy/zip
EC2에 디렉토리를 생성하였다면
.travis.yml이 위치해있는 곳에 codeDeploy 설정파일을 생성한다.
destination은 위에서 생성한 디렉토리 위치를 입력하면된다.
version : 0.0 #CodeDeploy version
os: linux
files:
- source: /
destination: /home/ec2-user/app/deploy/zip #EC2 deploy file path
overwrite: yes
파일명은 appspec.yml
그리고 travis와 codeDeploy 연동 설정을 .travis.yml에 추가해준다.
추가될 설정
deploy:
- provider: codedeploy
access_key_id: $AWS_ACCESS_KEY #Travis에 저장한 키 변수 사용
secret_access_key: $AWS_SECRET_KEY #Travis에 저장한 키 변수 사용
bucket: taglog-build
key: taglog.zip
bundle-type: zip
application: taglog #Codedeploy에 설정한 application 명
deployment_group: taglog #Codedeploy에 설정한 deployment_group
region: ap-northeast-2
wait-until-deployed : true
전체 설정
language: java
jdk:
- openjdk11
branches:
only:
- master
# Travis ci 서버의 home
cache:
directories:
- '$HOME/.m2/repository'
- '$HOME/.gradle'
script: "./gradlew clean build"
# CI 실행 완료시 메일로 알람
notifications:
email:
recipients:
- email
on_success: never # default: change
on_failure: always # default: always
before_deploy:
- zip -r taglog * #파일 압축
- mkdir -p deploy #travis가 설치된 위치에 배포 디렉토리 생성
- mv taglog.zip deploy/taglog.zip
deploy:
- provider: s3
access_key_id: $AWS_ACCESS_KEY #Travis에 저장한 키 변수 사용
secret_access_key: $AWS_SECRET_KEY #Travis에 저장한 키 변수 사용
bucket: taglog-build
region: ap-northeast-2
skip_cleanup: true
acl: private #zip 파일 접근을 private으로
local_dir: deploy #before_deploy에서 생성한 디렉토리. 여기에 있는 파일만 s3로 전송
wait-until-deploy: true
- provider: codedeploy
access_key_id: $AWS_ACCESS_KEY #Travis에 저장한 키 변수 사용
secret_access_key: $AWS_SECRET_KEY #Travis에 저장한 키 변수 사용
bucket: taglog-build
key: taglog.zip
bundle-type: zip
application: taglog #Codedeploy에 설정한 application 명
deployment_group: taglog #Codedeploy에 설정한 deployment_group
region: ap-northeast-2
wait-until-deployed : true
그리고 PUSH를 하면

반가운 초록불이 뜬다.

Job Log를 봐도 성공으로 보인다.

CodeDeploy에서도 성공으로 확인된다.
EC2에 아까 디렉토리로 가서 확인해보자

파일이 잘 도착한것을 확인할 수 있다.
'PROGRAMMING > CI&CD' 카테고리의 다른 글
| [Nginx] AWS EC2에 Nginx 설치하기 & 현재 서비스와 연동 (0) | 2022.03.08 |
|---|---|
| 5. AWS EC2 Github Push로 자동 배포 (0) | 2022.03.06 |
| 4-2. AWS EC2와 CodeDeploy 연동하기 (Agent 설치 & CodeDeploy 생성) (0) | 2022.02.28 |
| 4-1. AWS EC2와 CodeDeploy 연동하기 (역할 추가) (0) | 2022.02.27 |
| 3. AWS S3 버킷 생성 & Travis에 엑세스 키 등록 (0) | 2022.02.26 |