AWS CodePipeline에서 GitHub 소스를 S3에 배포
소개
CodePipeline 설정 절차 비망록.
하고 싶은 일
구성도
※ ng new 명령으로 작성한 Angular 샘플 코드를 배포합니다.
설정 절차
1. CodePipeline 설정
파이프라인 만들기에서 만들기를 시작합니다.
파이프라인 이름을 입력하여 처음에는 새 역할을 만듭니다.
소스 프로바이더는 GitHub를 선택. (버전 1은 더 이상 사용되지 않으므로 버전 2 선택.)
참고:
"새 앱 설치"를 선택합니다.
리포지토리를 선택하고 Install을 누릅니다.
CodePipeline 설정 화면으로 돌아가서 리포지토리와 분기를 선택합니다.
(개발이나 스테이징, 프로덕션으로 환경을 나누어 사용하는 경우는, 환경 마다 브랜치와 파이프라인을 작성하는 것이 좋은 것일까요?) → 환경 마다 브랜치를 나누는, 라고 하는 것은 본래의 git의 사용법에서는 없기 때문에 NG
그런 다음 빌드 단계를 설정합니다.
AWS CodeBuild와 Jenkins를 선택할 수 있지만 여기에서는 AWS CodeBuild를 선택합니다.
"프로젝트 이름"항목에서 "프로젝트 만들기"를 선택합니다.
프로젝트를 만듭니다.
(여기서 설정한 환경 변수는 buildspec.yml에서 호출 할 수있는 것 같습니다.)
마지막으로 배포 단계 설정. S3을 선택합니다. (버킷은 미리 작성해 둡니다)
설정이 완료되면 구성된 파이프라인이 실행되지만 CodeBuild 실행이 실패합니다.
CodeBuild를 실행하려면 buildspec.yml이라는 yaml 파일에 빌드 시 실행할 쉘 명령을 작성하고 배포할 소스 코드의 루트 디렉토리에 배치해야 합니다.
루트 디렉토리에 다음과 같은 buildspec.yml을 만듭니다.
ng build 로 출력된 dist 디렉토리 부하의 파일을 S3 에 업로드하고 있습니다.
version: 0.2
phases:
install:
runtime-versions:
nodejs: 12
commands:
- npm install -g
- npm install --save-dev @angular-devkit/build-angular
- npm install -g @angular/cli
build:
commands:
- ng build
- aws s3 sync dist s3://src-2021/application
artifacts:
files:
- '**/*'
base-directory: 'dist*'
참고:
(runtime-versions에서 지정하는 node.js 버전은 10과 12에만 해당됩니다.)
buildspec.yml 을 git push 하면 파이프라인이 실행되고 이번에는 성공합니다.
S3에 배포되었습니다.
비고:
CodeBuild 역할에 S3에 대한 사용 권한 정책을 연결해야 합니다.
2. 슬랙에 대한 알림 설정
CodePipeline, CodeCommit, CodeBuild는 SNS 또는 ChatBot와 연동할 수 있으므로,
ChatBot 와 연동시켜 slack 통지합니다.
성공이나 실패시 이외에도 트리거가 되는 이벤트가 여러가지 선택 가능합니다.
구성 후 파이프라인을 다시 실행하여 슬랙 알림을 확인할 수 있었습니다.
이상으로 설정 완료입니다.
추가
· GitHub에 push를 트리거한다는 것은, 간편하게 배치가 너무 되어 버리므로, 프로덕션 환경의 경우는 생각할 필요가 있다.
Reference
이 문제에 관하여(AWS CodePipeline에서 GitHub 소스를 S3에 배포), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/R_R/items/51d0af53e9718b21b8d3텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)