3월 31일 hello! Poko 정식 오픈 후 데이터베이스 백업의 필요성을 느껴 그 과정을 정리 함.
# 백업을 저장할 디렉토리 경로
BACKUP_DIR=./backup/
mkdir -p $BACKUP_DIR
# 현재 날짜를 백업 파일 이름으로 사용
BACKUP_FILE="$BACKUP_DIR/db_backup_$(date +'%Y%m%d').sql.gz"
# Docker 컨테이너에서 PostgreSQL 백업 실행
sudo docker exec hello_poko_db_1 pg_dump -U poko_db_user_prod -d poko_db_prod | gzip > $BACKUP_FILE
hello_poko_db_1 : 내가 사용하고 있는 db 컨테이너의 이름 sudo docker ps 명령어로 확인 가능하다.
pg_dump : postgresql의 백업을 생성하는 명령어.
-U poko_db_user_prod : 데이터베이스에 접속할 사용자 이름을 지정.
-d poko_db_prod : 백업할 데이터 베이스 이름을 지정
| gzip > $BACKUP_FILE : '|'는 파이프라인을 의미하며, 앞의 명령어의 출력을 다음 명령어의 입력으로 전달
chmod +x backup.sh # 실행 권한 부여
./backup.sh # 현재 경로의 backup.sh 실행

aws light sail 인스턴스에서 ssh 키를 발급 받아 로컬의 적당한 경로에 저장한다.
발급 받은 key와 데이터베이스 백업파일을 저장할 경로를 로컬 내에 생성한다.
로컬 터미널에서 다음 명령어 실행
scp -i [local ssh key path]ubuntu@[aws instance ip]:~/github/Hello_Poko/backup/db_backup_20240404.sql.gz [local database backup sava pate]
chmod 400 [local ssh key path]
위 명령어 실행 전 해당 명령어를 통해 SSH 키 파일은 다른 사용자에게 접근할 수 없도록 보안 설정이 필요
chmod: 파일의 권한을 변경하는 명령어입니다.
400: 권한 설정 값으로, 각 숫자는 다음을 의미합니다:
