일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- 역사 파이썬
- 반도체 설계 파이썬
- SWEA
- 등굣길 파이썬
- 가장 긴 팰린드롬 파이썬
- 다중 컬럼 NOT IN
- 순위 파이썬
- SQL SERVER MIGRATION
- 프로그래머스 순위 파이썬
- 백준 1238 파티 파이썬
- 백준 11054.가장 긴 바이토닉 부분 수열
- 백준 1516 게임 개발
- 백준 1167 트리의 지름 파이썬
- 다리 만들기 파이썬
- 프로그래머스 순위
- SQL SERVER 장비교체
- 프로그래머스 여행경로
- 베스트앨범 파이썬
- 프로그래머스 베스트앨범
- 프로그래머스 가장 긴 팰린드롬
- 램프 파이썬
- 백준 1613 역사
- 트리의 지름 파이썬
- 프로그래머스 등굣길
- 백준 2352 반도체 설계 파이썬
- 백준 1034 램프 파이썬
- 백준 2146 다리 만들기
- 백준 1043 거짓말 파이썬
- 가장 긴 바이토닉 부분 수열 파이썬
- 게임 개발 파이썬
- Today
- Total
공부, 기록
[AWS] RDS 스냅샷 본문
스냅샷의 생성 원리와 스냅샷 생성에 따른 DB 서버 성능 영향에 대하여 의문이 생겨 확인.
스냅샷 용량 계산
볼륨에서 생성하는 첫 번째 스냅샷은 항상 전체 스냅샷입니다. 스냅샷을 생성할 때 볼륨에 작성된 모든 데이터 블록이 여기에 포함됩니다. 동일한 볼륨의 후속 스냅샷은 증분 스냅샷입니다. 마지막 스냅샷이 생성된 이후 볼륨에 작성된 변경된 데이터 블록과 새 데이터 블록만 여기에 포함됩니다.
전체 스냅샷의 크기는 소스 볼륨의 크기가 아니라 백업되는 데이터의 크기에 따라 결정됩니다. 마찬가지로 전체 스냅샷과 관련된 스토리지 비용은 소스 볼륨의 크기가 아니라 스냅샷의 크기에 따라 결정됩니다.
예를 들어, 50 GiB의 데이터만 포함하는 200 GiB Amazon EBS 볼륨의 첫 번째 스냅샷을 생성합니다. 그 결과 전체 스냅샷 크기가 50 GiB이며, 50 GiB 스냅샷 스토리지에 대한 요금이 청구됩니다.
계속해서 20 GiB의 데이터를 변경하고 10 GiB의 데이터를 추가한 후 200 GiB 볼륨의 두 번째 스냅샷을 생성하는 경우 증분 스냅샷의 크기는 30 GiB입니다. 그러면 추가 30 GiB 스냅샷 스토리지에 대한 요금이 청구됩니다.
스냅샷 생성 방식.
파일 시스템 잠금
볼륨의 스냅샷을 찍기 전에 파일 시스템에 대한 새로운 쓰기를 차단하는 것이 중요합니다. 이렇게 하면 기본 볼륨의 스냅샷이 일관된 상태가 됩니다.
스냅샷이 시작될 때 일관된 상태를 유지하고 필요한 데이터를 디스크에 플러시하라는 메시지가 전송됩니다.
플러시에 걸리는 시간은 메모리에 있는 데이터 양, 데이터 상태, 데이터를 디스크에 쓰는 데 걸리는 시간에 따라 달라집니다.
스냅샷을 지원하는 각 애플리케이션이 동결 준비를 완료하면 스냅샷 프로세스가 파일 시스템을 스냅합니다. 즉, 추가 데이터 블록이 쓰여지면 먼저 백업 프로세스(COW - 쓰기 시 복사)를 위해 복사본이 만들어집니다. 그런 다음 각 애플리케이션에 해동(재개) 메시지/명령이 전송됩니다.
가볍게 사용되는 데이터베이스의 경우 이 동결/해동 프로세스는 수백 밀리초 밖에 걸리지 않습니다. 디스크에 플러시해야 하는 GB 메모리가 있는 대용량 데이터베이스의 경우 몇 초가 필요합니다.
동결/해동 주기가 발생하는 동안 새 사용자 요청에 대한 디스크 I/O가 중단됩니다. 데이터베이스는 계속 실행 중이지만 디스크/파일 시스템이 동기화되는 동안 모든 요청이 일시 중지됩니다. 해동 메시지를 수신하면 모든 것이 재개됩니다.
파일 시스템 플러싱
대부분의 경우 운영 체제는 비휘발성 저장소에 동기화 쓰기를 수행하지 않고, 애플리케이션이나 데이터베이스에서 달리 지정하지 않는 한 성능상의 이유로 페이지 캐시 에 캐시합니다.
MySQL은 명령을 통해 잠금 및 플러싱을 지원합니다. (FLUSH TABLES WITH READ LOCK)
스냅샷 찍기
시점 백업 또는 스냅샷에는 데이터 블록의 실제 복사가 포함됩니다.
파일 시스템 잠금 해제
스냅샷이 촬영되면 파일 시스템을 잠금 해제하고 쓰기를 포함한 일반 작업을 계속할 수 있습니다. 예를 들어 MySQL UNLOCK TABLES명령은 이를 달성하는 데 도움이 될 수 있습니다.
성능 영향
RDS
백업 기간 중에 백업 프로세스가 시작될 때 스토리지 I/O가 일시적으로 중단될 수 있으며, 일시적으로 지연 시간이 증가하는 것을 경험할 수도 있습니다.
Multi-AZ DB를 사용하면 백업이 복제본에서 수행되므로, I/O가 중단되지 않습니다 (단, SQL SERVER는 Windows VSS (Volume Snapshot Copy Service) 를 통하여 스냅샷을 생성하는데 이로 인하여 I/O 중단이 발생합니다).
Aurora
백업 데이터를 쓰는 중에도 성능에 미치는 영향이나 데이터베이스 서비스 중단은 일어나지 않습니다 (여러 복제본 중 하나의 복제본에서 백업을 생성하기 때문에 )
참고
https://docs.aws.amazon.com/ko_kr/ebs/latest/userguide/ebs-snapshots.html
https://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/Aurora.Managing.Backups.html
https://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/UserGuide/USER_ManagingAutomatedBackups.html
'공부 > DATABASE' 카테고리의 다른 글
[REDIS] Redis의 복제와 클러스터 (0) | 2024.09.15 |
---|---|
[AWS] ElastiCache 란? (0) | 2024.09.15 |
[postgreSQL] 인덱스 스캔 방법 (0) | 2024.08.25 |
SQL Server, MySQL , PostgreSQL 플랜캐시 (0) | 2024.07.20 |
[postgreSQL] 아키텍처와 Shared Buffer (0) | 2024.07.06 |