오늘은 워드프레스 디버그 로그 삭제를 하게 된 꽤 황당한 경험을 하나 공유하려고 한다.
오늘 갑자기 이 워드프레스 사이트에 로그인이 되지 않았다. wp-admin으로 접속하면 403 Forbidden이 떴고, 비밀번호를 바꿔도 로그인 페이지로 계속 튕겨나왔다. 처음에는 보안 플러그인인 All In One WP Security가 IP를 차단한 줄 알았다.
SSH로 접속해서 플러그인을 비활성화하고, WP-CLI로 비밀번호도 새로 설정해봤다. 그런데도 여전히 안 됐다. 그러다 발견한 것이 이것이다.
Filesystem Size Used Avail Use% Mounted on
/dev/nvme0n1p1 40G 38G 0 100% /
디스크가 100% 꽉 차 있었다. 40GB 중 남은 공간이 0바이트. 뭐가 이렇게 많이 차지하고 있나 확인해봤다.
sudo du -sh /opt/bitnami/apps/wordpress/htdocs/wp-content/* | sort -rh | head -10
30G /opt/bitnami/apps/wordpress/htdocs/wp-content/debug.log
1.3G /opt/bitnami/apps/wordpress/htdocs/wp-content/backups-dup-pro
1.2G /opt/bitnami/apps/wordpress/htdocs/wp-content/uploads
범인은 debug.log였다. 무려 30GB. 언제부터 쌓인 건지 모르겠지만 디스크를 혼자 다 잡아먹고 있었다.
바로 삭제했다.
그런데 문제가 하나 더 있었다. 디스크가 꽉 찬 상태에서 워드프레스 코어를 재설치했더니 wp-config.php가 빈 파일로 덮어씌워진 것이다. DB 연결 정보가 통째로 날아가면서 사이트가 500 에러로 완전히 다운됐다. 다행히 htdocs_backup 폴더에 wp-config.php 백업이 있어서 복원할 수 있었다.
복원 후 서비스를 재시작하니 사이트가 정상으로 돌아왔다.
재발 방지를 위해 해둘 것들
디버그 로그는 기능 개발이나 오류 추적이 필요할 때만 켜두는 것이 맞다. 평소에는 wp-config.php에서 아래와 같이 명시적으로 꺼두는 것을 권장한다.
define('WP_DEBUG', false);
define('WP_DEBUG_LOG', false);
그리고 AWS Lightsail 콘솔에서 디스크 사용량 알림을 설정해두면 이런 상황을 미리 막을 수 있다. 사이트가 다운되고 나서야 디스크가 꽉 찬 걸 알게 되는 건 꽤 당황스러운 경험이다.
로그 파일 하나가 30GB가 될 때까지 모르고 있었다는 게 여전히 좀 허탈하다. ㅎㅎ
최근 글(Recent Post / 最近的帖子)

