들어가기에 앞서
정확한 해결방법은 아니지만 이것이라도 도움이 되면 좋겠다라는 생각에 글을 쓴다.
먼저 S3에 배포를 하고 서버 동작을 확인하려고 SSH로 접속할려고 했다.
그런데 무한로딩에 걸렸고 이유를 계속 찾아본 결과 CPU사용률이 100프로에 임박했다는 걸 알아챘다
CPU사용량이 많다면 분할해서 할 수 있도록 램을 추가하거나 Swap memory로 이용할 수 있다는 글이 있어서 바로 해봤다.
(생각해보니 운영체제 수업시간에 배운 Memory, HDD랑 Swap하던 방식이이었다..신기)
1. Ec2에 들어가기
ssh {ec2주소등등}
2. Swap 파일 메모리 할당
sudo dd if=/dev/zero of=/swapfile bs=128M count=16
3. swapfile에 접근 권한 주기
sudo chmod 600 /swapfile
3. mkswap 명령어로 swapfile을 추가할 swap 공간을 생성한다.
sudo mkswap /swapfile
4. swapon 명령어를 통해 swapfile을 swap memory에 추가한다.
sudo swapon /swapfile
5. /etc/fstab에 세팅
sudo vi /etc/fstab
# 파일의 맨 끝 다음줄에 아래 명령어 작성
/swapfile swap swap defaults 0 0
이렇게하면 메모리가 그래도 넉넉해서 인지 이제 ssh로 서버에 동작확인은 가능해진다 먹통은 되지 않았다.
이렇게 ssh에서 "top"을 입력하면 볼 수 있다. 문제는 mysql , Spring Boot가 1GB에 턱걸이로 가고 있어서 조금 느렸나보다
다시 서버 접속하니까 잘 된다.
저번에는 AWS RDS를 써서 잘 몰랐는데 아무래도 프리티어가 프리티어인 이유는 있나보다 ..
만약 여기서도 Memory가 부족하거나 MySQL을 버티지 못한다면 그냥 AWS의 RDS로 MySQL을 사용하면 된다.
그게 더 안전하긴할 거 같다 어자피 MySQL을 인스턴스에 쓰든 RDS에 쓰든 사용량을 합친다면
EC2< RDS인 거 같다. => 관리 편함, 인프라 관리 비용(RDS는 750시간 무료다).. 그냥 RDS를 써야겠다
'AWS' 카테고리의 다른 글
[AWS] AWS RDS 현재활동(DatabaseConnection) 연결문제 (0) | 2023.05.27 |
---|