테스트 환경에서 테스트를 다 해보고,
운영체제가 리눅스로 되어있는 ec2 서버에 docker container(mysql)를 생성 하니,
갑자기 리눅스가 뻑나기 시작하는 것이다.
사실 처음에는 프로젝트 빌드타이밍에 뻑이나서 '아니 빌드하는데 이렇게 오래걸려?' 하면서 무한 대기를 했었는데,
그 이후에 서버가 멈춰서 아예 아무것도 쳐지지 않는 것이였다.
그래서 서버를 재시작 하고,
위에 화면(aws의 ec2 대시보드에서 하실 수 있습니다.) 에서 중지를 누르고 기다리면 되는데, 안 꺼져서 한번 더 누르면 강제중지가 있어서 강제 중지를 했다.
(인스턴스는 중지와 시작이 기본입니다. 종료 누르면 서버에 쌓아 놓으신거 다 날라가요.)
(어차피 test니까 한번 날리고 또 해보는것도 좋을듯 ㅎㅎ)
아 그리고, 재시작하면 퍼블릭 ipv4 dns가 바뀌니 ssh로 접근할때 바뀐 dns로 접근해야 했다.
그래서 서버를 다시 껏다 키고 다시 docker를 실행하는데,
docker 실행 명령어(linux)
sudo systemctl status docker -> docker 상태 확인(죽었는지 / 살았는지)
sudo systemctl start docker -> docker 실행
sudo systemctl enable docker -> 부팅시에 docker 자동실행
실행하자마자 뻑나고 서버가 죽어 버리는 거다. (아오)
그래서 현 상태 보고 '이건 빌드 문제가 아니라 메모리 문제다.' 라고 파악한 다음에 메모리를 늘리는 작업에 들어갔다.
(시스템 관련 오류는 aws ec2 인스턴스에서 작업 -> 모니터링 문제해결 -> 시스템로그 가져오기에서 보실 수 있습니다.)
위의 공식 문서를 들어가면 메모리영역을 늘리는 방법에 대해서 확인할 수 있는데,
쉽게 정리를 하자면,
dd 명령을 이용해서 루트 파일에 스왑 파일을 생성한다.
sudo dd if=/dev/zero of=/swapfile bs=128M count=32
(128M * 32 총 4GB의 스왑영역(메모리영역)을 늘리기로 설정, bs는 블록크기 / count는 블록 수 / 지정한 블록 크기는 내 인스턴스에서 사용 가능한 메모리보다 작아야함.)
sudo chmod 600 /swapfile
스왑 파일의 읽기 및 쓰기 권한 업데이트
sudo mkswap /swapfile
리눅스 스왑영역 설정
sudo swapon /swapfile
스왑 공간에 스왑 파일을 추가하여 즉시 스왑 파일 사용할 수 있게 변경
sudo swapon -s
잘 늘어 났는지 확인하는 명령어
sudo vi /etc/fstab
vi 편집기로 해당 파일을 열어서
/swapfile swap swap defaults 0 0
해당 text를 파일 마지막줄에 추가해준다.(부팅시에 스왑 파일을 활성화 할 수 있게 해줌.)
free -m
이 명령어를 이용해서 swap 영역이 잘 바뀌었는지 확인해본다.
이 이후에, docker container 생성하고, tomcat으로 다른 포트의 프로젝트를 돌려도
문제없이 잘 돌아간다...
aws놈들이 무료라고 넉넉히 주지 않는 메모리영역이 이런 결과를 초래하게되었다. aws ec2 사랑해요 ㅎㅎ
더 이상 서버나 docker container 를 늘릴 생각은 없으니 현재는 이 상황에 만족하는걸로 ...
'OPS(Infra) > AWS' 카테고리의 다른 글
[AWS] EC2에서 사용하는 채팅 서비스(socket.js / sockJs 등등)에 대해서(EC2에서 채팅 서버가 끊기는 현상) (0) | 2022.11.15 |
---|---|
[AWS] AWS free tier 과금?! (0) | 2022.09.28 |
댓글