일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- Kakao
- leetcode 69
- CSS
- java
- gold2
- HTML
- 배포
- spring
- 9252
- 구현
- LEVEL1
- error
- 백엔드
- 오류
- glod5
- 프로그래머스
- 백준
- AWS
- PYTHON
- jpa
- 개념
- Thymeleaf
- Gold4
- leetcode
- LEVEL2
- siver3
- gold5
- LCS
- mysql
- glod4
- Today
- Total
이 험난한 세상에서어어~
[aws, ec2] build gradlew 76% 중지 현상 본문
문제 상황 발생
깃허브와 ec2 인슨턴스를 연동시키려고 하다가 문제가 생겼다.
SSH 키 발급 받아서 연결한 다음 clone해서 build gradlew까지 해줬는데!
실행을 열심히 하다가 76%에서 넘어가지 않는 거 아닌가?
그래서 aws 콘솔에 가서 상태를 확인하니 무려 CPU가 99% 사용되고 있었다.
심지어 저기서 한 번 끊김...
그래서 찾아보니까 free tier의 ec2는 램이 1기가 밖에 되지 않아서 이런 문제 현상이 자주 발생한다고 한다. 이를 해결하기 위해서는 방법이 총 2개 있다.
인스턴스 종료 후 시작
인스턴스를 종료하고 다시 시작하는 것이다. 즉, 물리적인 서버를 옮겨주는 방식이다. 나는 이 방식으로 문제를 해결했다. 그러나 문제가 생겼으니, 물리적인 서버를 옮겨준 것이라 ip가 변동됐다는 거다. 나는 이 부분을 몰라서 계속 예전 ip로 들어가면서 혼란스러웠다.
메모리 스왑
메모리가 다 찼는데, 디스크의 일부를 메모리처럼 사용하는 방식을 의미한다. 여기서 메모리와 디스크의 설명을 잠깐 하고 지나가자면, 메모리는 내가 지금 쓰고 있는 프로그램의 데이터가 저장된 곳이고 디스크는 메모리에서 넘어간 정보를 저장하는 곳이다. 즉, 메모리에 저장된 정보는 컴퓨터를 끄면 휘발되지만 디스크에 들어간 정보는 사라지지 않는다.
메모리의 장점이라면 빠르다는 것이다. 하지만, 단점으로는 용량이 디스크보다 작다는 것. 이런 문제를 해결하기 위해서 메모리 스왑을 이용한다.
솔직히 고민되는 게, 현재 프로젝트 상태로는 그렇게 많은 ram을 이용하지 않기에 굳이 메모리 스왑을 해줘야 할지 모르겠다. 음... 일단 jar로 내가 직접 옮기는 방식을 사용할 거 같은데, 이게 또 귀찮단 말이지. 고민스럽다...