본문 바로가기

EC2

[EC2] 어느날 갑자기 병목(CPU I/O Wait) 이 찾아왔다. 한동안 평화롭던 서비스에 갑자기 장애 전조증상이 보입니다.AWS EC2 에서 구동 중인 출결관리 서비스인데 보통 출결시간이 비슷하기 때문에 특정 시간대에 트래픽이 몰립니다.그런데 오늘은 Busy User가 아닌 Busy Iowait 이 무지하게 올라가네요.이대로라면 우리의 서비스가 장애로 이어질텐데요. 이 그래프는 CPU가 I/O로 인해 병목이 발생하고 있음을 보여줍니다.그렇다면 I/O 성능이 저하되었거나 무엇인가 과도하게 I/O를 점유하고 있다는 뜻일텐데요. 우리 서비스의 문제는 최근 급격히 늘어난 사용자와 이를 감당하지 못하는 IOPS 였습니다.IOPS(Input/Output Operations Per Second)란 초당 처리 가능한 입출력 작업 수를 의미하는데, 우리가 사용하는 스토리지는 gp2 ..
호스트 디스크 용량이 갑자기 부족한 경우 서론 저희가 유지보수를 하는 고객사 시스템은 대부분 AWS EC2 인스턴스에서 Docker를 기반으로 구축되어 구동되고 있습니다. 간혹 디스크 용량이 100%에 임박하는 경우가 발생하는데 저희 서비스는 파일을 S3에서 관리하도록 개발되기 때문에 디스크 용량이 부족할 수가 없는 경우라 난감한 경우가 있었습니다. 원인 원인 분석 결과 Docker에서 구동중인 컨테이너에서 발생한 로그가 제한(max-size) 없이 계속 쌓이다 보니 디스크 용량을 지속적으로 갉아먹고 있던 문제였고, 다른 서비스 또한 시간이 지나면 같은 문제를 만날 수 밖에 없는 상황이었습니다. 결론 결론적으로 개별 컨테이너에 로그 용량 제한을 걸면 되는데요. 해결방법은 아주 단순합니다. 적용 즉시 max-size를 초과하는 모든 로그가 삭제되..