안녕하세요. 박세계입니다.
원래 다음 시리즈의 2탄을 바로 준비했어야 했는데 늦은 새벽까지 해야할 일이 있어서 올리지 못했습니다. 감사하게도 기다려주시는 분들이 계신데 가능하면 오늘 늦게라도 올리도록 하겠습니다.
늦게까지 해야했던 일 중 웹사이트 튜닝이 있었는데 생각보다 애를 많이 먹었습니다. 나중을 위해 기억하는 의미에서 공유합니다.
[목차]
타인의 삽질 경험을 듣는게 생각보다 도움 되는 경우가 많아 상황을 자세히 설명하려 합니다. 그래도 결론만 보고 싶은 분들을 위해 결론을 먼저 공유합니다.
최근 투잡으로 웹사이트를 하나 만든게 있습니다. 복잡한 사이트도 아니고 사용되는 데이터의 크기도 매우 작습니다. 많아봐야 수 백건의 데이터중 백 여건의 데이터를 조회하는 정도입니다. 키오스크(상점등의 디지털 단말기)에서 호출하는 사이트인데 키오스크 갯수는 4개가 전부입니다. 즉, 매우 가벼운 사이트이며 동시접속이 거의 없다시피 해서 절대 고사양의 서버가 필요치 않았습니다.
서버는 다음과 같습니다.
이렇듯 일반적인 Free Tier로 셋팅했으며 데이터나 트래픽이 많은 특수한 서비스를 제외하면 문제가 되는 경우는 없었습니다.
사이트를 느리게 만들고 싶어도 그렇게 하기 힘들 정도로 가벼웠고, 동시접속이 거의 없기 때문에 별다른 문제가 없어야 했습니다. 그런데 그것이 실제로 일어났습니다.
상황이 정말 묘했던게 차라리 사람이 많이 접속할만한 시간대에 서버가 느려지면 그런가보다 하겠는데, 특히 자정 전후로 해서 접속이 거의 안될만큼 느려졌습니다. 자정이면 키오스크를 사용할 사람이 없기 때문에 접속이 아예 없는 상황입니다. 그런데 미친듯이 느렸습니다. 서버에 들어가 뭔가 살펴보려 해도 CPU와 RAM이 거의 99%에 가까워 들여다보기도 쉽지 않았습니다.
어지간한 상황은 서버 재부팅을 통해 임시로라도 가용상태로 만들수 있는데, 오늘 새벽에는 재부팅도 통하지 않았습니다. 아무도 접속을 안하고 있는데 정말 이상했습니다. 일과중에는 가끔씩 느려지는 상황은 있어도 전체적으로 큰 문제없이 돌아갔기 때문입니다.
그렇게 사건은 미궁속으로 빠지며 수 주에 걸쳐 스트레스를 받던 중 느닷없이 깨달음이 왔습니다.
혹시 AWS 서버 자체에 문제가 있는건 아닐까?
저는 문제 발생시 서버 핑계 대는걸 매우 싫어합니다. 보통 그런 상황보다 소스 코드나 설정에 문제가 있었던 경우가 월등히 많았기 때문입니다. 이번에는 정황상 정 반대의 경우라 판단했습니다. 아주 늦게 말이죠.
AWS 서버에 문제가 있는 경우는 크게 두가지입니다.
제 경우는 매번 특정 시간대에 절묘하게 느려지는걸로 봐서 2번에 해당된다는 생각이 들었고 서버를 옮기는게 낫다고 판단했습니다. 서버인지 서버군인지는 정확히 모르겠습니다. 암튼 문제의 VM이 있는 물리적 서버에서 벗어나야 했습니다.
방법은 간단히 EC2 Instance를 Stop/Start 하는 것이었습니다. 주의할 점은 Restart는 서버를 옮기지 않으며 꼭 Stop/Start를 해야 합니다.
You may want to stop and start (not reboot) instance. this will make the instance come up on a different hypervisor (host box). it may be the current shared host has issues that will be resolved when launching vm on new host.
이렇게 한 이후로 아직까지는 문제가 없습니다. 이게 맞았던거 같습니다. 혹시 아닐수도 있으니 더 모니터링을 해보고 다른 문제라면 울면서 다시 올리도록 하겠습니다.
감사합니다.