콘텐츠로 이동

2022 08 26

2022-08-26

Flyway

  • DB 업데이트 방법
    • spring.jpa.hibernate.ddl-auto=update
      • 테이블을 수정하지 않고, 부족한 부분만 추가함
    • 각 배포환경 돌아다니면서 직접 스키마 변경
  • flyway
    • metadata 테이블 생성 => 변경 이력 저장 테이블
    • version1 => 스크립트 읽어서 변경 반영
    • version2 =>
    • version2.1
    • 변경의 꼬리를 물고 뚝딱
  • 예시
    • main/resources/db/migration/V1__init.sql
  • 기존 데이터가 존재한다면...
    • flyway baseline
      • spring.flyway.baselineOnMigrate = true
    • spring.flyway.locations에 migration script 작성
      • 빈 파일이여도 v1에 해당하는 파일은 있어야함

RDS 데이터 백업/복구

  • 참고: https://2step-hyun.tistory.com/107
  • 참고: https://developer88.tistory.com/308
  • AWS Snapshot
    1. DB 인스턴스의 특정 시점을 스냅샷으로 생성
    2. 자동으로 생성 가능. 수동으로도 생성 가능
    3. 스냅샷을 사용해 새 DB 인스턴스 생성 가능
    4. 전체 백업이지만 증분 스토리지 사용에 대해서만 비용 청구
  • AWS 복원
    1. Snapshot을 복원하는 방법
      • 복원하고자 하는 Snapshot 선택 후, Snapshot Actions에서 Restore Snapshot
        • 새로운 인스턴스를 생성하는 방식
    2. 특정 시간으로 복원하기
      • 데이터 베이스 => 작업 => 특정 시점으로 복원
  • RDS 자동백업 설정
    • AWS에서 1일간의 백업은 무료로 제공해줌
    • RDS 인스턴스 생성 시점시 설정할 수 있고, 이후에 수정 가능
  • RDS 자동백업으로 복원
    • RDS 백업 데이터를 기준으로 복원하는 경우, RDS 인스턴스에서 Restore to Point in Time 활용
    • 설정한 기간 안의 선택한 시점 기준의 데이터 복원이 가능함.