728x90
반응형
SMALL
목차
1. 문제 발생
2. 문제에 대한 정보 수집
3. 원인 추론
4. 문제 해결
1. 문제 발생
- Next.js를 EC2로 배포한 서버에서 동시 접속자가 3명 이상일 때, CPU 사용률이 33%까지 급증하면서 서버가 멈추는 문제가 발생했습니다. 그 결과, 사용자들은 502 Bad Gateway 오류가 발생하겠되었다.
2. 문제에 대한 정보 수집
- EC2의 무료 티어(Free Tier)로 서버를 배포했기 때문에 이게 문제일까 싶어서, 팀원 한 분이 백엔드 멘토님께 문의드렸습니다. 멘토님께서는 RAM 문제일 가능성이 높다며, 서버의 RAM 메모리가 충분한지 확인해 보라고 조언해주셨다.
RAM 메모리란 무엇인가
- RAM은 서버에서 사용되는 작업 메모리이다. 서버가 많은 요청을 처리할 때, RAM이 부족하면 과부하가 발생해서 서버가 멈추는 일이 생길 수 있다.
- t2.micro 인스턴스는 1GB RAM만 제공하므로, 자동화 배포나 여러 사용자가 동시에 접속할 경우 RAM이 부족해질 수 있다.
3. 원인 추론
- EC2 Free Tier로 배포한 서버의 RAM 용량이 1GB로 너무 작다는 것이 문제였다.
- GitHub Action와 같은 자동화 배포 시스템과 함께 여러 사용자 요청을 처리하다 보니, RAM이 부족해 서버가 죽는 현상이 발생한 것 같다.
해결 방안: SWAP 메모리
- SWAP 메모리는 RAM이 부족할 때, 하드디스크의 일부를 임시로 사용해 RAM처럼 작동하게 하는 방법이 있다. 이 방법을 사용하면 RAM 용량을 늘린 것처럼 효과를 볼 수 있다.
4. 문제 해결
- SWAP 메모리 설정을 통해 RAM 용량을 늘리기로 했다.
SWAP 메모리 설정 방법
- dd 명령어로 SWAP 메모리를 설정합니다. 아래 명령어는 2GB의 SWAP 메모리를 할당하는 방법이에요.
sudo dd if=/dev/zero of=/swapfile bs=128M count=16
- 이 명령어는 128MB씩 16개의 블록을 할당해서 총 2GB의 SWAP 메모리를 만드는 것이에요.
SWAP 파일의 권한을 설정합니다.
sudo chmod 600 /swapfile
2. SWAP 영역을 설정합니다.
sudo chmod 600 /swapfile
3. SWAP 파일을 활성화합니다.
sudo mkswap /swapfile
4. 설정이 성공했는지 확인합니다.
sudo swapon -s
5. 부팅할 때마다 SWAP 파일이 자동으로 활성화되도록 /etc/fstab 파일을 편집합니다.
sudo vi /etc/fstab
- 아래와 같은 줄을 추가하고 저장합니다.
/swapfile swap swap defaults 0 0
- 다음과 같이 SWAP 메모리가 정상적으로 추가되었는지 확인할 수 있었다.
- SWAP 메모리를 적용해 서버의 RAM 용량 부족 문제를 해결했고, 서버가 멈추는 현상이 사라졌습니다. 이제는 동시 접속자가 많아도 서버가 더 이상 터지지 않는다.
728x90
반응형
LIST
'FE' 카테고리의 다른 글
[스터디] 1주차 자바스크립트 (모던 자바스크립트 deep dive) (1) | 2025.01.28 |
---|---|
[후기] 기술블로그로 알아보는 테크니컬 라이팅 수강 (0) | 2025.01.28 |
오픈소스 기여로 개발 역량을 어필하기 (1) | 2025.01.24 |
서버와 클라우드 컴퓨팅, AWS (0) | 2025.01.13 |
AllYouRaffle 사이드 프로젝트 운영했던 경험 (3) | 2025.01.03 |