포스트

Biblecardai 서비스 최근 에러 및 원인

오늘 로그인을 시도하다가 에러가 출력됐다.

오랜만에 접속하는거라서, 이런 상태인줄 모르고 기대하고 들어왔다가 에러만 보고 돌아간 사용자들은 얼마나 실망을 했을까..?

잘 동작하다가 왜 어느 순간 안 됐을까?

  • 도커를 안 쓰고 tmux를 열어서 해놓았다. tmux가 잘 되다가, 어느 순간 문제를 일으킬 수 있을까? 도커를 못쓴다기보다, 막상 하려고 보니까 어? 그냥 올려도 되겠는데…? 하면서 미루게 된거다.
  • 그리고 도커에 올리면 db를 지금처럼 git으로 관리하기보단 다른 백업과 마이그레이션 시스템을 만들어야 할 것 같다.
  • 대부분의 micro server에 postres를 안 쓰고 sqlite를 두었다. payment 서비스에만 postgres로 두고 나머지를 sqlite로 둔 까닭은, 개발하면서 sqlite가 편했는데 프로덕션을 위해 postgres로 이전하는 것도 일이 되므로 아직 안 하고 미뤄둔 것이다. postgres를 쓰면 postgres컨테이너에 올리는 db를 백업하고 관리하는것도 일이다. git만으로 되는 sqlite에 비해 신경쓸 일이 많다. 그래서 미뤘던 거다..
  • git pull이 문제인가? tmux로 서빙하고 있는 컴퓨터에서 중간 작업을 최신화를 위해 git을 push하고 pull 하면서 reload로 실행해놓은 uvicorn fastapi 서버에서 기존 잘 연결되던 sqlite에 대한 권한문제가 발생했을까? -> 왠지 .db도 pull로 당겨왔으면 이미 다른 .db를 참조하던 서비스가 연결을 잃어버릴 것 같기는 하다..!
  • tmux가 문제인가? 이전에 zellij 를 사용했다가 세션을 detatch하면 서비스가 멈추는 문제가 있었어서 검증됬다고 하는 tmux로 돌아왔었다. -> 그러나 tmux마저도 그런 문제가 있다는 이슈는 접한 적이 없다.
  • sqlite가 문제인가? 여기도 좀 신빙성이 있다. -> 1. sqlite에 발생한 에러이므로, sqlite 그 자체에서 에러가 발생했다고 보는게 가장 적절하다. 2. sqlite의 한계에 대해 이미 알고 있는 바가 있다. 동시접근이 안된다, 진정한 비동기가 어렵다? (타 db에 비해) 본래 그 용도가 로컬db까지만 타겡팅이 되었다. 실제 프로덕션에서는 안쓴다. 등…

역시나 해당 마이크로 서비스를 재시작하니까 sqlite 접근 문제가 해결됬다.

Auth 서버 뿐만 아니라, 다른 서버들에도 sqlite 문제가 발견됬다.

그래서 다른 서버들도 재시작해줬다.

그랬더니 다 해결됬다..

근본적인 해결책은,

sqlite를 전부 postgres로 마이그레이션 해주는거다.

그러기 위해선 지금처럼 git으로 간단히 올리거나 내려서 연결된 db를 백업하고 복원하는 방식이 아니라 좀더 체계적이고 정식적인 방법을 쓰도록 해야 한다.

그리고 그 다음은, 도커나 그 이상(도커스웜, 쿠버네티스)으로 서비스를 관리하는거다.

그 전 까지는, 메일 아침 시험해서 sqlite에 문제가 생기면 재시작해주는 수밖에… 그리고, git으로 pull하는거 굳굳이 필요없으면 자제하자 ㅎㅎ 굳이 해야한다면 pull 하고 서비스 재시작 해주는것도 필요했는데 놓쳤던 것 같다.

sticker

아무튼 살려놨다..!

sticker

https://biblecardai.blessflow.com/

BibleCard AI - 성경 말씀카드 생성 성경 구절을 묵상하고 적으면 그에 어울리는 이미지를 가진 말씀카드를 만들어주는 AI 서비스 성경 구절을 묵상하고 적으면 그에 어울리는 이미지를 가진 말씀카드를 만들어주는 AI 서비스

이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.