[AWS] CodePipeline - S3 Client 자동화
DevOps

[AWS] CodePipeline - S3 Client 자동화

반응형

자동화를 하는 이유는 수동적이고 반복적인 배포과정을 자동화함으로써 시간을 절약할 수가 있습니다. 또한 사람이 배포를 하다 설정을 잘못하여 실수 할 수 있는 부분도 방지할 수 있습니다.

앞으로 할 부분을 간략히 설명하면, 깃허브에 새로운 코드를 푸쉬하여 올려 놓을 때 마다 AWS에서 자동화 설정을 하면 자동으로 반영됩니다.

 

AWS에서는 자동화 기능을 제공하고 있는데 CodePipeline 에서 설정이 가능합니다.

여기서 파이프라인 생성을 눌러 시작할 수 있습니다.

 

 

하지만 시작하기전에 S3버킷을 생성하고 정적 웹 호스팅용으로 설정을 미리 해놓아야 합니다.

 

0. 빌드 파일 생성

최상위 디렉토리에 buildspec.yml 파일을 생성하여 아래의 내용으로 저장합니다.

이 파일을 올리는 이유는 업로드를 하고나서 추가적으로 명령어를 입력해야 하는데 (ex. npm install)

aws에서 자체적으로 어떻게 수행할지, 어떤 명령어를 입력할 지 구성하는 부분입니다.

 

buildspec.yml

version: 0.2

phases:
  pre_build:
    commands:
      - cd client
      - npm install
  build:
    commands:
      - npm run build

artifacts:
  files:
    - '**/*'
  base-directory: client/build

 

1. 파이프라인 설정 선택

 

파이프라인 이름 부분에서 원하는 이름을 넣고 넘어가면 됩니다.

 

2. 소스 스테이지 추가

 

소스 공급자란은 GitHub(버전2) 선택하고

연결란 옆 GitHub에 연결을 선택해줍니다.

이름을 자유롭게 짓고

새 앱 설치를 눌러서 자신의 깃허브 아이디로 들어가

Select repositories 버튼을 눌러 배포하고자 하는 레포지토리를 선택하여 올리면 됩니다.

 

 

연결버튼을 누르고 아래 입력란에서 리포지토리 이름, 브랜치 이름에 해당 하는 곳을 선택합니다.

 

3. 빌드 스테이지 추가

 

빌드 공급자 란을 AWS CodeBuild를 선택하면 아래와 같이 뜹니다.

프로젝트 생성 버튼을 눌러 줍니다.

 

이름을 원하는 대로 짓고

 

 

환경 설정란에서 아래와 같이 설정해 줍니다. (어떤 운영체제에 따라 다름)

설정 한 다음 맨 아래 CodePipeline으로 계속 버튼을 눌러줍니다.

 

 

4. 배포 스테이지 추가

 

미리 만들어 두었던 S3를 선택해줄 것입니다. S3를 공급자에 선택하고

해당 버킷을 찾아 선택해줍니다.

그리고 배포하기전에 파일 압출 풀기를 선택 해줍니다.

 

 

5. 검토 및 확인

마지막으로 검토 창이 뜨고 설정했던 목록들이 뜹니다. 확인해주고, 파이프 라인 생성을 해주면 아래와 같이 실행이 되고 완료가 되면 전부 초록색으로 완료가 표시 됩니다.

 

5. 에러시 로그 확인

만약 실패가 뜬다면 빨간 표시가 됩니다. 그럴때는 빌드 로그를 확인해야 합니다.

빌드 - 프로젝트 빌드 - 해당 파이프라인 프로젝트 클릭 - 빌드 기록 에서 실패한 빌드 로그를 클릭합니다.

여기서 어떤 오류들이 떴는지 확인 가능합니다.

 

CloudWatch에서도 확인 가능힙니다. CloudWatch를 검색창에 검색하여

로그 - 로그 그룹 - 생성한 빌드 프로젝트에서 . '/aws/codebuild/빌드 프로젝트 이름' 으로 구성된 로그 그룹을 찾아 제일 최신 버전으로 확인할 수 있습니다.

 

 

6. 환경변수 설정

클라이언트 배포를 하면서 빌드를 할때 서버 주소를 .env 파일 안에 변수로 넣게 됩니다.

자동화 코드를 하면 CodeBuild에서 생성된 자동화 목록에서 설정해주면 됩니다.

만든 빌드를 선택하고 편집 - 환경에 들어가서  

추가 구성을 눌러주면 됩니다.

조금 내리다 보면 환경변수란에 이름과 값을 넣으면 됩니다.

 

반응형

'DevOps' 카테고리의 다른 글

[AWS] AWS Activate 스타트업 $1350 지원  (0) 2022.06.18
[AWS] AWS 서버비용 150만원 환불 내용  (0) 2022.06.11
[AWS] HTTPS 적용  (0) 2022.01.19
[AWS] RDS  (0) 2022.01.18
[AWS] S3 배포  (0) 2022.01.18