문제상황:
RDS의 리전을 버지니아 북부로 설정을 해놓은 상태로
ec2는 서울 리전에 생성을하여 작업시 계속 리전을 변경하면서
작업을 해야하는 편의성 문제해결과 쿼리문의 실행시간 단축을 기대하며
RDS의 리전을 서울로 변경하기로 하였다.
기존의 RDS를 복사해서 옮기는 방식으로 스냅샷을 저장해놔야한다.
RDS -> 데이터베이스에서 스냅샷을 생성해준다.
그러면 다음과 같이 스냅샷이 생성된다.
그리고 우측에 스냅샷을 선택후 우측에 있는 작업을 클릭하여 스냅샷 복사로 이동을 한다.
대상 리전은 해당 스냅샷이 옮겨갈 리전을 말한다.
ec2와 같은 서울로 이전을 할 예정이다.
생성버튼을 클릭하면 몇분후 서울 리전을 확인해보면 스냅샷의 사본이 복사되어 있을것이다.
이제 복사된 스냅샷을 복원하여 데이터베이스를 다시 만들어야한다.
처음 rds를 만들때처럼 설정을 진행해주면된다. 프리티어는 버스터블 클래스를 선택하면 보일것이다.
새로운 rds 데이터베이스가 서울 리전에 생성되었다.
이제 새로 생성한 RDS를 기존의 프로젝트에 다시 연결을 시켜주었다.
스냅샷을 복사할 때는 보안설정등은 같이 복사되지 않으므로 인바운드 규칙을
다시 편집 해주어야 한다.
팀원분과 각자의 로컬 컴퓨터로 작업하므로 어디서든 연결이 가능하게 설정하였다.
그리고 마스터, 비밀번호는 그대로 유지되므로 프로젝트에서는 엔드포인트만 변경해주면된다.
나의 경우 yml에서 보안이 필요한 부분을 환경변수로 관리해주고 있어
환경변수의 엔드포인트 값만 수정을 해주었다.
이제 프리티어 rds가 두개가 되어 기존에 있던 RDS 유지시 과금이 될 수 있으므로 기존 rds는 삭제를 해주었다.
최종 스냅샷 생성에 체크를 해야 삭제 버튼이 활성화 된다.
잠시 기다리면 삭제가 완료된다.
삭제가 완료되면 스냅샷도 삭제를 진행해준다.
이어서 서브넷, 파라미터, 그리고 이전을 위해 복사했던 스냅샷도 삭제를 진행해주었다.
파라미터의 경우 새로운 리전은 한국이므로 따로 시간설정이 필요없어 새로운
리전에서는 아직 아무런 설정을 진행하지 않았다.
jpa:
properties:
hibernate:
format_sql: "true"
highlight_sql: "true"
generate_statistics: "true"
jpa 연산의 속도 출력을 위해 generate_statistics 설정을 yml 파일에
추가해주었다.
당연하게도 속도가 상당히 향상되었다.
이렇게나 향상될줄은 몰랐는데 드라마틱한 변화가 있다.
db연결의 경우 298322625 / 23585083 = 12.6배 향상되었고
영화목록을 불러오는 작업을 실행하였는데 데이터를 가져오는 시간은
586881250 / 38971708 = 15배 향상되었다.
서버 위치도 정말 중요하다는걸 알게되었다.
시간차이가 있는것은 알았지만 10배 이상이나 차이가 날줄은 몰랐다.
물론 배포작업뒤에 진행하겠지만 속도를 더 향상시키고 싶은 욕심이 있다.
빨리 작업을 마치고 더 좋은 코드로 리팩토링을 진행해주어야겠다.