# travis-ci에서 Amazon S3로 파일 배포
배경, 목적
Amazon S3는 클라우드 슬레이지로서 뿐만이 아니라, 정적인 WEB 컨텐츠의 전달원으로서도 이용할 수 있다. Amazon S3에 파일을 업로드하는 툴은 다수 있지만, 컨텐츠의 버전 관리로서 Github를 이용하고 있는 경우, 파일 배치와 버전의 연결을 할 필요성이 생길 수 있다. 이번에는 CI 서비스 travis-ci을 이용하여 이를 실현한다.
|source| -> |github| -> |travis-ci| -> |S3|
절차
travis.yml
설정 배포용 계정 만들기
travis-ci의 배포는 전용 사용자를 만들고 해당 사용자 계정을 사용하여 travis-ci가 AWS API를 두드린다. 먼저 AWS 콘솔
IAM
에서 그룹을 만듭니다. 사용 권한을 설정하여 S3에 파일을 업로드할 수 있습니다. 사실은 세세하게 설정해야 할 것이지만, 이번은 AmazonS3FullAccess
로 했다.다음으로 사용자를 만듭니다. 적당한 이름으로 유저를 만들면 「인증 정보의 다운로드」로부터, 액세스 키가 쓰여진 CSV를 다운로드하는 것. 이것을 잊으면 다시 사용자를 다시 만들게 된다. 유저를 만들면 방금 만든 그룹의 멤버로 한다.
S3에 버킷 만들기
정적 WEB 컨텐츠를 전달해, DNS로 이름 해결할 때는 버킷명을 FQDN으로 하는 것이 좋다. 버킷을 만들면 속성에서 "정적 웹 사이트 호스팅"을 활성화합니다. 또한, 액세스 허가로부터 「인증된 유저」의 「업로드/삭제」에 체크를 넣는다. 이제 배포할 수 있습니다.
배포된 콘텐츠를 얻고 실행할 수 있도록 하려면 별도의 버킷 정책을 편집해야 합니다. AWS Policy Generator 로부터 다음과 같이 설정을 하는 것으로 모든 사람에게 공개된 컨텐츠로 할 수 있다.
travis.yml 만들기
리포지토리의 루트 디렉토리에
travis.yml
를 만듭니다.language: bash
script: echo "do nothing"
deploy:
provider: s3
bucket: bucket_name
access_key_id: "YOUR AWS ACCESS KEY"
endpoint: s3-ap-northeast-1.amazonaws.com
region: ap-northeast-1
on:
branches: master
버킷명이나 리전, 브랜치 등은 적절히 읽어들일 것. 자세한 내용은 참조을 보는 것이 좋습니다. 마지막으로 비밀 키를 암호화하여 삽입합니다. 사전에 travis.rb 을 넣어 둔다.
travis encrypt --add deploy.secret_access_key
표준 입력에 비밀 키를 붙여넣습니다. 그리고는, master 브랜치에 push 하면 S3에 파일이 전개되는 것을 확인한다.
Reference
이 문제에 관하여(# travis-ci에서 Amazon S3로 파일 배포), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/numa08/items/a18501892d3ba0e995fa텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)