[AWS] s3 자동배포(code pipeline)

gigi·2023년 4월 26일
0

S3 버킷을 생성하고 난 뒤 자동배포를 위한 작업이다.

배포하려는 프로젝트 최상위 디렉토리에 buildspec.yml 파일을 생성해준다.

version: 0.2

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

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

yml 내용을 자세히 보면 내 프로젝트 구성에 맞게 build 사전 작업으로 client 디렉토리에 접근해 npm install을 먼저 해준다. 그 뒤 build 작업에서는 npm run build 명령어를 통해 빌드를 해주게 되고 build 된 파일들의 base-directory가 들어간다.

변경사항을 저장하고 commit 후 push 한다.


이제 aws의 CodePipeline 콘솔에 접속한다.

자신이 구별할 수 있는 이름으로 파이프라인 이름을 적어주고 다음으로 넘어간다.

소스공급자는 github(버전 2)로 선택해준다.

GitHub에 연결 클릭

연결이름을 정하고 새앱 설치 클릭

깃헙 앱 새창이 뜰텐데 맨 아래로 내려보면 연결 할 프로젝트 레포 선택할 수 있는 부분이 보인다

연결 후 리포지토리 이름에 해당 프로젝트를 선택할 수 있고 배포할 브랜치도 선택 후에 다음으로 넘어간다. 이후 해당 브랜치에 커밋이 발생하면 자동으로 빌드-배포가 진행 된다.

빌드공급자로 AWS CodeBuild 선택, 다음으로 넘어가 프로젝트 생성을 눌러준다.

운영체제는 Ubuntu 다른 운영체제 선택 시 터미널 명령어가 buildspec.yml 파일에 담긴 명령어가 정상적으로 작동하지 않을 가능성이 있다.
런타임은 standard
이미지는 https://docs.aws.amazon.com/codebuild/latest/userguide/available-runtimes.html 위 링크에서 지원하는 버전을 참고해 선택한다.
이미지의 버전은 이 런타임 버전에 항상 최신 버전 사용을 선택한다.

로그 파일을 저장하는 서비스로 CloudWatch 혹은 S3를 이용할 수 있다. S3에 버킷이 이미 하나 생성되어 있다면, 버킷의 수가 많아져 과금이 될 가능성이 있으니 CloudWatch 서비스를 빌드 출력 로그 저장을 위한 서비스로 선택하여 리소스를 분산할 수 있다.

프로젝트 생성이 다 끝났다면 다시 전 화면으로 다시 돌아와 프로젝트에서 사용하는 환경변수를 설정해준다. 추후 pipeline 생성이 끝난후에 추가해줄 수 도 있다.(맨 아래 참고)

다음으로 넘어가서 배포공급자는 S3로 만들어두었던 버킷을 선택한다. 배포하기전에는 파일 압축을 풀어줄수 있도록 체크 표시한다.

다음으로 넘어가 파이프라인을 생성한다

이렇게 3개 다 성공하면 끝!

S3 서비스에 접속하면 'codepipeline'으로 시작하는 버킷이 생성된 것을 확인할 수 있는데 이는 정상적이므로 해당 버킷은 무시해도 좋다.

만약 빌드 과정에서 '실패' 메시지가 보일 경우 빌드 출력 로그를 확인하여 문제점을 찾아야 한다.


환경변수 추가 하는 방법

생성한 파이프라인에 들어간다

편집

build의 스테이지 편집

현재 작업중인 그룹의 편집버튼 클릭하면 환경변수를 추가할 수 있다

0개의 댓글