AWS 라이트세일 CPU 버스트 해결

사이트가 하루도 못 가고 다운된다.

“서버에 연결할 수 없습니다” 라거나

“Service Unavailable” 이라거나

“데이터 베이스 연결 중 오류” 라는 에러 메시지를 띄우면서 서버가 멈춘다.

현재 2개의 사이트를 운영중이며,

모두 워드프레스 6.1.1 버전과 PHP 7.4가 적용되어 있고

 

서버는 AWS 라이트세일의 3.5$ 요금제를 사용중이다.

2개 사이트 모두 동일한 서버와 워드프레스, PHP 버전을 적용중인데,

유독 이 사이트가 연결되어있는 인스턴스(서버)만 문제가 발생한다.

기존에 작성한 “데이터베이스 연결 중 오류 해결” 글과 이어지지만 

이미 문제를 해결한 상태에서 동일한 증상(서버 다운)이 더 빈번하게 일어났기 때문에 

조금 더 명확하게 문제를 파악하고 해결하고 싶어졌다.

데이터베이스 연결 중 오류 해결

AWS 라이트 세일 내 인스턴스 선택 – [관리] – [지표] 순으로 이동.

지표 항목에서 서버에 할당된 CPU의 사용률을 1시간, 6시간, 1일, 1주, 2주 순으로 확인할 수 있다.

정상적인 서버의 CPU 사용률

 

CPU는 “지속 가능 영역” 과 “버스트 가능 영역”으로 나뉘는데,

특이사항이 없는 한 과부하가 없는 정상 서버의 경우 “지속 가능 영역”에서 CPU 사용률이 지속된다.

 

GRAFIK.KR 의 서버 CPU 사용률

내 사이트 (GRAFIK.KR)의 경우 CPU 사용률이 한 동안 “지속 가능 영역”에서 지속되다

특정 시간에 사용률이 미친듯이 펌핑된다.

최대 77.53% 까지 솟아 오른걸 볼 수 있었는데

이 버스트 영역을 침범한 CPU 사용률이 한번 발생하면

잠시 후 서버가 다운된다.

이후 “지속 가능 영역” 으로 CPU 사용률이 돌아온다해도 다운된 서버는 정상화 되지 않는다.

다운 된 상태에서 서버 [재부팅]은 먹히지 않고,

인스턴스 [중지] – [재시작] 순으로 재가동해주면 잠시나마 정상 작동 되지만,

이내 하루도 못 버티고 버스트 영역 침범으로 다시 다운이 되며 악순환이 반복된다.

 

CPU 버스트 후 사이트가 멈춘 상태

 

문제 해결

문제 1. 불특정 시간에 랜덤하게 서버 과부하가 발생하며, 이후 서버가 다운되며 사이트(1)이 멈춤

문제 2. 동일한 스펙의 사이트(2)는 정상

해결 옵션 1. 서버 과부하가 발생하는 원인을 찾아 제거함

해결 옵션 2. 현재 가장 저렴한 하위 옵션의 요금제를 사용중이므로 CPU 용량이 더 높은 상위 요금제로 업그레이드 한다.

해결 옵션 3. x같은 서버 방식 (CPU 버스트등)을 채택한 라이트세일을 버리고 카페24등의 서버로 이전한다.

내 기준에서 옵션2는 선택하더라도 서버 과부하가 안 생긴다는 보장이 없으므로 패스

옵션3은 잠재적 선택 상태이지만 일단 보류.

짜증나지만 해결 못하면 잠이 안오므로 옵션 1로 타협함.

동일한 스펙의 사이트(2)가 정상 작동 되고 있으므로,

AWS 서버문제, PHP 메모리 부족은 제외.

워드프레스의 버전도 차치하고 당연하겠지만 범인은 적용된 테마와 플러그인으로 예상함.

설치된 38개의 플러그인들 중 사이트(2)와 중복되는 정상적인 플러그인들은 패스하고,

겹치지 않거나, 버전 업데이트가 오랫동안 되지 않은 플러그인들을 대상으로 비활성화를 진행했다.

*플러그인을 1~3개씩 비활성화 후 하루 정도 CPU 버스트 영역을 침범하는지 체크해야 했기 때문에 시간이 조금 소요됐다*

현재 사용중인 테마를 작동하기 위해서 필수로 활성화를 해야하는 플러그인들이 있다.

테마 개발진에서 테마를 적용하면 강제로 설치 및 활성화를 유도하는 플러그인들인데

“Regenerate Thumbails” 플러그인도 이에 해당된다.

테마와 한 몸인 이런 플러그인들을 비활성화 하게 되면 사이트 레이아웃이 깨지거나

정상 작동 되지 않는다.

따라서 버전이 오래되서 현재 워드프레스 버전과 정상적으로 호환되는지 불투명하지만

사이트에 테마를 적용하기 위해선 필수로 활성화를 해둬야 한다.

때문에 이 플러그인이 현재 버전의 워드프레스나 다른 호환되는 플러그인들과 충돌이 발생해

과부하가 발생된거라면 현재 시점에서 이 테마를 포기해야 할 수도 있다.

플러그인으로 해결이 안되면 테마 교체까지 감안하고 있었지만

교체하게 되면 블로그 글 내부 세팅을 비롯해 여러가지를 손봐야 하기 때문에 

정말 귀찮고 거기까지는 안갔으면 하고 내심 바라고 있었다.

 

그래서일까. 역시나 범인은 “Advanced Custom Fields PRO” 플러그인으로 체크되었고,

아마도 현재 이 플러그인의 버전과 사용중인 테마나 다른 플러그인 또는 현재 버전의 워드프레스와 충돌이 생기고 있는 것 같다.

결론,

Advanced Custom Fields PRO 플러그인이 문제를 일으켜

사용중인 AWS 라이트 세일의 서버 CPU에 과부하를 일으켰고,

(이 새끼가 어떤 방식으로 불특정 시점에 왜 과부하를 일으켰는지에 대해선 나의 영역 밖이라고 느껴짐) 

저렴한 요금제에 할당된 사용률을 훌쩍 넘겼으므로 서버가 다운됨.

일단 문제는 해결했지만,

x같은 CPU 할당량을 적용한 라이트세일 덕분에

동일한 문제가 또 생길 수도 있다는 거.

이제 한번만 더 “데이터베이스 연결 중 오류” 가 뜨면 서버 폭파시키고

이전하거나 다른 방식으로 해결책을 찾아야 할 것 같다.

씨~~발!!!

Total
0
Shares
답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다

Previous Post

MyListing, v2.9.9 Theme Editor 경로 리스트 및 Tip!

Next Post

AWS 라이트 세일 5$ 요금제 간단 사용기

Related Posts