이전글
https://dvpdvp.tistory.com/193
[Travis CI] 2. AWS IAM 엑세스 키 발급
이전글 https://dvpdvp.tistory.com/184 AWS S3를 통해 업로드 -> AWS CodeDeply -> AWS EC2에 배포를 해보려 한다. 첫 번째 할 일은" data-og-host="dvpdvp.tistory.com" data-og-source-url="https://dvpdvp.tis..
dvpdvp.tistory.com
전체 과정은
Push로 Travis 빌드 -> IAM키 발급 > AWS S3를 통해 업로드 -> AWS CodeDeploy -> AWS EC2에 배포
이렇게 된다. 이번엔 S3 버킷 생성과 Travis에 엑세스 키 등록을 포스팅 해보려 한다.
IAM 키 생성이 완료되었다면 S3에 버킷을 생성해보자
AWS에서 S3를 검색 > 좌측 메뉴에 버킷 > 버킷 만들기 버튼을 누르면 버킷을 생성할 수 있다.

따로 설정할것은 없다.
버킷 이름을 주고, 우리는 키로 접근을 할 것이기 때문에 모든 퍼블릭 엑세스를 차단한다.

간단하게 버킷의 생성이 완료되었다. (버킷 이름은 나중에 yml 설정에 사용된다)

그럼 이전에 생성한 키를 travis에 등록해보도록 하자
travis에서 대상 프로젝트 > settings에 들어가면 환경변수를 설정할 수 있다.

access_key_id와 secret_access_key에 IAM 키 정보를 등록하면
이를 사용해 S3에 접근할 수 있다.
이전에 작성한 .travis.yml에 deploy 관련 설정을 추가해준다.
before_deploy는 배포 전 배포에 사용할 파일을 압축하여 deploy 디렉토리 아래로 옮기는 작업을 한다.
deploy는 생성한 s3 저장소에 IAM으로 발급된 키를 사용하여 압축된 파일을 s3로 전송할 때 필요한 설정들을 등록한다.
(아래는 내가 배포할 때 사용한 설정이다. 다른 프로젝트에서 활용 시 디렉토리명, bucket명은 수정이 필요하다.)
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
그리고나서 push를 하면 이벤트가 발생하여 배포가 시작된다.

로그를 확인해보면 우선 에러없이 배포가 완료되었다.
그렇다면 S3에 파일이 잘 올라갔나 AWS에 들어가서 확인해보자.

연동된 버킷에 들어가보니 잘 업로드 되어있는것을 확인할 수 있다.
'PROGRAMMING > CI&CD' 카테고리의 다른 글
| 4-2. AWS EC2와 CodeDeploy 연동하기 (Agent 설치 & CodeDeploy 생성) (0) | 2022.02.28 |
|---|---|
| 4-1. AWS EC2와 CodeDeploy 연동하기 (역할 추가) (0) | 2022.02.27 |
| 2. AWS IAM 엑세스 키 발급 (0) | 2022.02.26 |
| 1. Travis를 이용해 Push로 자동 배포하기 (0) | 2022.02.12 |
| [Jenkins] 젠킨스 포트번호 변경 (0) | 2022.01.02 |