CI/CD 구현 트러블 슈팅

딩딩당당·2022년 12월 27일
0

일단 아래의 블로그를 토대로 진행했다.
https://bcp0109.tistory.com/363

CI/CD를 구축하면서 많은 좌절을 했다. 첫날엔 12시간을 CI/CD에만 몰두했고 그 다음날 RDS연동 또 그 다음날은 CD에 문제가 있어서 골머리를 썩혔다.

첫날의 트러블 슈팅은 내가 아무런 정보 없이 처음 접해본 것이기에 일어난 일이 대부분이었다.

1. CodeDeploy 설치 시 ubuntu 버전 문제

22.04에서는 Ruby3.X버전이 깔리는데 2.X버전으로 깔지 않으면 제대로 실행되지 않음

아래 블로그를 참고
https://mumomu.tistory.com/126

sudo apt-get install ruby-full ruby-webrick wget -y

cd /tmp

wget https://aws-codedeploy-us-east-1.s3.us-east-1.amazonaws.com/releases/codedeploy-agent_1.3.2-1902_all.deb

mkdir codedeploy-agent_1.3.2-1902_ubuntu22

dpkg-deb -R codedeploy-agent_1.3.2-1902_all.deb codedeploy-agent_1.3.2-1902_ubuntu22

sed 's/Depends:.*/Depends:ruby3.0/' -i ./codedeploy-agent_1.3.2-1902_ubuntu22/DEBIAN/control

dpkg-deb -b codedeploy-agent_1.3.2-1902_ubuntu22/

sudo dpkg -i codedeploy-agent_1.3.2-1902_ubuntu22.deb

sudo systemctl list-units --type=service | grep codedeploy

sudo service codedeploy-agent status

2. gradle.yml 버킷명 오타로 인한 오류

An error occurred (AccessDenied) when calling the CreateMultipartUpload operation: Access Denied

Error: Process completed with exit code 255.

  • gradle.yml의 버킷이름 잘못 적어서 뜬 오류이다
  • 버킷명을 나의 버킷명 정확히 작성 후 정상 작동하였다.

3. jar 파일 실종

터미널에 ps -ef를 입력했을 때 정작 중요한 jar 파일이 돌아가지 않고 있었다. 이유는 간단했다 실행되지 않는 프로젝트를 서버에
올렸기 떄문에 서버에서도 jar 파일을 실행시키지 못한 것이었다. 수정 후 올리니 정상작동하였다.

4. DB 접근 시 서버가 멈추는 현상

DB에 접근하는 api를 실행시켰을 때 서버가 멈추는 현상이 있었다.
당연하다. 우리는 개인 로컬 파일에만 db정보를 가지고 있었고 서버에는 올려주지 않은 것이다.
하지만 서버에 그대로 올려서 DB정보를 노출하는 것은 위험하다. 때문에 git에 secrets를 활용해
인코딩된 DB 정보를 올리고, YML 파일에 해당 문서가 비밀문서임을 지정해서 서버에 같이 올려줬다.

참고 : https://mumomu.tistory.com/132?category=1017703

5. PR을 올렸을 때 서버가 멈추는 현상

PR에 CI/CD가 반응해서 재배포를 하는데 PR을 올릴 때 마다 CD하는 과정에서 멈추는 현상이 있었다.
정확한 원인은 모르지만 전 날 잦은 재배포로 인해 codedeploy-agent에 오류가 생긴 것 같다.
아래 명령어를 통해 해결했다.
참고 : https://lemontia.tistory.com/1080

sudo service codedeploy-agent restart
profile
자바공부해요흑흑

0개의 댓글