미소를뿌리는감자의 코딩

채팅 프로젝트 - CI/CD 구축 본문

프로젝트

채팅 프로젝트 - CI/CD 구축

미뿌감 2024. 6. 21. 11:42
728x90

프로젝트 CI/CD: github actions + Code Deploy 이용.

Mongodb, MySQL -> EC2 에 직접 설치.

다음 프로젝트 CI/CD: docker 이용 구축 + MySQL의 경우 RDS 이용하여, RAM 아끼기.

 

이번 프로젝트는 규모가 작은 프로젝트라 생각해서, MySQL을 직접 설치해 주었지만,,, t2.micro 가 버거워 하는 것이 보였기에, 

추후에는 RDS를 사용하는 것이 좋을 것 같다.

 

 

github actions 로 이전 프로젝트 CI/CD를 구축하였었지만, 혼자 다시 구현해보고 싶어서

github actions 로 CI/CD 구축을 시작했다. 추후 Jenkins를 이용해서 구축해보고 싶다.

 

https://rachel0115.tistory.com/entry/Github-Actions%EB%A1%9C-CICD-%EA%B5%AC%EC%B6%95%ED%95%98%EA%B8%B0-EC2-S3-CodeDeploy

 

Github Actions로 CI/CD 구축하기 #1 (EC2, S3 생성 및 설정)

📌 Spring Boot Project Github Actions 를 활용한 CI/CD를 구축해보기 위해 이전에 진행했던 개인 프로젝트를 이용하였습니다. 모든 코드는 아래 URL에서 확인 가능합니다. https://github.com/KAispread/ModuForms GitH

rachel0115.tistory.com

 

과정 중: mysql 또한 추가해 주어야 하기에 아래 블로그를 참고하였다. 

ec2 구축 후에는 ec2에 mysql을 설치 후 사용할 것임. [ 다음 프로젝트 시에는 RDS 사용하도록 하자 ]

https://velog.io/@tnfls99/Github-Action%EC%97%90%EC%84%9C-MySQL-%EC%9D%B4%EC%9A%A9%ED%95%98%EA%B8%B0

 

Github Action에서 MySQL 이용하기 🐬

이번에 데브코스 수료 후 AWS 지원이 종료되면서 Github Action에서 사용하는 RDS와 연결이 되지 않아 리팩토링하는 과정에서 어려움을 겪었다. 특히 우리 프로젝트에서는 MySQL에서 지원하는 내장 함

velog.io

 

맨 처음 제시한 블로그를 참고하며, 무난하게 CI/CD 구축 과정이 흘러갔다. 

 

#2로 넘어가면서, CodeDeploy 과정 중 명령어들이 조금 바뀐 것인지 잘 작동이 안되는 코드가 있어서 공식 문서를 참고하였다.

https://docs.aws.amazon.com/ko_kr/codedeploy/latest/userguide/codedeploy-agent-operations-install-ubuntu.html

 

Ubuntu CodeDeploy 서버용 에이전트 설치 - AWS CodeDeploy

출력을 임시 로그 파일에 쓰는 것은 Ubuntu Server 20.04에서 install 스크립트를 사용하여 알려진 버그를 해결하는 동안 사용해야 하는 해결 방법입니다.

docs.aws.amazon.com

 

apt-get 보다 apt로 명령어가 바뀐 것 같다.

 

TroubleShooting을 하면서 겪은 일들도 적어보도록 할 것이다.

sudo tail -f /home/ubuntu/chat/nohup.out

 

이를 통해 Application 실행 시, 발생하는 오류들을 확인할 수 있었다.

해당 로그를 확인해 보면서, MySQL과 Mongodb를 설치하지 않았었음을 확인할 수 있었고, 설치 후 Application 에는 오류가 나지 않았다.

 

또한 EC2 인바운드 규칙에 HTTP 80번 포트와 TCP 8080번 포트(서버를 위한)를 추가해 주는 것을 잊어서, 해당 부분도 다시 추가해 주었다.

 

ps aux | grep java

 

명령어로 확인해 보았을 때, application이 실행되고 있지 않음을 확인할 수 있었다.

이외에도, 

/var/log/aws/codedeploy-agent 
// codedeploy log 확인

sudo tail -f /var/log/mysql/error.log
// mysql log 확인

 

 

 

workflow를 정리하면서 그림을 그려보았는데, 상당히 많은 IAM 들이 들어감을 확인할 수 있었다.

Github, CodeDeploy, EC2를 위한 3개의 IAM 을 필요로 했다.

728x90