미소를뿌리는감자의 코딩
[Aper] 채팅 프로젝트 - CI/CD 구축 본문
프로젝트 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를 이용해서 구축해보고 싶다.
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 과정 중 명령어들이 조금 바뀐 것인지 잘 작동이 안되는 코드가 있어서 공식 문서를 참고하였다.
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 을 필요로 했다.
'프로젝트' 카테고리의 다른 글
[Aper] CI/CD 구축 - Github actions - ECR - EC2 + 도커 *** (9) | 2024.07.24 |
---|---|
[Aper] Webflux+ WebSocket + mongosh + netty 을 이용한 채팅 기능 구현 (0) | 2024.07.18 |
[Aper] 채팅 프로젝트 - 현황 (0) | 2024.06.09 |
Webflux + mongodb 를 통한 채팅 구현 (0) | 2024.05.23 |
도서 기능 구현 API (0) | 2024.03.05 |