본문 바로가기

게으른개발자/공부

SSH 터널링을 통한 데이터베이스 백업 방법

배경

  • Bastion Host 방식 을 통해 구성된 RDS(Amazon Relational Database Service) 의 데이터를 로컬 PC에 덤프를 해야하는 상황
 

해결법

  • SSH 터널링 을 통해 RDS의 데이터 로컬PC로 직접 dump


 

절차

sudo ssh -N -v -L 9001:[replace with host url for the database]:5432 -i key_file.pem [replace with user for the server]@[replace with ec2/server ip/url]
//위 명령에서 포트 22(기본값)를 통해 키 파일과 사용자 이름을 사용하여 서버에 연결하고 완성되면 데이터베이스 서버에 연결
//ex) sudo ssh -N -v -L 9001:db-test-dev-1.cgjmbwtser5d.ap-northeast-2.rds.amazonaws.com:5432 -i /Users/goslim/Dev/aws/aws-test-instance.pem ubuntu@1.12.123.174


pg_dump -U [replace with you db username] -v --format=c -h localhost -p 9001 --file=db_backup.psql [replace with your database name]
// 데이터베이스 서버에서 dump 명령을 실행
//ex) pg_dump -U testid -v --format=c -h localhost -p 9001 --file=db_backup.psql testdb