EC2

    AWS EC2 메모리 부족을 스왑 메모리로 해결하기

    개요 EC2 에 접속 후 docker 환경에서 프로젝트 jar 파일과 MySQL 을 실행시킨 후 MySQL 에 접속하려는 순간 EC2 가 멈춰버렸다. 현재, AWS 프리티어 계정으로 EC2 micro 를 사용하고 있는데, RAM 이 무려 1GB 다. RAM 에 비해 실행하는 어플리케이션이 필요한 메모리가 더 커서 서버가 터진 것으로 추측했다. 메모리 부족 시 CPU 에서 스왑 작업을 시행하기 때문에 CPU 사용률이 늘어나게 되는데 서버가 터진 시점의 CPU 사용량을 보면 급격하게 올라가는 것을 볼 수 있다. 해결 방안 크게 2가지 방법이 있다. 첫번째는, 램을 증설하는 것이고 두번째는 스왑 공간을 사용하는 것이다. 첫번째 방법은 현재 비용 문제때문에 프리티어를 사용하는 것이니 배제하기로 하고, 두번째 방..

    Github actions, Docker image, Docker hub 를 활용한 CI/CD 과정

    개요 과거에 팀 프로젝트를 진행하며 일주일 정도 수동으로 배포하며 불편하고 아주 비효율적이었던 경험이 있다. 그래서 항상 새롭게 프로젝트를 진행하면 배포 과정을 자동화하는데, 이번 개인 프로젝트에서 진행했던 그 과정을 정리하고자 한다. 아키텍처 결정 서버 배포할 서버는 AWS EC2 를 활용하였다. 개인이 가진 컴퓨터를 활용하여 서버를 구축할 수도 있겠지만, 여분의 컴퓨터가 없는 나는 고려하지 않았다. 클라우드 서버 중에서 Naver Cloud 와 AWS 중에 고민을 하였는데, 일단 1년간 무료로 사용할 수 있는 AWS 를 사용하기로 하였다. CI 툴 Github actions 를 이용하였다. Jenkins 와 Github actions 간에 고민을 했지만, Jenkins 는 추가적인 설치가 필요하고 G..