본문 바로가기
Web development/Infra

[AWS] CodeStar로 브랜치별 production/staging 자동배포 환경 만들기

by 자몬다 2020. 4. 13.

준비물

  • master 브랜치만 있는 CodeStar 프로젝트

진행과정

  1. 기존에 생성되어있는 CodeStar 프로젝트에 staging 브랜치를 추가한다.(기존 프로젝트는 master 브랜치용으로 사용된다)
  2. staging 브랜치용 CodeStar 프로젝트 생성
  3. 파이프라인 수정
  4. 권한 수정
  5. 테스트

 

프로덕션용으로 사용할 CodeStar 프로젝트는 이미 생성되어 있다고 가정함.

프로덕션용 CodeStar 프로젝트 이름 : moro-test-lambda-API

(이 글에서 새로 생성할)스테이징용 CodeStar 프로젝트 이름 : moro-stag-test

 

아래 staging 브랜치 생성과정의 프로젝트명이 moro-cstest라고 되어있는데 무시하면 된다. moro-test-lambda-API 프로젝트에 브랜치 생성할때 스크린샷을 까먹어서 스크린샷 캡쳐용으로 새로 만든 프로젝트라 그렇다.

 

staging 브랜치 생성

우선 Production용으로 생성한 CodeStar 프로젝트로 가서, 코드 메뉴를 누른다.
브랜치 탭으로 가서 브랜치 생성 버튼을 누른다.
브랜치 이름을 선택하고 생성을 누른다.

Staging 브랜치용 CodeStar 프로젝트 생성

staging용으로 사용할 CodeStar 프로젝트를 생성해야 한다. 새 프로젝트를 생성한다.
기존 프로젝트랑 똑같이 생성하면 된다.
이름을 입력하고 다음을 누른다. 프로젝트 이름은 moro-stag-test로 만들었다.

 

생성을 누른다.
건너뛰기를 누르고 생성을 기다린다. 프로젝트 내용은 별로 중요하지 않다. 어차피 리포지토리는 기존에 생성한 프로젝트를 바라보게 할 것이기 때문이다.
완료될때까지 기다린다.

 

파이프라인 수정

완료되면, 파이프라인 탭으로 간다.
moro-stag-test프로젝트의 파이프라인 우상단의 '편집'버튼을 누른다.
Source 영역의 스테이지 수정을 누르고 편집 버튼을 눌러준다.
리포지토리와 브랜치 이름만 바꿔주면 된다. production용으로 생성했던 프로젝트를 선택해준다.
staging 브랜치를 선택한다.
완료를 누른다.
저장한다.

권한 수정(PermissionBoundary)

IAM 서비스>역할 탭으로 간다. 새로 생성한 CodeStar프로젝트명으로 검색한다. CodeStarWorker-[프로젝트명]-ToolChain 이라는 이름의 역할을 찾아 클릭한다.
상세화면 하단에 Permissions boundary 영역을 펼쳐본다. 새로 만든 프로젝트의 codecommit 권한은 moro-stag-test에 한정되어 있음을 알수있다. 이걸 바꿔주어야 한다.
정책 탭으로 가서 해당 PermissionBoundary를 찾아 상세화면으로 들어간다.
권한 탭의 정책 편집 버튼을 누른다.
JSON 탭을 누른다. 여기까지 하고, 새 IAM 창을 하나 켠다.
IAM>역할 탭에서 처음 만들었던 프로덕션용 프로젝트로 검색해서 ToolChain을 찾는다. 
PermissionBoundary 영역에서 codecommit 관련 Resource를 찾아 복사한다.
아까 띄워둔 PermissionBoundary 편집화면으로 가서, Resource 배열에 추가해준다. 기존에 가지고 있던 자동생성된 repo에 대한 codecommit 권한은 삭제해도 상관없다. 저장해준다.

테스트

staging 브랜치에 수정사항을 만들고 푸시한다.
CodePipeline에서 배포 진행상황을 알수있다. 꽤 오래걸렸다.
moro-stag-test CodeStar 프로젝트로 가서 엔드포인트 링크로 이동해보자. 메인에 'Staging'을 붙인 수정사항이 반영되어 있다. 성공적으로 배포된 것을 알 수 있다.

댓글