Travis CI + AWS 배포 파일 작성하기

may_soouu·2020년 12월 12일
0

docker

목록 보기
6/7
post-thumbnail

Elastic Beanstalk 으로 배포 환경을 구성하여 travis 파일에 배포 내용을 작성하겠습니다.

1. EC2 vs Elastic Beanstalk

둘다 aws에서 제공하는 서비스이다.
EC2 는 일종의 하나의 컴퓨터를 임대하는 것과 같습니다.
Elastic Beanstalk 는 EC2와 데이터베이스 같은 것들을 포함하여 소프트웨어 업데이트 시 자동으로 환경 관리를 해주는 것입니다.
(Elastic Beanstalk 환경을 구성하면 EC2도 생성이 됩니다.)

2. Elastic Beanstalk 설정하기

  1. AWS 접속 및 로그인
  2. Elastic Beanstalk 검색
  3. 새 환경 생성 클릭
  4. 웹 서버 환경 클릭(웹 서버 배포시에 사용할 것이기 때문에)
  5. 어플리케이션 이름 원하는 대로 입력
  6. 플랫폼은 원하는 것 선택(도커환경이면 도커)
  7. 플랫폼 브랜치 - amazon linux
  8. 애플리케이션코드 그대로 두기
  9. 애플리케이션 생성 클릭
  10. 완성

3. travis ci + aws

travis 파일에 aws와 연동 되었음을 알려주는 파일을 작성해야합니다.

deploy:
 provide:       > 외부 서비스 표시 (s3, elasticbeanstalk 등)
 region:        > 현재 사용하고 있는 aws의 서비스의 물리적 장소
                   (ex. ap-nortest-2)
 app:           > 2번에서 만든 어플리케이션 이름
 env:           > 2번을 생성하고 나면 나오는 환경 이름
 bucket_name    > elasticbeanstalk을 위한 s3버켓 이름
                  (2번을 완료하면 s3버켓은 자동으로 생성된다)
 bucket_path    > 어플리케이션 이름과 동일
 on
  branch        > 어떤 브랜치에 push를 할 때 aws에 배포 할 건지

4. secret key 입력하기

위의 내용을 입력한 뒤에 secret key도 입력해주어야한다.
secret key를 입력해줘야 travis ci 와 aws가 실질적으로 소통할 수 있다.
secretkey는 AWS IAM을 통해 발급받을 수 있습니다.

IAM 사용자 추가 방법

  1. aws 접속
  2. IAM 검색
  3. 사용자 추가
  4. 사용자 이름 입력 / 엑세스 유형: 프로그래밍 방식 엑세스
  5. 권한 설정 : 기존 정책 직접 연결 > ElasticBeanstalkFullAccess
  6. 사용자만들기

하면 엑세스키와 비밀엑세스키가 나오는데, travis 파일에 직접 입력하면 우리가 소스코드를 git에 올렸을 때 다른 사람이 볼 수가 있습니다.
그래서 보안상 다른 곳에 올려둔 후, travis 파일에 이를 가져오는 방식으로 해야합니다.

travis에서 aws 엑세스키 입력

  1. travis-ci 들어가기
  2. 연결해놓은 레파지토리 클릭
  3. 우측 상단 more options > settings > Environment Variables
  4. name : 원하는 대로 입력 / value : IAM에서 생성된 비밀엑세스키 입력 > add
    name : 원하는 대로 입력 / value : IAM에서 생성된 엑세스키ID 입력 > add
  5. travis 파일에서 가져오기
    access_key_id: $4번에서 입력한 name부분 입력
    ex.
    4번에서 입력한 name이 AWS_ACCESS_KEY / AWS_SECRET_ACCESS_KEY 라면
    access_key_id: $AWS_ACCESS_KEY
    secret_access_key: $AWS_SECRET_ACCESS_KEY
    이렇게 .travis.yml 파일에 추가하면 travis와 연동이 된다.
profile
back-end 개발자

0개의 댓글