Management

운영 서버를 관리하는 방법을 설명하는 문서입니다.

접속 방법

sysop 또는 wheel 계정으로, 또는 미리 생성된 계정으로 maintainer 컨테이너에 SSH 접속할 수 있습니다.

$ ssh sysop@[host_ip] -p 8022 # sysop
$ ssh wheel@[host_ip] -p 8022 # wheel

데이터베이스 관리

컨테이너에서 db_production:3306 를 통해 운영 데이터베이스에 접근할 수 있습니다. 데이터베이스에 mysql CLI를 통해 원하는 명령을 실행하거나 shell script 등을 실행할 수 있습니다. (데이터베이스 비밀번호는 이 컨테이너에서는 알아낼 수 없으며, host에 보관되어 있습니다.)

# MySQL CLI
$ mysql -h db_production -P 3306 -u [username] -p

서버 배포

api 컨테이너와 nginx 컨테이너에 올라간 volume을 maintainer 컨테이너에서 접근할 수 있습니다.

  • api 컨테이너의 소스 파일은 /usr/src/api/dist/bundle.js에 보관되어 있습니다. api 컨테이너에서는 (nodemon을 이용한) 이 파일이 수정될 때마다 서버를 재시작합니다.

  • nginx 컨테이너에서 보고 있는 리소스는 /usr/src/app/build 디렉토리 아래에 보관되어 있습니다.

소스 파일 또는 디렉토리를 수정하여 원하는 서버를 올릴 수 있으나, kono-api 또는 kono-front module을 빌드하여 소스를 올리는 것을 권장합니다.

Shell scripts

위 과정을 편하게 하기 위해 shell script가 /usr/src/scripts/ 디렉토리 내에 준비되어 있습니다. sudo 권한으로 실행할 수 있습니다.

  • deploy.sh: production 브랜치로부터 API 및 프론트엔드 배포

  • stage.sh : master 브랜치로부터 스테이지 서버 API 및 프론트엔드 배

  • backup.sh: 데이터베이스 백업

  • restore.sh: 백업 파일로부터 데이터베이스 복원

로그 확인

/usr/src/log 에서 API 서버와 nginx 서버의 로그를 확인할 수 있습니다.

Last updated

Was this helpful?