본문으로 바로가기

Contents

     

    개요

    RDS의 자동백업 활성화를 위해 AWS 공식문서를 살펴보면 아래와 같은 문구가 존재한다.
    - 공식문서 : https://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/UserGuide/USER_WorkingWithAutomatedBackups.html

    자동 백업을 활성화하면 RDS 인스턴스 및 데이터베이스가 오프라인으로 설정되고 백업이 즉시 생성됩니다.

    단순히 백업만 활성화하는 작업인데 왜 자동백업을 활성화를 하게 되면 오프라인으로 설정이 된다는 걸까?

    이유를 알기전에 우선 DB가 데이터를 PITR 백업과 WAL에 대해서 알아야 한다.

     

    WAL (Write-Ahead Log)

    Write-Ahead Log 방식 (이하 WAL)은 DB의 ACID 특성 중 일관성과 원자성을 보장해 주는 개념이다.

     

    DBMS에 트랜잭션이 발생하게 되면 바로 DB에 Write 하지않고 모두 Sequential한 로그 형태로 보관을 한다.

    그러다가 로그가 일정수준 차면 해당 로그를 Data Block으로 만들어서 DB에 Write 한다.

    트랜잭션을 DB에 Wrtie하는 다이어그램 (참조 : https://bourbonkk.tistory.com/86)

    Data Block으로 쓰기 전의 Sequential 한 Log가 바로 WAL이다.
    • 트랜잭션이 로그에 있기 때문에 누가 조회를 해도 똑같은 데이터를 보여주는 일관성(Consistency)을 보장한다.
    • 예상치 못하게 서버가 다운될 경우에도 이미 로그에 기록이 되어 있기 때문에 원자성(Atomicity)을 보장한다.
    • 트랜잭션에 대한 로그가 모두 담기기 때문에 이를 이용하여 증분백업 및 복원에도 사용된다.

     

    PITR (Point-In-Time Recovery)

    윗 단락에서 WAL을 사용하여 증분백업 및 복원에도 사용한다고 했었는데 PITR은 바로 WAL을 사용하여 특정 시점으로 복원하는 복원 기법이다.

    • PostgreSQL의 경우엔 WAL을 'pg_wal' 디렉터리에서 관리하고 있다.

    만약, DB에 이상이 생겨서 복원을 해야 할 경우에 WAL 파일의 내용을 끝까지 재실행할 필요가 없기 때문에 특정 시점으로 복원이 가능하다.

     

    자동백업 활성화

    PITR을 활성화하기 위해서는 선행조건이 있는데 당연하게도 WAL이 기록되게 설정을 해야 한다. 설정은 관련된 DB 파라미터를 수정하여 활성화할 수 있다.

     

    관련 DB 파라미터

    • wal_level
    • archive_mode

    그러나 해당 파라미터를 적용하기 위해서는 DB 인스턴스의 재시작이 필수이다.

    AWS RDS 자동백업을 활성화를 한다는 것은 관련 DB 파라미터를 수정한다는 뜻이므로 결국 자동백업을 활성화하면 DB 인스턴스가 재기동이 되는 것이다.

     

     

    Reference

    'AWS > 데이터베이스' 카테고리의 다른 글

    [RDS] Aurora의 Read, Write 방식  (0) 2022.06.09