본문 바로가기
웹 개발/블로그 만들기 프로젝트

AWS RDS 마이그레이션

by L3m0n S0ju 2023. 5. 12.

 

 

 

블로그에 글을 추가하고 나서 금액이 한달에 오천원씩 나온다. 프리티어임에도 불구하고 오천원씩 결제되니깐 걱정돼서 지금 EC2에서 프론트, 백엔드, DB 서버 동시에 돌리던 환경에서 DB 서버를 AWS RDS로 이전해서 분할하면 조금 금액이 낮아지지 않을까 기대하면서 DB를 이전했다.

 

갑자기 프리티어 제한을 넘은게 게시글에 이미지 삽입 기능과 미리보기 기능을 넣으면서 부터 갑자기 데이터 양이 증가해서 금액이 오른 것 같은데 DB를 RDS로 옮기고 또 페이징 처리를 지금 프론트에서 하고 있는데 한번데 모든 게시글 데이터를 받아와서 여기서도 자원이 많이 사용되는 것 같다. 페이징 처리할 때 데이터를 한번에 받아와서 하는게 아니라 페이지 별로 API를 통해서 데이터를 가져오도록 바꾸고 전체 게시글 수 같은 데이터만 처음에 따로 받아오는 식으로 하면 자원을 훨씬 덜 잡아먹지 않을까 예상한다.

 

 

 

RDS란?

RDS는 클라우드에서 관계형 데이터베이스를 쉽게 구축, 운영 및 확장할 수 있게 해주는 강력한 서비스입니다.

 

1. AWS 콘솔에 로그인하고 RDS 서비스 페이지로 이동합니다.

 

2. 데이터베이스 생성 버튼을 클릭합니다. -> 표준 생성 클릭

 

3. 데이터베이스 엔진을 선택합니다. MySQL, PostgreSQL, Oracle 등 다양한 엔진 중에서 선택할 수 있습니다. 

-> 저는 postgresql을 선택했습니다.

 

4. 사용할 버전, 인스턴스 유형, 스토리지 유형, 스토리지 크기 등을 구성합니다.

-> 프리티어에서 제공하는 옵션을 사용하면 됩니다. 대부분 기본 옵션으로 진행하면 됩니다.

 

5. 인증 및 암호화 설정을 선택합니다. RDS는 데이터베이스 암호화를 위한 다양한 옵션을 제공합니다.

-> 암호방식을 사용합니다. 이후 마스터 사용자 이름과 마스터 암호 입력칸이 나오는데 DB의 username과 password에 적용됩니다.

 

6. VPC(Virtual Private Cloud)와 서브넷 그룹을 구성합니다. 데이터베이스 인스턴스를 배치할 VPC와 서브넷을 선택하거나 새로 생성할 수 있습니다.

-> 기본적으로 선택되어 있는 옵션을 진행합니다.

 

7. 보안 그룹을 구성합니다. RDS 인스턴스에 액세스할 수 있는 IP 주소 범위를 지정할 수 있습니다.

-> 이거는 각자 환경에 맞도록 설정합니다. 기본적인 거라서 생략하겠습니다.

 

8. 설정을 검토하고 "데이터베이스 생성" 버튼을 클릭합니다.

 

 

 


DB 생성이 완료되면 엔드포인트와 DB 종류별로 포트번호 다른데 Postgresql은 5432 포트를 사용합니다. 아래 순서로 진행하면 됩니다.

 

1. psql -U {사용자명} -h 엔드포인트 -p 5432 -d {접속할 DB명}  

 

2. 비밀번호 입력

 

 

 

 

 


저는 원래 ec2에 DB를 덤프떠서 rds로 마이그레이션 했습니다. 아래 명령어로 덤프를 뜹니다.

 

1. pg_dump -U {사용자명} -h 엔드포인트 -p 5432 -d {덤프할 DB명} > ./postgres_dump.sql

 

 

 

 

 

 


아래 명령어로 덤프 파일을 원격에서 로컬로 가져오고 다시 rds에 덤프 업로드 및 적용을 하면 DB 마이그레이션이 끝납니다..

 

1. scp -i  {ec2 pem 파일 경로} ec2-user@{ec2 엔드포인트}:/tmp/postgres_dump.sql .

 

2. psql -h {rds 엔드포인트} -p 5432 -U {DB 사용자명} -d {DB명} -f ./postgres_dump.sql

 

 

 

 

 

 


AWS RDS는 데이터베이스 관리 작업을 자동화해주는 기능도 제공합니다. 예를 들어, 자동 백업, 자동 소프트웨어 패치, 자동 모니터링 등을 설정할 수 있습니다. 또한, 필요에 따라 확장하거나 축소하여 리소스 사용량을 조정할 수도 있습니다.

 

이렇게 AWS RDS를 사용하면 관계형 데이터베이스를 쉽게 설정하고 관리할 수 있습니다. 클라우드에서 데이터베이스를 운영하고자 하는 개발자나 시스템 관리자에게 매우 유용한 서비스입니다.

 

이상으로 AWS RDS를 활용한 관계형 데이터베이스 설정에 대해 알아보았습니다.

댓글