프로그래밍 연습하기

스프링 부트와 AWS로 혼자 구현하는 웹 서비스 -8장,9장- 본문

Spring Boot

스프링 부트와 AWS로 혼자 구현하는 웹 서비스 -8장,9장-

john.k 2020. 7. 14. 01:09
반응형

8장, 9장에서는 배포를 하고 배포를 자동화하였다.

 

이전까지의 과정은 디테일에서는 좀 차이가 있지만

내가 개인 프로젝트를 하면서 어느정도 경험해본 부분이었다.

 

여기서부터는 처음 경험해보는 것이라 신기하고 낯선 부분이 많았다.

CI (Continuous Integration) / CD (Continuous Deployment) 라고 하는 개념을 직접 실습해보면서

어느정도 감을 잡을 수 있게 되었다.

이렇게 내가 겪어보지 않은 과정이 있다는 것이 책을 구매한 이유 중 하나이기도 했다.


이 단계에서는 리눅스 환경과 쉘 스크립트도 사용을 했는데 전공 수업때 어느정도 해본 경험이 있었다.

그렇게 낯설지는 않아서 크게 어렵지 않게 진행할 수 있었다.

 

Github에 푸쉬를 하면 Travis CI가 AWS S3에 jar를 전달하고

Travis CI는 CodeDeploy에 배포 요청을 해서

CodeDeploy가 S3에서 파일을 받아와 EC2에 배포하고 서버가 돌아가게 된다.


8장에서는 EC2에 Github를 통해 애플리케이션을 받고 실행하는데 에러가 났었다.

test환경에서의 프로퍼티를 넣지 않아서 인것 같다.

 

그리고 EC2에서의 DB설정까지 하고 다시 실행을 해봤는데 메모리 에러가 뜨면서 실행이 안됬다.

이건 일시적인 문제 같아서 다시 실행해보니 제대로 돌아가는 것을 확인할 수 있었다.

 

이외에도 오타로 인한 에러도 여전히 발생했다.

 

9장에서는 gredlew의 실행 권한이 없어 배포 중 에러가 났다.

저자의 깃허브 이슈에도 올라온 에러였다.

gredlew에 실행 권한을 줘서 해결할 수 있다.

github.com/jojoldu/freelec-springboot2-webservice/issues/75

 

P.326 Travis 빌드 실패 질문 · Issue #75 · jojoldu/freelec-springboot2-webservice

안녕하세요 해당 페이지 실습중 Travis에서 /home/travis/.travis/functions: line 350: ./gradlew: Permission denied 이러한 오류로 빌드 실패가 내려와서 구글링 해보았더니 before_install: chmod +x gradlew 을 .travis.yml 에

github.com

 

그리고 Travis-CI에서 에러가 발생한 적이 또 있다.

아래 이슈와 같은 내용은 아니지만, 나 역시 오타를 내서 발생한 에러였다.

github.com/jojoldu/freelec-springboot2-webservice/issues/296

 

[오류] p.356-357 travis 배포 오류입니다 · Issue #296 · jojoldu/freelec-springboot2-webservice

기존에 올라온 질문이 아닌지 먼저 검색해주세요! 가장 자주 나온 제보 P.105 @PutMapping("/api/v1/posts") P.111 Posts.update 어떤 오류인가요? 오류설명: codedeploy설정 후 push하니 travis에서 아래와 같은 오류�

github.com

최종적으로 변경해서 버전업 하고 배포를 해봤는데,

테스트를 통과 못하게 변경을 하는 바람에 Travis-ci에서 중단되는 것을 확인했다.

 

이후 테스트를 통과할 수 있게 변경했는데

막상 서버에 접속해보니까 구 버전이 여전히 실행 중이었다.

 

EC2 서버에 접속해서 무엇이 실행되고 있나 확인해보니

배포한 것을 실행하는 쉘 스크립트에 오타가 있어서 기존 서버가 계속 돌아가는 문제가 있었다.

수정하고 다시 확인해보니 새로운 버전으로 서버가 돌아가는 것을 확인할 수 있었다.

 

반응형
Comments