본 포스팅은 AWS EC2머신을 사용하던중 cpu사용량이 100퍼센트에 육박하면서 ssh연결등이 모두 끊기는 상황에 대해서 말하고자 합니다.
++하단에 추가내용 기술합니다
오류라고 한 것은 어제, 그리고 오늘 비슷한 시간대에 동일한 문제를 경험하였으며, 결코 해당 문제를 유발할 만한 요소가 존재하지 않았다고 생각하기에 오류라는 단어를 사용하였습니다
1. 상황 설명
리전 : 서울
인스턴스 유형 : t2.micro (free tier)
ssd : 8GB
오후 21시경 Node 실습을 위해 새 인스턴스를 생성하고 nodejs를 설치하였음.
21~ 23:50분 경 까지 터미널과 vscode ssh연결 두개를 열어놓고 대기
00시경 폴더생성후 소스코드를 작성하던중 파일이 저장이 안되는 현상이 벌어짐 (VSC상에서)
이후 터미널은 무한 대기상대 VSC는 먹통상태
무언가 이상하다고 생각해서 콘솔로 넘어가 모니터링을 해보니
저런 상태였고
대략 저 시간동안 아무것도 못했습니다.
사실 이런상황은 어제도 동일하게 경험했었고 아예 인스턴스를 지우고 다시 생성한 상황이었는데 동일한 문제가 생겨
이번엔 지우는 것이 아닌 다른 방법을 찾고 싶었습니다.
2. 문제 확인
문제는 서버에 있으리라 확신했습니다.
터미널에서 top명령을 실행시켜 두기도 했고 해당인스턴스에는 저 이외에 다른 커넥션은 없었기 때문입니다.
보안 규칙으로 집 공인아이피 이외에는 다 막아두었거든요
검색을 통해 해당 문제를 찾다보니 대부분은 AWS사이트의 설명서글이 대부분이었고
다른문제는 해킹관련문제등이 있었습니다. 그러던 중 한 사이트를 찾게 되었는데요
https://serverfault.com/questions/690656/why-sometimes-aws-ec2-works-really-slow
해당 글에서 보면
가장 votes를 많이 받은 답변은 해당 답변입니다.
내용을 크게 두가지로 나눌수 있는데요.
하나는 credit문제
다른 하나는 stop and start (not reboot!!!)
입니다.
크래딧 관련해서는 링크를 하나 올려두겠습니다.
https://docs.aws.amazon.com/ko_kr/AWSEC2/latest/UserGuide/burstable-credits-baseline-concepts.html
해당문서는 cpu credit에대한 설명을 해주고 있는데요.
버스트 가능 인스턴스의 경우 cpu 크래딧을 소모하여 버스트하고 기준치 이하면 크래딧을 얻는 방식이라고 합니다.
해당 크래딧이 부족한데 계속 버스트(기준치보다 많이 사용) 할 경우 추가비용이 나오거나 약간의 스로틀링이 생길수 있는것 같습니다.
3. 문제 해결
결국 저는 두번째 방법인 stop and start 로 해결했습니다.
사용률이 뚝 떨어진 것을 보실수 있으시죠?
다만 reboot가 아닌 정지 이후 시작을 하다보니 퍼블릭ip가 바뀌게 됩니다.
그렇기 때문에 서비스할때 이 문제를 어떻게 해결해야 할지 좀 더 고민을 해봐야겠습니다.
4. 후기
허무합니다.. ㅜㅜ 그렇지만 더 큰 서비스를 하기전에 이런 경험을 할 수 있어 감사하기도 합니다 ㅎㅎ
이런문제가 발생하지 않는다면 좋겠지만 항상 이런 방법 외에도 다른 대응책도 항상 가지고 있어야겠다고 생각했습니다.
https://aws.amazon.com/ko/premiumsupport/knowledge-center/ec2-linux-resource-over-utilization/
직렬콘솔및 복구인스턴스를 사용하는 문서도 첨부합니다!
++ 추가내용 VSC의 extension ssh의 경우 몇가지 이슈가 있는것을 확인했습니다.
계속적으로 VSC의 ssh기능을 사용했을때 EC2인스턴스가 99%를 찍는문제가 계속 발생하여 몇가지 해결책을 시도해보았지만 다 실패했습니다.
로그 첨부합니다
[01:48:26.791] [Forwarding server 4044] Got connection 1
[01:48:26.811] [Forwarding server 4044] Got connection 2
[01:53:06.595] ------
[01:53:06.595] SSH Resolver called for "ssh-remote+7b22686f73744e616d65223a22415753227d", attempt 2, (Reconnection)
[01:53:06.595] SSH Resolver called for host: AWS
[01:53:06.596] Setting up SSH remote "AWS"
[01:53:06.598] Using commit id "ee8c7def80afc00dd6e593ef12f37756d8f504ea" and quality "stable" for server
[01:53:06.602] Install and start server if needed
[01:53:06.604] Using SSH config file "C:\Users\ddaa1\.ssh\config"
[01:53:06.605] Running script with connection command: ssh -T -D 10978 -F "C:\Users\ddaa1\.ssh\config" "AWS" bash
[01:53:06.607] Terminal shell path: C:\WINDOWS\System32\cmd.exe
[01:53:06.868] > ]0;C:\WINDOWS\System32\cmd.exe
[01:53:06.868] Got some output, clearing connection timeout
상단의 두줄은 잘 연결이 되었을때이며, 아래는 연결오류가 났을때입니다.. 대략 5분정도의 텀이있네요
먼저 https://www.python2.net/questions-1304334.htm
해당글을 토대로 서버의 vscode 연결파일을 삭제했으나 실패하였습니다.
extension 셋팅의 config파일 경로를 바꾸어 주었음에도 실패입니다..
해당문제는 권한문제입니다만.. 혹 이글을 타시고 오시는분이 해당 글을 통해 해결이 되시면 좋겠다는 생각에 올려봅니다.
글의 해결한 분은 ssh가 아닌 ssh - nightly로 바꾸셨다고합니다..
혹 해결이 된다면 해당포스팅을 업데이트 하도록 하겠습니다..
해결이 될때까진 teminal 로 접속해서 nano로 사용하려합니다..
'AWS' 카테고리의 다른 글
[AWS] Cloud9으로 aws ec2 인스턴스 개발환경 만들기 (0) | 2021.10.26 |
---|---|
[AWS] aws ec2 linux (ubuntu 20.04) swap memory (1) | 2021.10.26 |
AWS EC2인스턴스 VScode로 접속하기 (0) | 2021.10.11 |
AWS EC2 .pem을 사용해서 SSH접속하기 (0) | 2021.09.04 |
AWS EC2 인스턴스 ssh접속방법 (Putty) (0) | 2021.07.28 |