Skip to content

Latest commit

 

History

History
139 lines (83 loc) · 6.62 KB

Travis CI와 AWS S3, CodeDeploy 연동.md

File metadata and controls

139 lines (83 loc) · 6.62 KB

Travis CI와 AWS S3, CodeDeploy 연동하기

AWS의 배포 시스템인 CodeDeploy를 이용하기 전에 배포 대상인 EC2가 CodeDeploy를 연동 받을 수 있게 IAM 역할을 하나 생성하겠습니다.


EC2에 IAM 역할 추가하기

스크린샷 2021-03-07 오전 2 51 16

스크린샷 2021-03-07 오전 2 51 49

  • 역할

    • AWS 서비스에만 할당할 수 있는 권한
    • EC2, CodeDeploy
  • 사용자

    • AWS 서비스 외에 사용할 수 있는 권한
    • 로컬 PC, IDC 서버 등

스크린샷 2021-03-07 오전 2 54 03

스크린샷 2021-03-07 오전 2 55 19

스크린샷 2021-03-07 오전 2 56 35

태그는 원하는 이름으로 지으면 됩니다.

스크린샷 2021-03-07 오전 2 57 46

이렇게 만든 역할을 EC2 서비스에 등록하겠습니다. 다시 EC2 인스턴스 목록으로 가겠습니다.

스크린샷 2021-03-07 오전 3 10 43

스크린샷 2021-03-07 오전 3 12 12

스크린샷 2021-03-07 오전 3 13 13

그리고 위와 같이 EC2를 재부팅 하겠습니다.

스크린샷 2021-03-07 오전 3 16 20

sudo apt install awscli
aws s3 cp s3://aws-codedeploy-ap-northeast-2/latest/install . --region ap-northeast-2

위와 같이 입력하면 download가 잘 되는 것을 알 수 있습니다.

install 파일에 실행 권한이 없으니 실행 권한을 추가한다.
chmod +x ./install

install 파일로 설치를 진행한다.
sudo ./install auto  // sudo ./install auto > /tmp/logfile

위의 명령어가 /usr/bin/env: ruby: No such file or directory 이게 뜨면서 안된다면
sudo apt-get install ruby  설치를 진행하고 해보자.

설치가 끝났으면 Agent가 정상적으로 실행되고 있는지 상태 검사를 한다.
sudo service codedeploy-agent status

다음과 같이 running 메세지가 출력되면 정상이다.
The AWS CodeDeploy agent is running as PID xxx

// 참고: https://stackoverflow.com/questions/62286857/aws-codedeploy-agenten-on-ubuntu-20-0lts-ruby-errors

CodeDeploy 권한 생성

스크린샷 2021-03-07 오전 3 42 46

CodeDeploydptj EC2에 접근하려면 마찬가지로 권한이 필요합니다. AWS의 서비스이니 IAM 역할을 생성합니다.

스크린샷 2021-03-07 오전 3 43 19

스크린샷 2021-03-07 오전 3 44 44

스크린샷 2021-03-07 오전 3 45 37

스크린샷 2021-03-07 오전 3 46 51

위와 같이 하나 밖에 없기 때문에 다음을 누르고 넘어갑니다.

스크린샷 2021-03-07 오전 3 50 16

스크린샷 2021-03-07 오전 3 50 59


CodeDeploy 생성

스크린샷 2021-03-07 오전 3 51 55

스크린샷 2021-03-07 오전 3 53 13

스크린샷 2021-03-07 오전 3 54 47

스크린샷 2021-03-07 오전 3 55 16

스크린샷 2021-03-07 오전 3 57 26

스크린샷 2021-03-07 오전 3 58 54

스크린샷 2021-03-07 오전 4 00 57

배포 구성이란 한번 배포할 떄 몇 대의 서버에 배포할지를 결정합니다.


Travis CI, S3, CodeDeploy 연동

EC2에 접속해서 디렉토리를 만들어 줍니다.

mkdir app
cd app
mkdir step2
cd step2
mkdir zip

Travis CI의 Build가 끝나면 S3에 zip 파일이 전송되고, 이 zip 파일은 /home/ubuntu/app/step2/zip 으로 복사되어 압축을 풀 예정입니다.

Travis CI의 설정은 .traivis.yml로 진행했습니다. AWS CodeDeploy의 설정은 appspec.yml로 진행합니다.

version: 0.0
os: ubuntu
files:
  - source:
      destination: /home/ubuntu/app/step2/zip
      overwrite: yes

appspec.yml에 위의 코드를 적어줍니다.