본문 바로가기
IT 프로그래밍 관련/API server ( Flask )

Git hub, serverless를 이용한 CI/CD

by 지나는행인 2021. 4. 19.
728x90

이 전에 serverless프레임워크를 이용하여, 배포를 해봤다.

 

이때 우리가 업데이트한 내용을 새롭게 배포를 하려면 , sls deploy 라고 매번 쳐서 수동으로 업데이트를 했어야했다.

 

이것은 매우 번거롭고, 팀원들과 함께라면 더욱 더 많은 일이 요한다.

 

그래서 CI / CD 라는것이 필요하다

 

CI / CD 란

 

CI는 Continuous Integration 즉, 지속적인 통합이라는 의미입니다.
지속적인 통합이란,
어플리케이션의 새로운 코드 변경 사항이 정기적으로 빌드 및 테스트 되어
공유 레포지토리에 통합히는 것을 의미한다.

 

Continuous Delivery는 공유 레포지토리로 자동으로 Release 하는 것,
Continuous Deployment는 Production 레벨까지 자동으로 deploy 하는 것을 의미한다.
정리하자면, CI가 새로운 소스코드의 빌드, 테스트, 병합까지를 의미하였는데,
CD는 개발자의 변경 사항이 레포지토리를 넘어, 고객의 프로덕션(Production) 환경까지 릴리즈 되는 것을 의미한다.

즉 자동화를 한다는 것이다.

 

여기서 이용할 것은 gitgub인데 , 깃 허브를 업데이트하면 그에 연결되어 있서 배포 되는 자료도 자동 수정되어 배포 되

 

게끔 하려한다.

 

먼저 깃허브로 가서 새로운 레파지토리를 생성한다.

 

* 깃허브 레파지토리 생성화면

레파지토리를 생성 후 

 

수동으로 deploy 하던 aws에 연결된 폴더를 비주얼 스튜디오로 열고 , 

 

( 열고 .gitignore 파일을 생성 후

  node_modules/     를 추가하고 저장한다.

 

 

터미널에서

 

 

위의 명령어 중 git init

 

git remote add origin https://github.com/naya86/xxzz.git

 

를 차례로 실행한다.

 

 

위와같이 커밋할 수 잇는 파일이 표시된다.

 

그러면 커밋하고 푸쉬를 해본다.

 

그리고 깃허브 사이트를 새로고침하면,

 

 

위와같이 바뀌어있다. 여기까지 되면 이제 serverless 페이지로 가서 설정을 해야한다.

 

페이지로 가면 만들어놓은 서버가 있는데 그곳에서 settings를 클릭한다.

 

설정으로 들어가면

 

위와 같이 왼쪽에는 깃허브 아이콘이 나오고 , 오른쪽에는 aws 아이콘이 나온다.

 

깃허브를 연결하고, aws도 연결하는것이다.

 

먼저 깃허브 connect를 들어가서 모든 레파지토리 선택 후 save를 해주고,

 

aws는 내가 만들어 놓은 xxzz 를 선택해서 연결한다.

 

이제 아래쪽을 작성한다.

 

레파지토리를 선택하고, 

 

브랜치에는 마스터, 스테이지는 dev를 선택후 add를 선택한다.

 

그럼 이제 설정은 끝이다. 이전에 연결되서 작업하던 , 코드를 수정하고 , 

 

sls deploy 를 누르고 말고, 깃허브에 푸쉬를 해서 깃허브에 올라갈 수 있게끔 해보자.

 

그러면 자동으로 수정 배포 될 것이다.

 

그것은 서버리스 페이지의 ci/cd 란을 통해 확인 가능하다.

 

코드 수정 후 커밋 후 푸쉬.  그 이 후 서버리스 페이지 , deploy중이라 표시된다.

 

기다려보고 성공이라고 뜨면 , 잘 작동이 되는것이다.

 

그럼 수동으로 deploy 없이 , 수정후에 깃허브에 푸쉬만 해주면 자동으로 배포된다.

 

성공!!

댓글