일부 프로그램을 잘못 실행시켜 CPU 할당량이 100이 되어 ssh 접속도 안되고 말 그대로 먹통일 때 해결책.
이 해결책에서 가장 중요한 점은 어떤 프로세스가 CPU 100을 차지하고 있는지 예상해야됨. 보통 맨 마지막에 한 작업이 문제가 된다. 필자는 Docker Compose 작업 중 compose를 실행 시킨 이후 이런 문제가 발생하여 컨테이너를 모두 삭제해야겠다는 생각이 들었음.
해결 과정
1. EC2 인스턴스 중지
2. EC2 인스턴스 하드웨어 사양이 낮을경우 CPU 크레딧 무제한으로 변경
3. 이후 EC2 시작
4. 이 과정에서 새로고침을 계속 누르며 EC2가 '실행 중'이 뜰 때까지 반복한 뒤, '실행중'이라고 나오면 SSH로 계속 접속을 시도한다. '실행중' 되자마자 바로 접속이 불가능하여 계속 접속을 시도해야함. 그러면 CPU 사용량 100이 되기 전에 들어갈 수 있음
5. 만약 접속에 성공했다면 의심이가는 프로세스를 죽이거나 필자처럼 도커 이미지를 삭제하는 명령어를 최대한 빨리 수행해야됨. (미리 복사해놨다가 접속하자마자 붙여넣어서 실행하는게 최선)
docker stop $(docker ps -a -q);docker rm -f $(docker ps -a -q)
위는 실행중인 컨테이너를 모두 다운시키고 삭제하는 도커 커맨드 명령어
(참고로, CPU 100이 된지 확인하는 방법은 인스턴스의 모니터링 탭에서 가능하다.)