본문 바로가기

PROGRAMMING/CI&CD

3. AWS S3 버킷 생성 & Travis에 엑세스 키 등록

이전글

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에 들어가서 확인해보자.

 

 

연동된 버킷에 들어가보니 잘 업로드 되어있는것을 확인할 수 있다.