AWS(아마존 웹서비스) EC2 프리티어 CPU사용량 100% 이슈
AWS(아마존 웹서비스)에서는 '프리 티어'라는 제도를 운영하여 1년간 클라우드 서비스(EC2)를 무료로 사용할 수 있게 해줍니다.
그러나 사용하는 과정에서 지속해서 SSH연결이 끊기고, 재접속을 하더라도 접속이 안되는 등의 현상이 발생했습니다. 인스턴스 모니터링 기능을 통해 확인해보니 CPU의 사용률이 100%로 올라가는 등의 이슈가 있었습니다.
EC2 프리 티어 t2.micro 성능, 명칭 설명
일단 프리 티어로 제공하는 't2.micro' 상품의 성능표입니다. vCPU 1개와 시간당 CPU 크레딧 6개, 메모리 1GB, 스토리지 8GB를 할당 받는 상품입니다.
vCPU은 CPU제조사들이 제공하는 가상화 기술인 인텔의 HT(Hyper-Threading), AMD의 SMT(Simultaneous Multi-Threading)을 통해 만들어낸 스레드를 사용하는 단위라고 생각하시면 됩니다.
CPU 크레딧은 CPU가 평균 사용률보다 낮은 수치로 사용되고 있으면 크레딧이 쌓여있다가, 서버 사용자나 작업이 늘어나 CPU사용량이 늘어나게 되면 크레딧이 사용되어 좀 더 높은 성능을 내게 됩니다.
서버에 사용된 CPU를 'lscpu' 명령어를 통해 확인해보면, 'Intel Xeon CPU E5-2686 v4'가 사용되고 있는 것을 확인할 수 있습니다.
이 CPU는 4Q16에 출시된 제품으로 기본 클럭 2.3 GHz, 터보 클럭 3.0 GHz, Cores 18, Threads 36의 제원을 가지고 있습니다.
위에서 얘기했던 vCPU는 Threads를 의미하는 것입니다. 이 한 서버에 36개의 vCPU를 만들 수 있는 것이죠. 업체별로 상이하여 1:3(18*3=54)이나 1:4(18*4=72)을 사용하는 곳도 있는 것으로 보이나 일반적으로는 1:2인 것으로 보입니다. 더 많이 쪼개게 되면 그만큼 vCPU당 성능이 떨어지겠죠.
그렇기에 높은 성능의 클라우드 서버가 필요하다면, 1 CORE = 2 vCPU(1:2) 인 것을 생각하여 상품을 선택하시면 되겠습니다.
위에서 얘기했던 내용으로, AWS에서는 1 CORE = 2 vCPU(1:2)로 사용하고 있습니다.
SSH연결 끊김, CPU 사용률 100% 이슈, 이유는??
결국 프리 티어로 제공하는 서비스의 성능이 낮아서 발생하는 현상입니다.
원인을 찾기 위해 프로세스 모니터링을 하면서 작업을 진행 중에 특정 행동을 했을 때 이런 현상이 나타나는 것을 확인했습니다. 아직까지도 '이게 CPU를 이렇게 많이 사용할 작업인가...?'하며 허탈하기도 했지만, 어떻게 보면 '무료 서비스니까 이 정도겠구나' 싶기도 합니다.
증상을 완화하는 방법은 테스트 이후에 추가로 작성하여 본 글에 첨부하겠습니다.