본문 바로가기
Develop/DevOps

AWS EC2 터미널 - 애플리케이션 빌드 과정 중 멈춤 현상 해결

by jaeyoungb 2023. 6. 7.

프리티어 계정을 사용중이고,

배포하기 위해 EC2 터미널에서 애플리케이션을 빌드하는 과정에서 항상 76%, test 빌드 단계에서 실행 시간만 늘어날 뿐, 다음 과정으로 넘어가질 않았습니다.

 

구글링을 해보던 중, 메모리 부족 현상을 해결하기 위한 swap 메모리를 할당하는 방법이 있었습니다.

속는셈치고 한 번 방법을 따라해보았고, 빌드 과정만 10분이상 지나도 되질 않던 것이 1분만에 빌드되었습니다.

 

 

swap 메모리란?

'가상 메모리 또는 페이징이라고도 불리는 swap 메모리는 시스템의 사용 가능한 메모리 용량을 확장하기 위해 사용되는 기술이다. RAM의 확장으로 사용할 수 있으므로, 활발하게 사용되지 않는 데이터를 저장하기 위한 추가 공간을 제공한다.'

 

 

 

과정은 다음과 같습니다.

 

일단, EC2 연결을 진행하고 터미널 창을 띄웁니다.

(EC2 연결이 된 직후의 위치에서 다음 과정을 이어갔음)

 

먼저 다음 명령어를 통해, 현재 메모리 상태를 확인해볼 수 있습니다.

$ free

 

 

1. swap 메모리 할당합니다.

$ sudo dd if=/dev/zero of=/swapfile bs=128M count=16

128씩 16개의 공간을 생성, swap 공간은 2GB 정도 생성하는 것으로 잡습니다.

 

 

2. swap 파일에 대한 읽기 및 쓰기 권한을 업데이트합니다.

$ sudo chmod 600 /swapfile

 

 

3. Linux swap 영역 설정합니다.

$ sudo mkswap /swapfile

 

 

4. swap 파일 추가 및 즉시 사용할 수 있도록 설정합니다.

$ sudo swapon /swapfile

 

 

5. 지금까지 잘 되었는지 확인합니다.

$ sudo swapon -s

 

 

6. 부팅 시, swap 파일을 활성화하기 위한 fstab 파일 편집합니다.

$ sudo vi /etc/fstab

fstab 파일 마지막 줄에 다음 문구를 추가하고 저장합니다.

/swapfile swap swap defaults 0 0

 

 

7. free 명령어로, swap 메모리 설정이 잘 되었는지 확인합니다.

$ free

 

 

프리티어를 사용하는 관계로 낮은 메모리의 환경에서 배포 작업을 하고 있습니다.

swap 메모리를 설정해주어서 현재는 배포까지 해결된 상태이지만, 이 방법이 100% 옳은 방법이라고는 못할 것 같습니다.

추후에, 심도 있게 공부하고 깊이 알게 된다면 더 나은 방법으로 해결할 수 있지 않을까 싶습니다.

 

 

참고한 블로그입니다. 좀 더 자세하게 과정을 살펴보고 싶다면, 참고해주세요!

https://sundries-in-myidea.tistory.com/102

'Develop > DevOps' 카테고리의 다른 글

Git flow  (0) 2022.12.17
Git branch  (2) 2022.12.16
Github Repository & Github Project 칸반  (0) 2022.12.16
Ngrok을 이용한 로컬에서 서버 실행  (0) 2022.12.13
Tomcat을 이용한 수동 배포  (0) 2022.12.13