-
[AWS RDS][운영] restore target이 LatestRestorableTime보다 뒤일 때 UseLatestRestorableTime과 수동 시각을 나누는 법기타개발지식/풀스택개발 2026. 6. 30. 09:12
IT 리서치 노트
[AWS RDS][운영] restore target이 LatestRestorableTime보다 뒤일 때 UseLatestRestorableTime과 수동 시각을 나누는 법
RDS point-in-time restore를 실제로 할 때 가장 많이 흔들리는 순간은 target restore time이 LatestRestorableTime보다 뒤에 있다는 사실을 뒤늦게 발견하는 때다. 2026년 6월 30일 기준 AWS 공식 문서를 다시 보면, explicit UTC 복구 시각과 UseLatestRestorableTime은 동시에 줄 수 없고, restore-time은 latest 이전이어야 한다. 이 글은 target이 latest보다 뒤일 때 수동 시각과 latest 자동 선택을 어떤 기준으로 나눌지 정리한 것이다.
1. 개요
결론부터 말하면 특정 사고 시각 직전으로 돌아가야 한다면 explicit UTC
--restore-time을 쓰고, 가능한 최신 상태가 더 중요하다면--use-latest-restorable-time을 쓰는 편이 맞다. 둘을 한 명령에서 같이 해결하려 하면 오히려 조건 위반이 된다. target이 latest보다 뒤라면 먼저 target을 내릴지, latest 자동 선택으로 바꿀지 운영 절차에서 정해야 한다.이미 LatestRestorableTime이 안 움직일 때 점검 글을 봤다면, 오늘 글은 '값을 어디서 보나'를 넘어서 '어떤 시간을 선택하나'의 문제다. 또 backup retention을 0으로 바꾸기 전 글을 같이 보면 PITR 기반이 살아 있는지까지 함께 판단할 수 있다.
2. 어디서 실제로 막히는가
현장에서 자주 보이는 막힘은 세 가지다. 첫째, 복구 요청자는 '오전 9시 5분 직전으로 돌려 달라'고 말하는데, 운영자는 latest 값이 9시 3분까지만 살아 있는 상태에서 그대로 명령을 반복한다. 둘째, latest로 바로 가도 되는 상황인데도 explicit UTC를 손으로 계산하다가 시간대를 잘못 넣는다. 셋째, CLI 옵션에서
restore-time과use-latest-restorable-time의 역할 차이를 명확히 모른 채 둘 다 되겠지 하고 접근한다.RDS point-in-time restore 문서는 LatestRestorableTime을 Automated backups 화면과 CLI에서 확인하라고 말한다. restore CLI 문서는 restore-time이 latest 이전이어야 하고, UseLatestRestorableTime이 켜지면 restore-time을 같이 줄 수 없다고 적고 있다. 즉 target 선택은 문법 문제가 아니라 복구 전략 문제다. 어떤 시간을 목표로 복구하느냐를 먼저 정하지 않으면 명령 옵션을 아무리 바꿔도 계속 흔들린다.
또 latest 값은 사고 직전 데이터 손실 허용 범위와도 연결된다. explicit UTC는 사람이 '언제까지 되돌리나'를 정확히 고정하는 데 좋고, UseLatestRestorableTime은 플랫폼이 허용하는 가장 최신 시점을 빠르게 따라가기에 좋다. 어떤 방식이 맞는지는 기술 취향보다 사고 성격과 커뮤니케이션 방식에서 갈린다.
- 증상: target restore time이 latest보다 뒤여서 명령이 실패한다.
- 실패: explicit UTC와 latest 자동 선택을 동시에 만족시키려 한다.
- 막힘: local time과 UTC를 섞어 메모한다.
- 누락: retention과 earliest/latest 값을 복구 메모에 함께 남기지 않는다.
증상 먼저 볼 곳 판단 기준 target이 latest보다 뒤다 explicit UTC vs latest 자동 선택 target을 내리거나 latest 선택으로 바꾼다 사고 시각 바로 직전이 중요하다 restore-time 메모 UTC를 고정해서 명시한다 최신 가능한 시점이 더 중요하다 UseLatestRestorableTime CLI가 latest 값을 직접 고르게 둔다 3. 실무에서 적용하는 순서
실무에서는 다섯 단계로 정리하면 된다. 먼저 Automated backups 화면과
describe-db-instances로 latest 값을 동시에 기록한다. 두 번째로 복구 목표가 '특정 사고 시각 직전'인지 '가능한 최신'인지 질문으로 분리한다. 세 번째로 explicit UTC를 쓸지 UseLatestRestorableTime을 쓸지 명확히 고른다. 네 번째로 retention과 earliest/latest 범위를 복구 메모에 붙인다. 마지막으로 복구 요청자와 실행자가 같은 UTC 문자열을 보고 있는지 확인한 뒤 명령을 실행한다.- latest 값을 콘솔과 CLI에서 같이 기록한다.
- 복구 목표가 explicit target인지 latest인지 질문으로 먼저 나눈다.
- restore-time 또는 UseLatestRestorableTime 중 하나만 고른다.
- retention과 earliest/latest 범위를 복구 메모에 붙인다.
- 실행 전 UTC 문자열을 요청자와 운영자가 같이 확인한다.
이 순서를 따르면 target이 latest보다 뒤인데도 restore 명령을 반복하는 실수를 줄일 수 있다. 특히 explicit UTC는 사람이 기준 시각을 고정할 수 있는 장점이 있고, latest 자동 선택은 fastest safe recovery에 유리하다는 차이를 문서로 남겨 두면 팀마다 같은 질문을 반복하지 않아도 된다.
또 latest 자동 선택이 맞다고 결론 나도, 그 결정 이유를 메모에 남겨 두는 편이 좋다. 나중에 데이터 차이를 검토할 때 '왜 09:05가 아니라 09:03으로 복구했는가'를 설명할 수 있어야 하기 때문이다.
4. 공식 문서와 예시 화면으로 확인하기
첫 화면은 RDS point-in-time restore 문서다. 여기서 먼저 봐야 하는 것은 LatestRestorableTime이 어디서 보이고, 얼마나 자주 업데이트되는지다.
이 문장을 기준으로 삼으면 restore target을 정할 때 콘솔만 보지 말고 CLI 값을 같이 메모해야 한다는 이유가 분명해진다. 이미 LatestRestorableTime이 안 움직일 때 점검 글을 읽었다면, 오늘 글은 그다음 분기인 target 선택 규칙이다.
두 번째 자료는 restore CLI 문서의
--restore-time제약 조건이다. 이 문장은 수동 시각을 넣을 때 왜 target이 latest보다 앞서야 하는지 아주 직접적으로 알려 준다.즉 target이 latest보다 뒤인데 명령을 반복하는 것은 포맷 문제가 아니라 조건 위반일 가능성이 크다. 운영 메모에 target과 latest를 같이 남겨야 하는 이유가 여기서 나온다.
세 번째 화면은 같은 CLI 문서의
UseLatestRestorableTime옵션이다. 수동 UTC 시각과 latest 자동 선택을 언제 나눌지 판단하려면 이 옵션을 별도 분기로 보는 편이 좋다.즉 latest 바로 직전으로 복구할지, 특정 사고 시각으로 복구할지를 운영 절차에서 먼저 정해야 한다. 명령행에서 둘을 같이 주고 나중에 도구가 알아서 정리해 주길 기대하면 안 된다.
CLI 예시를 나란히 두면 수동 시각 복구와 latest 자동 복구의 차이가 바로 보인다. 문서 설명만 읽을 때보다 팀 합의가 훨씬 빨라진다.
명령 예시를 팀 런북에 그대로 붙여 두면 야간 장애 때도 '이번엔 explicit target인지 latest 자동 선택인지'를 더 빨리 맞출 수 있다. 이 분기가 없으면 restore 요청자와 운영자가 서로 다른 시간을 말하기 시작한다.
이 비교표는 explicit UTC와 latest 자동 선택을 언제 쓰는지 빠르게 가르기 위한 자료다. 복구 절차는 시간을 고르는 순간 거의 절반이 끝난다.
표로 정리해 두면 애플리케이션 팀은 사고 시각을, 운영팀은 latest 가용 범위를, DBA는 retention과 earliest 값을 한눈에 비교할 수 있다. 특히 backup retention을 0으로 바꾸기 전 글과 함께 보면 PITR 기반이 살아 있는지까지 연결해서 판단할 수 있다.
마지막 체크리스트는 latest와 target의 관계를 복구 직전 한 번 더 확인하는 용도다. 숫자 세 개만 같이 적어도 시행착오가 크게 줄어든다.
이 메모를 복구 티켓에 붙여 두면 복구 요청자와 실행자가 같은 시간을 바라보게 된다. 특히 retained automated backup이나 final snapshot 이슈는 snapshot과 retained backup 정리 글과 연결해서 같이 봐야 한다.
5. 주의사항과 리스크
첫 번째 리스크는 target이 latest보다 뒤인데도 포맷 문제라고 생각하고 같은 명령을 반복하는 것이다. 두 번째 리스크는 explicit UTC와 latest 자동 선택의 목적 차이를 문서화하지 않는 것이다. 세 번째 리스크는 retention이나 earliest/latest 값을 적지 않은 채 복구를 실행해, 나중에 데이터 차이 설명이 어려워지는 것이다.
복구 전에는 최소한 source DB, latest 값, requested target, 최종 decision 네 가지를 같이 남기는 편이 좋다. 그래야 복구 결과를 다시 검토할 때도 기술적 조건과 사람의 의사결정이 어디서 갈렸는지 설명할 수 있다.
- restore-time과 UseLatestRestorableTime은 동시에 주지 않는다.
- explicit UTC와 latest 자동 선택의 목적을 먼저 나눈다.
- latest, target, retention 값을 같은 메모에 남긴다.
6. 결론
RDS PITR에서 target이 LatestRestorableTime보다 뒤라면, 그 다음 행동은 옵션을 더 찾는 것이 아니라 복구 목표를 먼저 정하는 것이다. 특정 사고 시각 직전으로 돌아갈지, 가능한 최신으로 빠르게 복구할지를 explicit UTC와 UseLatestRestorableTime 중 하나로 선명하게 나누면 복구 시행착오가 크게 줄어든다.
- target이 latest보다 뒤면 전략부터 다시 고른다.
- explicit UTC와 latest 자동 선택은 같은 문제가 아니다.
- 복구 메모에는 latest와 decision 이유를 같이 남긴다.
7. 참고 링크
- https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_PIT.html
- https://docs.aws.amazon.com/cli/latest/reference/rds/restore-db-instance-to-point-in-time.html
- https://docs.aws.amazon.com/cli/latest/reference/rds/describe-db-instances.html
- https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_WorkingWithAutomatedBackups.html
'기타개발지식 > 풀스택개발' 카테고리의 다른 글