2022-02-21 블로그 장애 해결

2022년 2월 15일에 구글 애널리틱스에서 메일이 날아와 "사이트의 색인 생성이 중지되었습니다 (5xx 오류)"라고 알려줘서 보니 502가 뜨기 시작했다. 공휴일 + 휴가 낀 긴 주말이 곧이라 그 때 살펴보자 하고 2월 21일 월요일에 살펴보게 되었다.

ghost-cli

$ cd /var/www/ghost
$ ghost doctor

여기서 ghost 디렉터리 경로가 생각나지 않아 ls /var/ (탭으로 자동완성)을 눌렀는데 디스크 용량이 모자라서 파일을 만들 수 없다고 오류가 떴다. ghost-clidoctor 명령을 넣어 보니 역시 용량이 모자라서 구동이 안 된다고 떴다. 이 EC2에는 그냥 20GB EBS가 달려 있다 (아마 거기까진 무료라서 그렇게 달았던 걸로 기억한다)

du

우분투 쓴지 오래 되어서 디스크 용량 체크하는 명령어를 찾아봤고 du를 돌렸다. 그냥 du만 치면 현재 폴더에서 시작해 재귀적으로 파일명과 용량을 띄우길래 다시 검색을 해 보고 깊이를 1만 돌리게 했다.

$ sudo du -h --max-depth=1 /

sudo가 없으면 루트가 아닌 계정으로 권한이 없는 폴더는 계산이 안 되는 문제가 있었다. 여기서 시작해 대충 용량이 넘쳐나는 곳이 3군데쯤 잡혔는데:

  • ~/.cache
  • /var/www/ghost/versions/
  • /var/log/journal/
  • var/log/cloud-init.log

하나씩 보고 날리기로 했다.

.cache

npm / yarn 캐시 폴더라서 그냥 비웠다. 다음에 ghost 버전 업데이트 할 때 다시 지울 예정이다.

/var/www/ghost/versions/

업데이트 하다 롤백이 필요한 경우가 있을 수 있어 저장하는 듯한데 그냥 놔뒀다.

/var/log/journal/

여기는 journalctl로 볼 수 있는 로그들이 있는데 뭔가 2022년 1월 28일부터 시스템 로그가 쌓여 있고 이미 압축되어서 볼 수가 없었다. 스택 오버플로우[1]를 보고 설정 파일 위치를 찾아서 리텐션을 건 뒤 현재 활성화된 system/user 로그 파일 외에는 다 날려버렸다.

var/log/cloud-init.log

이게 0.8GB쯤 먹고 있던데 (역시 1월 말에 실행됨) 별다른 실행 이유나 남길 이유를 찾을 수 없어 그냥 날려버렸다 (cloud-init status가 그냥 깨끗하게 done 이 떴음)
날릴 때는 sudo cloud-init clean --logs 로 날렸다.[2]

이후

df를 돌리니[3] EBS 볼륨에 6GB 조금 안 되는 용량이 확보되었다. 당분간은 괜찮을 테지만 20GB는 시작할 때부터 이미 너무 작았으니 용량을 올리는 걸 생각해봐야 할 듯하다. Ghost 설치 전에 이미 ~13GB가 먹힌 채로 시작했었다.

후속 조치

  • [ ] AWS에 cloud-init이 왜 실행되었는지 서포트 티켓 넣어보기
  • [ ] EBS 용량 증강

References


  1. https://stackoverflow.com/questions/64058664/how-to-manage-files-in-var-log-journal-in-ubuntu-18-04 ↩︎

  2. https://cloudinit.readthedocs.io/en/latest/topics/cli.html ↩︎

  3. https://askubuntu.com/questions/21068/how-to-get-disk-usage-from-command-line ↩︎